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

如何在ggplot绘制的玫瑰图中将y轴从计数改为百分比显示

你可以通过调整stat_bin的y轴映射将计数转换为百分比,修改后的代码如下:

library(ggplot2)
Degrees <- runif(100, 0, 360)
# 45度分箱,y轴展示百分比
rose <- ggplot(mapping = aes(x = Degrees, 
                             y = after_stat(count / sum(count) * 100))) +
  stat_bin(breaks = (0:8 - 0.5)/8 * 360, color = "black", fill = "light grey") +
  scale_x_continuous(breaks = 0:7/8*360) +
  # 自定义y轴标签,可选配置刻度格式
  scale_y_continuous(name = "占比(%)") +
  coord_polar(start=-pi/8)
rose

相关说明

  • 核心逻辑:after_stat()用于获取stat_bin计算完成后的分箱计数值,将单箱计数除以总样本量再乘以100,即可换算为百分比值
  • 若需要y轴刻度自动带百分号标识,可以加载scales包,将scale_y_continuous配置替换为:
    scale_y_continuous(name = "占比", labels = scales::percent_format(scale = 1, accuracy = 1))
    

备注:如果你使用的是3.0.0之前版本的ggplot2,不支持after_stat语法,可以将y轴映射替换为y = ..count../sum(..count..)*100

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 16:54:08