TropFishR plot.lfq 函数限制,如何在ggplot2中生成类似图

水猪豪猪

我正在尝试使用 TropFishR 包绘制渔业长度频率数据的时间序列,这很棒,但它没有提供太多自定义实际绘图的选项。

比如我想每两周查看一次数据,函数默认是按月聚合,我按照包的R文档的建议,手动把我的数据聚合到需要的时间段;但是,一旦绘制了所有内容,轴刻度上的标签只会显示一个周期,而不是两个周期。

第一期01-Feb的标签;每个月都显示 01-Mar 等,但第二个时期是 15-Feb;3 月 15 日不是。像这样:

图 1

我还想标准化 y 轴,因为我将有大约四个这样的图表,并且长度不同(男性和女性)。我尝试用 ylim 做到这一点失败了,因为产生了以下内容:

图 2

这个包的转换产生列表,这是我目前使用的代码:

require(TropFishR)
data$Period<-as.Date(data$Period)
LF_graph <- lfqCreate(data, Lname = "Length", Dname = "Period",
                     aggregate_dates = FALSE, species="hake",
                     length_unit = "cm", bin_size = 1, plot=FALSE)


lw<-lfqModify(LF_graph, bin_size=1)
lw_f<-lfqRestructure(lw,MA=3,addl.sqrt = FALSE)
prop.table(lw_f$catch, margin=2)*100
lw_f$catch<-prop.table(lw_f$catch, margin=2)*100

plot(lw_f, Fname = "catch", date.axis = "modern", date.format="%d-%b",
                 ylim=c(10,35), xlim=range(lw_f$dates)+c(-15,+15),
hist.sc=0.95, image.col=NA, ylab="Length classes (cm)")

这是输出,我打电话dput((head(lw_f,5))是因为我怕20太长了

list(species = "hake", stock = NA, dates = structure(c(17928, 
17942, 17956, 17970, 17987, 18001, 18017), class = "Date"), midLengths = c(8.5, 
9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, 16.5, 17.5, 18.5, 19.5, 
20.5, 21.5, 22.5, 23.5, 24.5, 25.5, 26.5, 27.5, 28.5), catch = structure(c(0.104712041884817, 
0.104712041884817, 0.942408376963351, 2.19895287958115, 4.18848167539267, 
3.87434554973822, 2.72251308900524, 1.8848167539267, 1.04712041884817, 
0.628272251308901, 0.104712041884817, 0.209424083769634, 1.04712041884817, 
7.32984293193717, 19.8952879581152, 27.0157068062827, 18.5340314136126, 
7.12041884816754, 0.837696335078534, 0.104712041884817, 0.104712041884817, 
0, 0.117096018735363, 0.117096018735363, 0, 0.234192037470726, 
0.936768149882904, 1.63934426229508, 1.87353629976581, 1.28805620608899, 
1.28805620608899, 0.117096018735363, 0, 0.468384074941452, 5.62060889929742, 
20.1405152224824, 36.4168618266979, 21.7798594847775, 7.02576112412178, 
0.936768149882904, 0, 0, 0, 0, 0, 1.06382978723404, 6.38297872340426, 
8.51063829787234, 10.6382978723404, 22.3404255319149, 8.51063829787234, 
12.7659574468085, 11.7021276595745, 6.38297872340426, 2.12765957446809, 
3.19148936170213, 0, 0, 4.25531914893617, 2.12765957446809, 0, 
0, 0, 0, 0.162337662337662, 0.162337662337662, 1.46103896103896, 
1.78571428571429, 4.22077922077922, 6.00649350649351, 8.6038961038961, 
11.6883116883117, 10.5519480519481, 8.44155844155844, 6.49350649350649, 
1.2987012987013, 0.649350649350649, 0.162337662337662, 1.13636363636364, 
7.95454545454545, 16.3961038961039, 8.92857142857143, 2.92207792207792, 
0.974025974025974, 0, 0, 4, 0, 8, 0, 0, 8, 8, 24, 20, 8, 12, 
8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 66.6666666666667, 33.3333333333333, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 4.76190476190476, 9.52380952380952, 
4.76190476190476, 4.76190476190476, 4.76190476190476, 14.2857142857143, 
23.8095238095238, 28.5714285714286, 4.76190476190476), .Dim = c(21L, 
7L)))

我一直无法找到使用 TropFishR 包获得这种自定义级别的方法,有没有办法使用另一个包(例如 ggplot2)重现此图,但也许可以使用 TropFishR 包中的转换数据?

谢谢!

水猪豪猪

我通过完全绕过 TropFishR 包解决了这个问题,我使用我的另一个问题中的代码计算了长度频率,将它转换为一个函数并通过 dlply 运行它以获得每个时间段的 LF 表,它可以很容易地转换为数据框并使用 geom_bar 以所需的任何样式绘制。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

没有'plot()'函数的图

来自分类Dev

如何在plot.ly中更改朝阳图的颜色?

来自分类Dev

Pandas中plot与plot()之间的区别

来自分类Dev

在R中绘图:如何在函数内使用plot.xts生成pdf

来自分类Dev

在熊猫df.plot中设置颜色图限制

来自分类Dev

在plot()中设置背景

来自分类Dev

在plot()中设置背景

来自分类Dev

如何在statsmodel的plot_acf函数中更改颜色?

来自分类Dev

在循环内调用用户定义的函数以在ggplot2中生成自定义图

来自分类Dev

Plot Size - Using ggplot2 in IPython Notebook (via rmagic)

来自分类Dev

在plot()中添加类似于hist()的条

来自分类Dev

如何获得plot1和plot2值

来自分类Dev

Adding vertical line in plot ggplot

来自分类Dev

在R中调用plot()而不产生图

来自分类Dev

给出“ $ .plot不是函数”的图表

来自分类Dev

修复plot(fevd())函数的布局

来自分类Dev

如何删除plot()的科学记号

来自分类Dev

简化R中的plot()代码

来自分类Dev

简化R中的plot()代码

来自分类Dev

如何访问autocorrelation_plot生成的数据?

来自分类Dev

R Plotly:如何在R Plot.ly中设置瀑布图的单个条的颜色?

来自分类Dev

如何在ggplot2或R中绘制雷达图

来自分类Dev

如何在ggplot2中控制多个图的宽度?

来自分类Dev

如何在ggplot2中控制多个图的宽度?

来自分类Dev

R中的命令“ plot(qnorm)”如何工作?

来自分类Dev

如何自动推导pandas plot()中的轴

来自分类Dev

当plot()返回多个图时,如何仅获取某些图

来自分类Dev

R的plot.ly共轴子图

来自分类Dev

如何将R plot或ggplot2转换为base64字符串?