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

如何基于Acc type字段为R语言圆形堆积图着色?

圆形堆积图按Acc type分组着色解决方案

需求背景

基于包含Acc type(4种可选值,用于分组着色)、Key(单个气泡标识)、Current count(气泡大小)的数据集制作圆形堆积图,需直接按Acc type为气泡分组着色,无需层级堆积逻辑。

修改后的代码

# 安装并加载依赖包
install.packages("readxl")
library(readxl)
library(packcircles)
library(ggplot2)
library(dplyr)

# 导入Excel数据
Graph <- read_excel("BubblechartV3.0.xlsx", sheet = "Graph")

# 计算圆形布局参数
pck <- circleProgressiveLayout(Graph$`Current count`, sizetype = 'area')

# 合并原始数据与布局数据,保留分组字段
mydata <- cbind(Graph, pck)

# 生成绘图坐标并关联Acc type分组信息
myPlotCord <- circleLayoutVertices(pck) %>%
  left_join(mydata %>% select(id, `Acc type`), by = "id")

# 绘制分组着色的圆形堆积图
pl <- ggplot() +
  geom_polygon(
    data = myPlotCord, 
    aes(x, y, group = id, fill = `Acc type`), 
    colour = "black", alpha = 0.6
  ) +
  geom_text(
    data = mydata, 
    aes(x, y, size = `Current count`, label = Key)
  ) +
  scale_size_continuous(range = c(1,4)) +
  theme_void() + 
  theme(legend.position = "right") +
  coord_equal()

pl

核心修改说明

  • 通过left_join将原始数据中的Acc type字段与绘图坐标数据关联,利用id匹配每个气泡的分组信息
  • 将geom_polygon的填充依据从单个气泡的id改为Acc type,实现分组着色
  • 保留group = id确保每个气泡的多边形绘制完整性
  • 恢复图例显示(可按需改回legend.position="none"),便于区分分组对应颜色

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 23:25:55