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

R ggplot绘制0~1取值Freq列对应饼图 实现数值1对应完整饼图

解决方案

问题的核心是ggplot默认会根据输入数据的范围自动适配y轴刻度,你只需要手动固定y轴的取值范围为0~1即可实现需求。

你可以在原有代码基础上添加ylim(0, 1)或者scale_y_continuous(limits = c(0, 1))固定y轴范围,修改后的完整代码如下:

df <- 
structure(list(name = c("bac2", "bac", 
"bac", "bac", "bac", "bac", 
"bac", "bac", "bac", "bac", 
"bac"), primaryTumorLocation = c("Vulva", "Adrenal gland", 
"Anus", "Appendix", "Bile duct", "Bone marrow", "Bone/Soft tissue", 
"Breast", "Bronchus", "Colorectum", "Esophagus"), absolute = c(0L, 
0L, 1L, 0L, 0L, 0L, 0L, 1L, 0L, 1L, 0L), Freq = c(0.323, 0.0013, 0.0588235294117647, 
0.3, 0.2, 0.5, 0.1, 0.0013986013986014, 0, 0.00201612903225806, 0)), row.names = 240:250, class = "data.frame")

ggplot(df, aes(x=1, y=Freq)) +
  coord_polar("y") + 
  theme(axis.text.y = element_blank()) +
  geom_bar(stat="identity") + 
  ylim(0, 1) + # 新增该行固定y轴范围为0~1
  facet_grid(name~primaryTumorLocation) 

修改后极坐标的满圈刻度对应y=1,饼图的填充占比会直接和Freq的数值一一对应,Freq为1时就会完整填充整个饼图。

内容的提问来源于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 21:54:07