我有一个数据集,看起来像这样:GGPLOT2多个连续可变绘图
Distance Mean SD Median VI Vegetation.Index Direction X X.1 X.2 X.3
1 10m 0.525 0.082 0.530 NDVI NDVI Whole Landscape NA NA NA NA
2 25m 0.517 0.085 0.523 NDVI NDVI Whole Landscape NA NA NA NA
3 50m 0.509 0.086 0.514 NDVI NDVI Whole Landscape NA NA NA NA
4 100m 0.494 0.090 0.497 NDVI NDVI Whole Landscape NA NA NA NA
5 10m 0.545 0.076 0.551 NDVIe NDVI East NA NA NA NA
6 25m 0.542 0.078 0.549 NDVIe NDVI East NA NA NA NA
> dput(droplevels(head(data)))
structure(list(Distance = structure(c(2L, 3L, 4L, 1L, 2L, 3L), .Label = c("100m",
"10m", "25m", "50m"), class = "factor"), Mean = c(0.525, 0.517,
0.509, 0.494, 0.545, 0.542), SD = c(0.082, 0.085, 0.086, 0.09,
0.076, 0.078), Median = c(0.53, 0.523, 0.514, 0.497, 0.551, 0.549
), VI = structure(c(1L, 1L, 1L, 1L, 2L, 2L), .Label = c("NDVI",
"NDVIe"), class = "factor"), Vegetation.Index = structure(c(1L,
1L, 1L, 1L, 1L, 1L), .Label = "NDVI", class = "factor"), Direction = structure(c(2L,
2L, 2L, 2L, 1L, 1L), .Label = c("East", "Whole Landscape"), class = "factor"),
X = c(NA, NA, NA, NA, NA, NA), X.1 = c(NA, NA, NA, NA, NA,
NA), X.2 = c(NA, NA, NA, NA, NA, NA), X.3 = c(NA, NA, NA,
NA, NA, NA)), .Names = c("Distance", "Mean", "SD", "Median",
"VI", "Vegetation.Index", "Direction", "X", "X.1", "X.2", "X.3"
), row.names = c(NA, 6L), class = "data.frame")
我想创建一个barplot面网格上的x轴的分类变量(距离),连续可变y轴(植被指数)和两个巴条(平均和中值的营养指数值)。该栏通过“方向”和“植被指数”绘制曲线。
我已经完成了一种类型的度量(均值),如下图所示。
这里是我现在的代码:
p = ggplot(data,aes(x=Distance,y=Mean,fill=Distance)) + geom_bar(stat =
'identity',position='dodge')+ facet_grid(Direction~Vegetation.Index)+
coord_cartesian(ylim=c(0.2,0.95)) + geom_errorbar(data = data,
aes(ymin=Mean-SD,ymax=Mean+SD),width=0.5)
但我也想为它旁边正中一间酒吧。
Like this但对于所有的方块网格条形图。
我发现人们想要做这个确切的或类似的事情某些线程,并发现它们是相当有用的:
然而,我的数据看起来与他们的很不一样(我认为)并以任何方式改变它已经弄乱了我已有的东西。根据我的理解,我必须使用group ='Mean + Median'。
请一个[重复的例子(点击链接,许多技巧)(http://stackoverflow.com/q/5963269/903061)。不要共享数据的图像。取而代之的是(a)使用看起来像数据的内置数据,(b)共享短代码来模拟样本数据,或者(c)使用'dput()'重复共享您的数据(或者可能是数据的一部分) 。 – Gregor
此外,请更清楚您的期望输出。 “沿着x轴的多个连续变量”没有多大意义,尤其是对于一个barplot。条形图的x轴是分类的,而不是连续的。你的意思是你想要沿着X轴的*类型的度量*,例如一个中间的酒吧,一个酒吧的平均值? – Gregor
经过您的澄清,看起来您的第一个问题链接几乎是完全重复的。您需要将您的数据**转换为长格式**,其中您只有一个“* measure *”列,可以使用“mean”或“median”和单个“* value *”列采用平均值或中值的数值。你可以使用'melt' [就像这个答案](http://stackoverflow.com/a/30023982/903061)那样做。 – Gregor