【发布时间】:2018-02-19 05:24:37
【问题描述】:
假设我有两个具有不同数据但 x 值范围相同的 data.frames
a <-data.frame(x=c(1,1,1,2,2,2,3,3,3),
y=c(0.3,0.4,0.3,0.2,0.5,0.3,0.4,0.4,0.2),
z=c("do","re","mi","do","re","mi","do","re","mi"))
b <- data.frame(x=c(1,2,3),y=c(10,15,8))
a 和 b 的 X 值范围相同 (1,2,3),但 a 是 9 行的 data.frame,b 是 3 行的 data.frame。
我使用 geom_bar 来绘制 a 值的分布,如下所示:
ggplot(a, aes(x=x, y=y, fill=z)) +
geom_bar(position="stack",stat="identity") +
ylab("") +
xlab("x")
我使用 geom_line 来绘制 b 数据,如下所示:
ggplot(b, aes(x=x, y=y)) +
geom_line(stat="identity") +
ylab("") + xlab("x") + ylim(0,15)
现在我想将这个 geom_line 图覆盖到之前的 geom_bar 图。我的第一次尝试是执行以下操作:
ggplot(a, aes(x=x, y=y, fill=z)) +
geom_bar(position="stack",stat="identity") +
ylab("") + xlab("x") +
ggplot(b, aes(x=x, y=y)) +
geom_line(stat="identity") +
ylab("") + xlab("x") + ylim(0,15)
没有成功。
如何将 geom_line 图叠加到 geom_bar 图?
【问题讨论】:
-
y 轴刻度看起来非常不同。我不确定这会很好地覆盖,但我会添加一个答案来告诉你如何。