You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

R语言环形图(Donut chart)定制问题:添加计数与百分比

我来帮你完成这个环形图的制作,结合dplyr做数据预处理,用plotly生成带计数和百分比的交互式环形图,刚好匹配你的需求~

完整实现步骤

1. 数据预处理:统计计数与生成显示标签

首先需要对原始数据分组统计,计算每个颜色的出现次数和占比,再把这些信息合并成适合在图表上显示的标签:

library(dplyr)
library(plotly)

# 你的原始数据
df <- tibble(Color = c("Green","Green","Yellow","Yellow","Gray","Gray","Red","Red"))

# 数据处理:统计计数、计算百分比、组合显示标签
df_summary <- df %>%
  group_by(Color) %>%
  summarize(Count = n(), .groups = "drop") %>%  # 统计每个颜色的出现次数
  mutate(
    Percentage = round((Count / sum(Count)) * 100, 1),  # 计算百分比,保留1位小数
    Label = paste0(Color, "\n", Count, " (", Percentage, "%)")  # 组合颜色、计数、百分比为显示标签
  )

这里.groups = "drop"是为了清除分组残留信息,避免后续绘图出现问题;\n用来让标签在图表上换行显示,可读性更强。

2. 生成交互式环形图

用plotly的饼图类型,通过hole参数将其转为环形,同时把自定义标签配置到图表中:

# 创建环形图
plot_ly(df_summary, 
        labels = ~Color, 
        values = ~Count, 
        text = ~Label,  # 鼠标悬停时显示的详细文本
        textinfo = "text",  # 扇区上直接显示自定义的Label内容
        insidetextorientation = "radial",  # 让内部文本沿径向排列,更美观
        type = "pie", 
        hole = 0.6,  # 控制环形空心的大小,0为实心饼,1为完全空心
        marker = list(colors = ~Color)) %>%  # 让扇区颜色与Color列的名称匹配
  layout(
    title = "颜色分布环形图",
    showlegend = TRUE  # 如果不需要图例可以改为FALSE
  )

生成的图表会在每个扇区清晰显示颜色名称、原始计数和百分比,同时支持鼠标悬停查看细节,交互体验很好。

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

火山引擎 最新活动