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

如何用R的ggplot绘制四分之一圆形的极坐标条形图?

解决ggplot绘制四分之一圆形极坐标条形图的问题

要把你的全圆极坐标条形图改成四分之一圆样式,需要调整x轴范围、极坐标参数以及主题设置,以下是修改后的代码和说明:

修改后的完整代码

library(ggplot2)

# 模拟数据集(设置随机种子保证结果可复现)
set.seed(123)
data <- data.frame(angle = sample(0:90, size = 15, replace = FALSE), 
                   cell = sample(1:30, size = 15, replace = TRUE))

# 绘制四分之一圆形极坐标条形图
ggplot(data, aes(x = angle, y = cell, fill = factor(angle))) +
  geom_bar(stat = "identity", width = 3) +
  scale_fill_discrete(guide = FALSE) +
  # 固定x轴范围为0-90,对应四分之一圆的角度区间
  scale_x_continuous(limits = c(0, 90), breaks = seq(0, 90, 30)) +
  # 限制y轴范围避免条形超出可视区域,可根据数据调整
  scale_y_continuous(limits = c(0, max(data$cell) + 2)) +
  labs(x = "", y = "") +
  theme_minimal() +
  # 设置极坐标:指定x为角度轴,调整起始位置形成直角四分之一圆
  coord_polar(theta = "x", start = -pi/2, direction = 1) +
  # 隐藏多余的网格和轴元素
  theme(
    panel.grid = element_blank(),
    axis.text.y = element_blank(),
    axis.ticks.y = element_blank()
  )

关键改动说明

  • scale_x_continuous(limits = c(0, 90)):强制x轴仅显示0到90的范围,让极坐标只渲染这部分对应的四分之一圆区域;添加breaks参数是为了显示角度刻度,增强图形可读性。
  • coord_polar(theta = "x", start = -pi/2):theta="x"明确将x轴作为极坐标的角度轴;start=-pi/2把0度位置调整到图形底部,90度在右侧,刚好形成直角的四分之一圆。
  • 主题调整:通过theme隐藏不必要的y轴文本、刻度和网格线,让图形更贴合四分之一圆的简洁样式。
  • scale_y_continuous:限制y轴范围,防止条形过长超出四分之一圆的可视区域,可根据你的实际数据灵活调整上限值。

内容的提问来源于stack exchange,提问作者Ray

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 16:05:02