如何统计ggplot2绘制的散点图中实际绘制的数据点数量?
统计ggplot散点图实际显示的数据点数量
有两种直接可行的方法获取结果:
方法一:从原始数据中过滤缺失值后计数
ggplot绘制散点时会自动排除AdultBodyMass_g或Range_Area_km2存在缺失值(NA)的行,你可以先筛选出这两个变量都无缺失的观测,再统计行数:
基础R写法
# 筛选出两个变量均无缺失的行 valid_data <- dat1_carnivore[complete.cases(dat1_carnivore$AdultBodyMass_g, dat1_carnivore$Range_Area_km2), ] # 统计实际绘图的点数 nrow(valid_data)
dplyr写法(若使用tidyverse工具链)
library(dplyr) dat1_carnivore %>% filter(!is.na(AdultBodyMass_g) & !is.na(Range_Area_km2)) %>% nrow()
方法二:从已生成的ggplot对象中提取数据计数
你创建的Plot_Carnivore对象内部存储了经过缺失值过滤后的绘图数据,直接提取并统计行数即可:
# 提取绘图用的数据并统计行数 nrow(Plot_Carnivore$data)
两种方法结果完全一致,均为散点图实际呈现的数据点数量。
内容的提问来源于stack exchange,提问作者Peter Bohus
相关产品推荐
相关产品推荐

