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

如何基于名称计数使用R语言创建Treemap?

解决方法

你的代码有两个核心问题:一是ggplot()的括号未闭合,二是geom_treemap()的area参数需要连续型的计数值,而非直接传入因子变量。以下是修正后的完整实现:

步骤1:统计各名称的出现次数

首先需要对names向量做计数统计,得到每个名称对应的出现次数:

library(dplyr)
library(ggplot2)
library(treemapify) # 注意:geom_treemap来自treemapify包,需先安装加载

names <- c("A", "B", "B", "C", "D", "A", "A", "A", "A", "G", "B", "F", "F", "H")
# 统计计数并整理成数据框
name_counts <- names %>% 
  as.data.frame() %>% 
  rename(name = ".") %>% 
  count(name)

步骤2:绘制树形图

用统计好的计数值作为area参数,填充色对应名称,还可添加标签显示名称和计数:

ggplot(name_counts, aes(area = n, fill = name, label = paste(name, n, sep = ": "))) +
  geom_treemap() +
  geom_treemap_text(colour = "white", place = "centre", size = 12) +
  labs(title = "名称计数树形图") +
  theme(plot.title = element_text(hjust = 0.5))

关键说明

  • 必须先安装并加载treemapify包,geom_treemap是该包提供的函数,并非ggplot2原生功能
  • area参数必须传入数值型变量(这里的n即每个名称的出现次数),不能直接使用因子
  • geom_treemap_text用于在区块内添加标签,方便直观查看对应名称和计数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 01:01:22