You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 11:47:02