我有以下数据
# A tibble: 7 x 5
# Groups: date, station [7]
date station days mean3y environ
<fct> <chr> <int> <dbl> <fct>
1 2019 41B004 6 8.33 Urbain avec influence modérée du trafic
2 2019 41B011 21 21.3 Urbain avec très faible influence du trafic
3 2019 41MEU1 5 NA Urbain avec faible influence du trafic
4 2019 41N043 9 10 Industriel avec influence modérée du trafic
5 2019 41R001 13 11.3 Urbain avec influence modérée du trafic
6 2019 41R012 14 16.3 Urbain avec très faible influence du trafic
7 2019 41WOL1 3 3.67 Urbain avec influence modérée du trafic
用以下ggplot代码绘制
ggplot(data, aes(x = reorder(station, -days),
y = days, fill = environ)) +
geom_col(width = 0.5, colour = "black", size = 0.5) +
guides(fill = guide_legend(ncol = 2)) +
geom_text(aes(label = days),
vjust=-0.3, color="black", size = 3.5) +
geom_hline(aes(yintercept = 25),
linetype = 'dashed', colour = 'red', size = 1) +
labs(x = '', y = bquote("Nombre de jours de dépassement de NET60" ~ O[3] ~ "en 2019")) +
theme_minimal() +
theme(legend.position="bottom", legend.title = element_blank(),
legend.margin=margin(l = -2, unit='line'),
legend.text = element_text(size = 11),
axis.text.y = element_text(size = 12),
axis.title.y = element_text(size = 11),
axis.text.x = element_text(size = 11),
panel.grid.major.x = element_blank()) +
geom_hline(yintercept = 0)
生成此figure。
我还要在该图中为每个x值使用另一个mean3y
,例如days
添加变量geom_col
,>]
p <- ggplot(data, aes(x = reorder(station, -days), y = days, fill = environ)) + geom_col(width = 0.5, colour = "black", size = 0.5) + guides(fill = guide_legend(ncol = 2)) + geom_text(aes(label = days), vjust=-0.3, color="black", size = 3.5) + geom_col(aes(x = reorder(station, -days), y = mean3y, fill = environ), inherit.aes = FALSE, width = 0.5, colour = "black", size = 0.5) + geom_hline(aes(yintercept = 25), linetype = 'dashed', colour = 'red', size = 1) + labs(x = '', y = bquote("Nombre de jours de dépassement de NET60" ~ O[3] ~ "en 2019")) + theme_minimal() + theme(legend.position="bottom", legend.title = element_blank(), legend.margin=margin(l = -2, unit='line'), legend.text = element_text(size = 11), axis.text.y = element_text(size = 12), axis.title.y = element_text(size = 11), axis.text.x = element_text(size = 11), panel.grid.major.x = element_blank()) + geom_hline(yintercept = 0)
但是,尽管使用了
position = "dodge"
,但由于两个变量都重叠,所以无法达到预期的效果。
请问有没有办法做到这一点?非常感谢。
我有以下数据#小标题:7 x 5#组:日期,站点[7]日期站点天数平均3y周围环境
您的数据很难复制到我的R会话中,并且您的代码过于复杂,无法证明问题,因此我将两者保持在最低水平。
interaction
,并使用一些辅助函数来获得漂亮的标签,仅显示测站的名称,同时将名称条上方标签中的var变量。