我需要绘制两条线和一条线。我有3个数据帧,如下:
require(ggplot2)
df.0 <- data.frame(x = c(1:5), y = rnorm(5))
df.1 <- data.frame(x = c(1:5), y = rnorm(5))
df.2 <- data.frame(x = c(1:5), y = runif(5))
ggplot(df.0, aes(x=x, y=y)) +
geom_line(aes(x=x, y=y))+
geom_bar(data=df.1, aes(x=x, y=y),stat = "identity",position="dodge")+
geom_bar(data=df.2, aes(x=x, y=y),stat = "identity",position="dodge")
我无法以正确的方式绘制线条和线条。它应该如下图所示。
我对ggplot2不熟悉。我已经阅读了很多链接,但找不到与我的问题类似的帖子。 感谢您的时间和关注。
答案 0 :(得分:1)
组合数据框-至少两个条形图。躲避是在单个geom_bar图层中完成的,而不是在两个单独的图层之间进行的。
df_bar = rbind(df.1, df.2)
df_bar$id = rep(c("df.1", "df.2"), times = c(nrow(df.1), nrow(df.2)))
ggplot(df.0, aes(x = x, y = y)) +
geom_line() +
geom_col(data = df_bar, aes(fill = id), position="dodge")
其他更改:无需在每一层重复aes(x = x, y = y)
。如果它在原始ggplot()
中,它将被继承。另外,geom_col
是geom_bar(stat = 'identity')
的一种好方法。