geom_arc_bar()宽度不均问题:如何实现各处宽度一致?
解决仪表盘宽度不均匀的问题
问题根源在于ggplot默认的坐标轴缩放比例并非1:1,导致圆弧的径向宽度在视觉上被拉伸或压缩,看起来不均匀。最优雅的解决方法是添加coord_equal(),强制x轴和y轴使用相同的单位长度,这样圆弧的宽度就能保持一致。
修正后的完整代码:
library("ggplot2") library("ggforce") data <- data.frame("type" = c("low_carbon", "high_carbon"), "start" = c(0, 0.7 * pi), "end" = c(0.7 * pi, pi) ) ggplot(data = data) + geom_arc_bar( mapping = aes( x0 = 1, y0 = 1, fill = type, start = start - pi / 2, end = end - pi / 2, r0 = 0.75, r = 1 ) ) + theme_minimal() + theme(legend.position = "bottom", legend.text = element_text(size = 11)) + coord_equal() # 强制坐标轴等比例,解决宽度不均问题
补充说明
coord_equal()会让x轴和y轴的每单位像素长度完全一致,确保圆弧的径向宽度(r - r0 = 0.25)在视觉上处处均匀。- 如果需要调整仪表盘的整体显示大小,可以在
theme()中设置aspect.ratio,但必须配合coord_equal()使用,否则依然会出现宽度不均的问题。
内容的提问来源于stack exchange,提问作者Julien Larget-Piet
相关产品推荐
相关产品推荐

