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

如何在R的ggplot绘图中不显示NA值(灰色点)

解决ggplot散点图中NA值灰色点的问题

有两种常用方法可以隐藏这些NA值对应的点:

方法1:在geom_point()中添加na.rm = TRUE参数

直接在绘制点的图层里设置忽略NA值,这是最便捷的方式,无需修改原始数据:

ggplot(dolu, aes(x=month, y=year, color=value)) +
  geom_point(na.rm = TRUE) +  # 添加该参数忽略NA值点
  scale_x_continuous(breaks=1:12, labels=c("Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık")) +
  theme_classic() +
  labs(x="Ay", y="Yıl")

方法2:提前过滤数据中的NA值

如果需要保留处理后的数据集用于其他分析,可以先过滤掉value列含NA的行(灰色点由该列NA值导致):

使用base R实现:

# 筛选value列非NA的行
dolu_clean <- dolu[!is.na(dolu$value), ]

ggplot(dolu_clean, aes(x=month, y=year, color=value)) +
  geom_point() +
  scale_x_continuous(breaks=1:12, labels=c("Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık")) +
  theme_classic() +
  labs(x="Ay", y="Yıl")

使用dplyr包实现:

library(dplyr)
dolu_clean <- dolu %>% filter(!is.na(value))

ggplot(dolu_clean, aes(x=month, y=year, color=value)) +
  geom_point() +
  scale_x_continuous(breaks=1:12, labels=c("Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık")) +
  theme_classic() +
  labs(x="Ay", y="Yıl")

两种方法都能有效移除灰色的NA值点,可根据实际需求选择。

内容的提问来源于stack exchange,提问作者Barış Durmuş

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 01:19:58