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

如何在ggplot2柱状图中添加温度区间像素计数标签?

解决ggplot2柱状图计数标签不显示的问题

问题原因

你的geom_text未指定数据源,也没有在美学映射中明确x轴对应cuts字段,导致无法正确计算和定位计数标签;另外原代码的vjust=1.5会把标签放在柱子下方,可能超出可视区域。

方法一:修正原代码

给geom_text补充数据源和x轴映射,同时调整标签位置:

ggplot() +
  geom_bar(data = datene, aes(cuts, fill = cuts)) + 
  scale_fill_viridis_d(option = "B", name = 'Temp (Cº)') +
  theme(axis.title.x=element_blank(), axis.title.y=element_blank()) +
  geom_text(data = datene, aes(x = cuts, label = ..count..), 
            stat = "count", vjust = -0.5, colour = "black")
  • 必须给geom_text指定data = datene,确保和柱状图使用同一数据集
  • 在aes中明确x = cuts,让标签对应到每个温度区间
  • 将vjust设为负数,让标签显示在柱子顶部上方,避免被遮挡

方法二:提前统计数据(更直观)

先通过分组统计得到每个区间的像素数量,再绘制图表和标签,逻辑更清晰:

library(dplyr)

# 统计每个温度区间的像素数
datene_count <- datene %>%
  count(cuts, name = "pixel_count")

# 绘制图表
ggplot(datene_count, aes(x = cuts, y = pixel_count, fill = cuts)) +
  geom_col() +
  scale_fill_viridis_d(option = "B", name = 'Temp (Cº)') +
  theme(axis.title.x=element_blank(), axis.title.y=element_blank()) +
  geom_text(aes(label = pixel_count), vjust = -0.5, colour = "black")

这种方法不需要依赖stat="count",直接使用统计好的数值,更容易调整和排查问题。

内容的提问来源于stack exchange,提问作者Martín Francia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 23:54:24