如何基于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
相关产品推荐
相关产品推荐

