[英]Displaying multiple lines on ggplot with grouped (dodged) bars
我有数据需要在同一图表上以条形和线形显示。 我一直在遵循https://r-charts.com/evolution/line-graph-multiple-lines-ggplot2/和https://aledemogr.com/2017/05/29/plots-based-on- 的指导un-data-in-r/ ,这两者都表示数据应该采用“长”格式,其中所有值都在同一列中,变量类型在另一列中,而不是每个变量都有自己的列。
它几乎有效,但不完全有效。 结果是:
如果我从下面的 ggplot 命令中注释掉 geom_line(),V1 和 V2 条(橙色和绿色)在图形和图例中都会正确显示。 如果我注释掉 geom_col(),V3 和 V4 行在图形和图例中都能正确显示。 但是当我同时包含这两个命令时,ggplot 会在条形周围放置边框并将所有变量与图例中的线条组合在一起。 两条线本身在组合图上是可以的,除非我稍后会使用颜色。
任何想法如何删除条形周围的彩色边框并将线条限制为 V3 和 V4? 如果您删除“geom_line()”命令(无边框)、按原样显示的线条以及总共有四个条目的图例,我对条形图的期望结果是它们的外观:两个带条形的条目标有“V1”和“V2”以及标有“V3”和“V4”的两条简单线。
这是代码:
mydata <- data.frame(month=c(2,2,2,2,2,2,2,2,6,6,6,6,6,6,6,6,
10,10,10,10,10,10,10,10),
year=c(2016,2016,2016,2016,2017,2017,2017,2017,
2016,2016,2016,2016,2017,2017,2017,2017,
2016,2016,2016,2016,2017,2017,2017,2017),
var_type=c("V1","V2","V3","V4","V1","V2","V3","V4",
"V1","V2","V3","V4","V1","V2","V3","V4",
"V1","V2","V3","V4","V1","V2","V3","V4"),
var_value=c(1,4,4,3,1,5,4,3,3,22,12,16,
3,23,12,16,12,8,7,8,3,8,7,8))
bar_data <- mydata %>%
filter(water_type == "V1" | water_type == "V2")
line_data <- mydata %>%
filter(water_type == "V3" | water_type == "V4")
ggplot(line_data,aes(x=month, y=water_val, color=water_type)) +
geom_col(data=bar_data, aes(fill = water_type), position="dodge") +
geom_line() +
ggtitle("V1 and V2") +
scale_y_continuous(breaks = seq(0,25,10)) +
xlab("Month") +
ylab("(cm)") +
facet_wrap(~year,nrow=2)
我正在使用 R 版本 3.6.1。
我提前致谢!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.