与绘图层中的重写ggplot数据混淆

时间:2015-11-17 04:42:32

标签: r ggplot2

以下是生成带有添加的线图图层的条形图的简短代码。我添加了注释,说明哪些有效,哪些无效。当我的问题解决了,我无法理解为什么我遇到问题或者它是如何解决的。如果你能解释或建议正确的方法,那就太好了。

{{1}}

1 个答案:

答案 0 :(得分:1)

基本上,您的图表正在合并来自两个数据集的信息,以尝试获取新的图表。由于您已列出fill = alp,因此ggplot正在尝试将此信息应用于您的所有图表。

最简单的方法是考虑这个新的data.frame

gg1 <- gg_data1
names(gg1) <- c("n1", "var1", "value1")
gg_combine <- cbind(gg_data, gg1)

要重现您的第二张图,它相当于:

ggplot(data=gg_combine, aes(x=n, y=value, fill=alp))+
  geom_bar(stat="identity")+ 
  geom_line(aes(x=n1, y=value1, colour=alp)) + 
  facet_grid( var ~ ., scale="free_y")

基本上它说的是我想用“alp”对所有内容进行分组,并将这些组合在一起,这就是为什么你得到这些线条;添加colour=alp后,就会清楚为什么线看起来那样。

enter image description here

用你的最后一个情节。您所做的只是将条形图与alp分组,但我们要忽略此分组。这相当于:

ggplot(data=gg_combine, aes(x=n, y=value))+
  geom_bar(aes(fill=alp), stat="identity")+ 
  geom_line(aes(x=n1, y=value1)) +
  facet_grid( var ~ ., scale="free_y") 

enter image description here

希望这有帮助。