gpt4 book ai didi

r - ggplot2:geom_point 有时会根据使用的审美删除 NA 值

转载 作者:行者123 更新时间:2023-12-04 14:15:51 25 4
gpt4 key购买 nike

我正在绘制同一图上相关矩阵的相关系数 r 和样本大小 n(上三角中的 rn 在下面的三角形中)。通常我对 ggplot2 在绘图之前删除我的 NA 没有问题,但在这种情况下它只是删除 NAsome 而我不不知道为什么。我使用的是 ggplot2 的 3.2.1 版。

示例数据框:

library(ggplot2)
library(dplyr)

ex <- data.frame(x1 = c(rep("2010", 3), rep("2011", 3), rep("2012", 3)),
x2 = rep(c("2010", "2011", "2012"), 3),
r = c(NA, 0.5, 0.2, NA, NA, 0.1, NA, NA, NA),
n = c(NA, NA, NA, 25, NA, NA, 70, 50, NA))

当我运行此图时,以尺寸作为美学,NA 会自动从两个几何体中删除:

ex %>%
ggplot(aes(x1, x2))+
geom_point(aes(size = r))+
geom_text(aes(label = n))

但是,当我运行此图时,以颜色作为美学,NA 仅从 geom_text 中移除,而不是从 geom_point 中移除:

ex %>%
ggplot(aes(x1, x2))+
geom_point(aes(color = r), size = 6)+
geom_text(aes(label = n))

stackoverflow question , 不适用,因为我不想要过滤掉行。我还尝试将 x1x2r 更改为基于 this 的字符, 但它也没有用

ex %>%
ggplot(aes(as.character(x1), as.character(x2)))+
geom_point(aes(color = as.character(r)), size = 6, na.rm = T) +
geom_text(aes(label = n))

有没有办法让颜色美学忽略 NA?

最佳答案

您可以为色标设置 na.value 值。如果将其设置为 NA,则不会显示缺失的点:

ex %>%
ggplot(aes(x1, x2))+
geom_point(aes(color = r), size = 6)+
geom_text(aes(label = n)) +
scale_color_gradient(na.value = NA)

ggplotwithnacolour

关于r - ggplot2:geom_point 有时会根据使用的审美删除 NA 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60458013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com