我在将一个层叠条形图和一条折线图结合起来。
以下是数据帧的可重现代码:
df1 <- data.frame(month = c("Okt 2017", "Okt 2017", "Okt 2017", "Nov 2017", "Nov 2017", "Nov 2017", "Dez 2017",
"Dez 2017", "Dez 2017", "Jan 2018", "Jan 2018", "Jan 2018", "Feb 2018", "Feb 2018", "Feb 2018",
"Mrz 2018", "Mrz 2018", "Mrz 2018"),
source = c("a", "b", "c", "a", "b", "c", "a", "b", "c", "a", "b", "c", "a", "b", "c", "a", "b", "c"),
value1 = c(sample (c(1000L:4000L),18, replace = FALSE))
)
df1$month <- as.yearmon(df1$month)
df1 <- arrange(df1, month)
第二个数据框:
df2 <- data.frame(month = c("Okt 2017", "Nov 2017", "Dez 2017", "Jan 2018", "Feb 2018", "Mrz 2018"),
value2 = c(sample (c(5000000L:6000000L),6, replace = FALSE))
)
df2$month <- as.yearmon(df2$month)
df2 <- arrange(df2, month)
绘图的代码如下:
ggplot() +
geom_bar(data = df1, aes(month, value1*5000000/5000, fill = source), stat="identity", position = "stack") +
geom_point(data = df2, aes(month, value2), color = "blue")+
geom_line(data = df2, aes(month, value2), group = 1, color = "blue") +
labs(x = "month", y="value2 (line)") + scale_y_continuous(sec.axis = sec_axis(~.*5000/5000000, name = "value1 (bars)"),
labels= format_format(big.mark = ".", decimal.mark = ",", scientific = FALSE)) +
scale_x_yearmon(format = "%Y-%b", n = 6) +
scale_fill_manual(values= c("darkseagreen4","darkseagreen", "darkseagreen3", "darkseagreen2")) +
theme_light()
尽管我已经有从十月到三月的月份,但R标记了九月而没有十二月。有人知道我在这里做错了什么吗?
scale_x_yearmon
中的n
值 - 例如scale_x_yearmon(format = "%Y-%b", n = 10)
。(更多信息请参见?scale_x_yearmon
) - Prem