使用ggplot将来自不同大小的数据集的2个图与图例重叠

时间:2015-07-14 15:47:28

标签: r ggplot2 overlay legend

我有2个不同大小的数据集。我如何简单地绘制它们并且每个都有不同的颜色和图例? 所以在这种情况下,图例将是count1,count2,而图例标题是我选择的,让我们说:mylegend。我需要更改或添加以下命令?

x <- data.frame(Q=1:10, count1=21:30)
y <- data.frame(Q=seq(1,10,0.5), count2=seq(11,20, 0.5))
ggplot() + geom_line(data=x, aes(x=Q, y=count1)) + geom_point(data=y, aes(x=Q, y=count2)) 

1 个答案:

答案 0 :(得分:0)

最简单的解决方案是将您的数据合并到相同的data.frame中,然后在ggplot中设置美学(df <- data.frame(Q = c(x$Q, y$Q), count = c(x$count1, y$count2), type = c(rep("count1", 10), rep("count2", 19)) ) )。

以下是一种可以将所有内容组合在一起的方法:

rbind()

但您也可以使用melt()reshape2等命令(来自ggplot(df, aes(x=Q, y=count, colour=type)) + geom_point() + geom_line() + scale_colour_discrete(name="mylegend") 库)。

将数据合并为一个data.frame:

{{1}}

这是一个基本的例子,我强烈推荐Hadley Wickham的ggplot2 book,以及搜索谷歌(Stack Overflow,R Cookbook等)以寻找特定绘图问题的解决方案或更多定制方法你的情节。 enter image description here