【发布时间】:2019-08-08 12:02:01
【问题描述】:
我有 2 个 data.frames,我想将它们与分组条形图一起绘制。
第一个数据框是一个堆叠的条形图,有多种颜色,左侧有一个对应的轴。
第二个数据框是一个单一的条形图,只有一种颜色,右侧有相应的轴。
下图说明了我的目标:
这是我的数据集和我失败的尝试:
library(ggplot2)
library(dplyr)
df1 <- structure(list(day = structure(c(1L, 1L, 1L, 1L), .Label = "2019-01-29", class = "factor"),
streckenabschn = c("something", "something", "something", "something"),
variable = c("a", "b", "c", "d"),
value = c(0, 0, 2, 8)),
row.names = c(NA, -4L), class = "data.frame")
df2 <- structure(list(day = structure(1:2, .Label = c("2015-12-25", "2019-01-29"), class = "factor"),
streckenabschn = c("something", "something"),
variable = c("x", "x"), value = c(0.6, 3.471875)),
row.names = 1:2, class = "data.frame")
cbPalette <- c('#3652a3', '#60a0df', '#b7dbff', '#dd0000', "gray")
legendLabels <- c("a", "b", "c", "d", "x")
ggplot() +
geom_bar(data = df1, aes(x=day, y=value, fill = variable),
stat = "identity", width=0.2) +
geom_bar(data = df2, aes(x=day, y=value, fill = variable),
stat = "identity", width=0.2, position = position_dodge(width=0.5)) +
scale_fill_manual(name="", values=cbPalette, labels=legendLabels) +
scale_y_continuous(sec.axis = sec_axis(~., name = "Axis 2")) +
guides(fill = guide_legend("Legend", nrow = 2, ncol=4, byrow = T)) +
theme(legend.position = "top") + ylab("Axis 1")
我的问题:
- 我怎样才能有 1 个堆叠的条形图,而另一个是 “躲过”?
- 如何定义“轴 2”标签和中断 对应数据,因为我不能使用转换公式?
我做错了什么以及如何做对?
【问题讨论】: