如何在lessR PieChart环形图中组合显示计数与百分比数值标签
lessR PieChart 同时展示计数与百分比标签实现方法
问题现状
lessR包的PieChart()(别名PC())内置values参数仅支持单独选择三类标签:
"input":显示分组计数"%":显示分组百分比"prop":显示分组比例
直接给values传入向量、拼接字符串都无法实现多内容组合标签,无法达到类似15 (20%)的「计数+百分比」展示效果。
可行方案
提前计算各分组的计数和百分比,拼接为目标格式的标签向量,通过labels参数传入即可,同时关闭内置的values标签避免冲突。
完整示例代码
# 加载lessR包 library(lessR) # 读取包内置Employee示例数据 data <- rd("Employee") # 计算每个部门的人数、对应占比 dept_count <- as.vector(table(data$Dept)) dept_pct <- round(prop.table(dept_count) * 100, 0) # 第二个参数为百分比小数位数,0即取整 # 拼接为目标格式标签 custom_labs <- paste0(dept_count, " (", dept_pct, "%)") # 绘制环形图 PieChart(Dept, data = data, fill = "viridis", values = NULL, # 关闭内置数值标签 labels = custom_labs, # 传入自定义标签 hole = 0.6, # 设置空心大小实现环形图,普通饼图设为0即可 main = NULL)
调整说明
- 若需要保留1位/2位百分比小数,修改
round()函数第二个参数为1/2即可 - 该方法计算的分组顺序和
PieChart默认分类排序完全一致,不会出现标签和扇区错位的问题 - 标签的字体、大小、颜色可以通过
labels_cex、labels_color等参数直接调整,和内置标签的调整方式一致
内容的提问来源于stack exchange,提问作者Scholar CCE
相关产品推荐
相关产品推荐

