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

R语言ggplot2 coord_polar极坐标中间孔洞无法显示问题求助

解决方法

你要实现的极坐标中间空洞是环形(甜甜圈)图效果,只需截断极坐标径向轴的中心显示区域即可,修改后代码如下:

# 先读入测试数据
df <- structure(list(name = c("g__Bradyrhizobium", "g__Bradyrhizobium", 
"g__Cutibacterium", "g__Cutibacterium"), primaryTumorLocation = c("Small intestine", 
"Urothelial tract", "Small intestine", "Urothelial tract"), absolute = c(2L, 
10L, 9L, 25L), Freq = c(0.032258064516129, 0.072992700729927, 
0.145161290322581, 0.182481751824818), percent = c(7.5, 16.9, 
33.5, 42.2)), row.names = c(1390L, 1397L, 2470L, 2477L), class = "data.frame")

# 绘图代码
library(ggplot2)
ggplot(df) +
  geom_col(aes(x=4,y=Freq)) + 
  coord_polar("y",start = 0,direction = 1) + 
  # 新增这行控制径向轴范围,实现中间空洞
  scale_x_continuous(limits = c(1, 5), expand = c(0,0)) +
  facet_grid(name~primaryTumorLocation) 

参数调整说明

  • 调整scale_x_continuous中limits的第一个数值:数值越大,中间的空洞半径越大
  • 调整limits上下限的差值:差值越大,环形的厚度越大
  • 可以根据需求删掉expand = c(0,0),保留默认的径向轴边缘留白

原理说明:你原有代码的径向x轴默认从0开始显示,柱形会从极坐标中心0的位置一直延伸到x=4的位置,自然没有中间空洞。通过设置x轴显示下限大于0,就可以把中心区域的柱形截断,形成空洞效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 22:48:01