如何将ggplot辅助轴上的Ecdf与主要y轴上的箱线图结合起来

时间:2019-04-27 00:12:21

标签: r ggplot2 axis boxplot ecdf

我的目标是在左轴上画一个播种日期,在水平轴上画一个播种日期,在右轴上画两个eCDF图。因此,左y轴是日期刻度,右y轴的范围是0到1。我知道可以使用常规R绘图来完成此操作,但是我想使用ggplot。

我可以分别绘制每个ggplot。但是,当我尝试合并绘图(一个绘图中的箱线图和两个eCDF)时,我得到:

  

必须提供as.Date.numeric(value)错误:'origin'。

过去已经提出了有关此错误和ggplot的问题,但是我无法使用此类信息来解决我的问题。第二个数据帧(“ dens”)中的数据未按日期设置格式(并且不能设置为日期),但是R似乎希望将dens中的数据转换为与第一个数据帧(“ NhillCombs”)兼容的日期。

很高兴对以上任何内容进行详细说明(NhillCombs非常大,因此我没有在此处粘贴整个内容)。

# Plot boxplots:
p <- ggplot() + 
  geom_boxplot(data = NhillCombs,
               aes(x=SowingDate, y=flowering_doy, fill=cultivar, group=cultivarSowingDate), outlier.shape=1, outlier.size=1, notch=FALSE)+ 
  scale_fill_discrete(name = "Cultivars", labels = c("Alestar","Baudin","Buloke","Commander","Compass","Fathom","La Trobe","RGT Planet","Vlamingh","Westminster"))
p + coord_flip()  # Need this to switch x and y axes

# Add eCDFs to right vertical axis:
p + geom_line(data=dens,aes(x=x, y=cumsum(y)/sum(y)), size=0.7, colour='red') +
  geom_line(data=dens2,aes(x=x, y=1-(cumsum(y)/sum(y))),size=0.7, colour='blue') + theme_classic() + scale_x_continuous(name ="Day of year", breaks=seq(0,360,20), limits=c(200,365)) + scale_y_continuous(name ="Cumulative probability", sec.axis = sec_axis(trans = ~./max(NhillCombs$SowingDate))) + 
theme(axis.text.x = element_text(color="black"), axis.text.y = element_text(color="black"))
> head(NhillCombs$flowering_doy,20)
 [1] 266 246 257 276 231 236 249 247 263 239 239 238 261 262 256 236 261 238 266 233

> head(NhillCombs$cultivarSowingDate,20)
 [1] AlestarKeLiu.2019-04-15 AlestarKeLiu.2019-04-15 AlestarKeLiu.2019-04-15 AlestarKeLiu.2019-04-15 AlestarKeLiu.2019-04-15
 [6] AlestarKeLiu.2019-04-15 AlestarKeLiu.2019-04-15 AlestarKeLiu.2019-04-15 AlestarKeLiu.2019-04-15 AlestarKeLiu.2019-04-15
[11] AlestarKeLiu.2019-04-15 AlestarKeLiu.2019-04-15 AlestarKeLiu.2019-04-15 AlestarKeLiu.2019-04-15 AlestarKeLiu.2019-04-15
[16] AlestarKeLiu.2019-04-15 AlestarKeLiu.2019-04-15 AlestarKeLiu.2019-04-15 AlestarKeLiu.2019-04-15 AlestarKeLiu.2019-04-15
70 Levels: AlestarKeLiu.2019-02-01 Baudin.2019-02-01 BulokeKeLiu.2019-02-01 CommanderKeLiu.2019-02-01 ... WestminsterKeLiu.2019-05-15

> head(NhillCombs$SowingDate,20)
 [1] "2019-04-15" "2019-04-15" "2019-04-15" "2019-04-15" "2019-04-15" "2019-04-15" "2019-04-15" "2019-04-15" "2019-04-15"
[10] "2019-04-15" "2019-04-15" "2019-04-15" "2019-04-15" "2019-04-15" "2019-04-15" "2019-04-15" "2019-04-15" "2019-04-15"
[19] "2019-04-15" "2019-04-15"

> head(dens,30)
          x            y
1  261.3000 0.0001349443
2  261.5474 0.0001439700
3  261.7947 0.0001536142
4  262.0421 0.0001635900
5  262.2894 0.0001743577
6  262.5368 0.0001856132
7  262.7841 0.0001973436
8  263.0315 0.0002099905
9  263.2789 0.0002230519
10 263.5262 0.0002369018
11 263.7736 0.0002515225
12 264.0209 0.0002665944
13 264.2683 0.0002828346
14 264.5157 0.0002996416
15 264.7630 0.0003171822
16 265.0104 0.0003358504
17 265.2577 0.0003550631
18 265.5051 0.0003754209
19 265.7524 0.0003966793
20 265.9998 0.0004185551
21 266.2472 0.0004419890
22 266.4945 0.0004660636
23 266.7419 0.0004911954
24 266.9892 0.0005176314
25 267.2366 0.0005447476
26 267.4840 0.0005734260
27 267.7313 0.0006030864
28 267.9787 0.0006336448
29 268.2260 0.0006659731
30 268.4734 0.0006990730

箱线图:

Boxplots

累积概率图:

Cumulative probability plots

0 个答案:

没有答案