【发布时间】:2017-09-16 09:47:44
【问题描述】:
我正在做一个演示,并想展示一个带有适当图例的折线图 (geom_line())。然后我想覆盖一个新的 geom_line 并添加相应的图例项。出于美学原因,我希望叠加层不要修改第一个图中给出的图例位置。效果应该是在现有图表上绘图,并添加到其图例中。
如果我只是简单地使用 ggplot 先制作第一个图,然后用两条线制作一个新图,则图例的位置会发生明显变化。
如果我尝试使第一个图成为完整图,但将其中一个线的大小设置为零,我会遇到无法抑制大小为零线的图例项的问题。
如何使用 ggplot2 达到我想要的效果?
编辑:
这是制作我第一次天真尝试的两个图表的代码。
require(ggplot2)
require(reshape2)
x<-seq(-10,10,length=200)
G <- (1/(sqrt(2*pi))) * exp(-((x)^2)/(2))
G2 <- 2*(1/(pi))*(1/(x^2+1))
df = data.frame(x,G,G2)
ggplot(data = melt(data.frame(x,G),id.vars = 'x'))+
geom_line(aes(x=x, y=value, color=variable),size=.5)+
scale_color_manual("Distribution",values=c("orange"),labels=c("Gaussian"))+
coord_cartesian(ylim = c(0, 1))
ggplot(data = melt(data.frame(x,G,G2),id.vars = 'x'))+
geom_line(aes(x=x, y=value, color=variable),size=.5)+
scale_color_manual("Distribution",values=c("orange","blue"),labels=c("Gaussian","2Gaussian"))+
coord_cartesian(ylim = c(0, 1))
如果从这些图片中看不出有问题,请打开这两个链接中的图片并从一个链接翻到另一个。
注意:问题比我最初描述的还要严重,因为不仅图例在移动,而且坐标轴也在移动。
大概可以通过绘制两者然后使其图例项和线不可见来解决此问题。有这种可能吗?
【问题讨论】:
-
请提供一些示例数据、代码和输出:stackoverflow.com/questions/5963269/…
-
你的愿望就是我的命令。如果有任何其他方法可以改进问题,请告诉我。
-
如果您的演示格式允许嵌入动画 GIF,您可以使用
gganimate创建一个不错的效果。如果您有兴趣,可以发布一个答案。 -
@neilfws 绝对!