我想在彼此上面绘制两张图like in this post。
实验数据:我在一个名为expt$iso_xs[,8]
的列表中有一个连续变量显示给定日期的风角,然后我的风速与{{1 }}
expt$iso_xs[,2]
模拟数据:我有一个data.frame df<-data.frame(expt$iso.xs)
head(expt$iso.xs)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
736105.4 16.62729 2.183740 7.234774 0.9791632 4.01 4.20 238.62
736105.4 18.96705 2.489668 7.036234 0.9640366 3.82 4.00 243.14
736105.5 20.52089 2.687636 10.355394 1.3698454 4.99 5.14 247.02
736105.5 19.94449 2.611556 10.306912 1.3655301 4.85 5.12 249.57
736105.5 19.43309 2.551787 11.098302 1.4646251 4.83 5.12 243.89
736105.5 20.48259 2.689075 11.928011 1.5710530 4.89 5.09 254.23
,其中包含上述角度(0-90º)子集的预测。
z
使用bigangle作为因子和Tracer作为:
绘制它head(z,15)
Tracer angle treatment bigangle
71.101 0 S 150
71.101 0 S 150
71.105 15 S 165
71.105 15 S 165
71.098 30 S 180
71.098 45 S 195
71.114 60 S 210
71.114 80 S 230
71.110 90 S 240
看起来像这样:
我想在红点部分(150º和240º之间)上叠加箱线图,但以下内容不起作用:
ggplot() +
geom_boxplot(data=z, aes(y = (3600/Tracer/93.241), x = factor(bigangle)),outlier.shape = NA,outlier.colour = NA)+
coord_cartesian(ylim=c(0, 1))+
labs(x = "Angle", y = "Normalised ACh" )+
scale_x_discrete(labels=seq(0,360,10))+
theme_classic()
任何想法都会非常感激, 干杯
答案 0 :(得分:4)
我认为您唯一的问题是尝试为连续数据指定离散x标度。那你需要一个group
作为你的boxplot geom。
作为一个说明性的例子:
mt = mtcars
mt$wt_bin = cut(mt$wt, breaks = c(1, 3, 4.5, 6))
ggplot(mt, aes(x = wt, y = mpg)) +
geom_point() +
geom_boxplot(aes(group = wt_bin, x = wt), alpha = 0.4)
正如geom_boxplot
帮助所说:
只要您提供,您也可以使用连续x的箱形图 分组变量。
cut_width
特别有用
帮助中的示例显示了此代码:
ggplot(diamonds, aes(carat, price)) +
geom_boxplot(aes(group = cut_width(carat, 0.25)))
当然,你可以添加一个geom_point
图层(虽然在diamonds
数据中有太多的点可以作为一个很好的情节)。
对于您的比例,除非您在轴上有因素,否则不要使用离散比例。您可能需要scale_x_continuous(breaks = seq(0, 360, 10))
。
可以使用data
参数以通常的方式使用不同的数据集。继续上一个示例,但为geom_point
图层使用不同的数据:
similar_to_mt = data.frame(wt = runif(100, 1, 6), mpg = rnorm(100, 20, 4))
ggplot(mt, aes(x = wt, y = mpg)) +
geom_point(data = similar_to_mt) +
geom_boxplot(data = mt, aes(group = wt_bin, x = wt), alpha = 0.4)