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

使用geom_tile绘制热力图时添加频率标签的问题求助

解决geom_tile热力图添加频率标签的问题

方法一:直接使用table转换后的数据框

你之前的geom_text未生效,大概率是ggplot语法衔接的问题。把映射参数统一放在ggplot()中,就能让geom_text正确继承频数列的数值:

# 将原始数据转换为频数统计数据框
freq_df <- table(df) %>% as.data.frame()

# 绘制带标签的热力图
ggplot(freq_df, aes(x = Var1, y = Var2, fill = Freq)) +
  geom_tile(color = "black") +
  geom_text(aes(label = Freq), color = "black", size = 3) +
  coord_fixed()

方法二:用dplyr聚合数据后绘图

你用dplyr聚合得到的df2是正确的,但绘图时要注意映射的列名是你自定义的total_count,而非默认的Freq,代码如下:

# 正确聚合数据
df2 <- df %>% 
  group_by(Var1, Var2) %>% 
  summarise(total_count = n(), .groups = 'drop')

# 绘制带标签的热力图
ggplot(df2, aes(x = Var1, y = Var2, fill = total_count)) +
  geom_tile(color = "black") +
  geom_text(aes(label = total_count), color = "black", size = 3) +
  coord_fixed()

关键注意点

  • 两种方法的核心是确保geom_text的label参数映射到正确的频数列(第一种是Freq,第二种是total_count)
  • 把映射参数放在ggplot()中,能让所有图层共享同一套数据映射,避免图层间的映射不匹配问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 19:52:09