ggplot饼图问题:按组填充颜色却按单个度量分割
解决ggplot饼图按组聚合的问题
你的问题出在没有先对area组的Eb_impact_value求和,原始数据里每个area对应多条记录,geom_bar默认会把每一行的数值单独作为一个切片,所以饼图才会碎成很多小块。
解决步骤:
- 先按
area分组,计算每组的Eb_impact_value总和 - 用聚合后的数据集绘制饼图
代码示例
首先加载dplyr做数据聚合(如果没安装先运行install.packages("dplyr")):
library(dplyr) # 按area分组求和 Book1_agg <- Book1 %>% group_by(area) %>% summarize(total_value = sum(Eb_impact_value, na.rm = TRUE))
然后用聚合后的数据绘图:
ggplot(Book1_agg, aes(x="", y=total_value, fill=area)) + geom_bar(stat="identity", width=1, color="white") + coord_polar("y", start=0) + theme_void()
如果不想用dplyr,也可以用base R的aggregate函数:
Book1_agg <- aggregate(Eb_impact_value ~ area, data = Book1, sum, na.rm = TRUE) colnames(Book1_agg)[2] <- "total_value" # 重命名列方便后续绘图
这样生成的饼图就会按area组的总和来分割,每个颜色块对应一个完整的area分组。
内容的提问来源于stack exchange,提问作者lorena
相关产品推荐
相关产品推荐

