r - 如何删除 GGplot 图例中的 NA 标签?
问题描述
我的原始代码
my_graph10 <- ggplot(Adata, aes(x = SVL, y = Fi)) + geom_point(aes(color = Morph)) + labs(x = "SVL (mm)", y = "Front Inner Limb (mm)") + geom_smooth(method=lm,se=FALSE,aes(color = Morph,linetype = Morph)) + scale_color_manual(values = c("orange", "steelblue"))
导致了这个
Legend NA
网上看了很多人说要用na.translate = F; 因此我将它添加到代码中
my_graph11 <- ggplot(Adata, aes(x = SVL, y = Fo)) + geom_point(aes(color = Morph)) + labs(x = "SVL (mm)", y = "Front Outer Limb (mm)") + geom_smooth(method=lm,se=FALSE,aes(color = Morph,linetype = Morph)) + scale_color_manual(**na.translate = F**, values = c("orange", "steelblue")
,我留下了这
两个传奇
但是,当我这样做时,它会从原始图例中删除 NA,但会为线型添加一个新的图例,在该图例下仍然列出 NA。我尝试为线型执行相同的代码,但收到此错误消息“错误:手动比例中的值不足。需要 2 但只提供了 0”
解决方案
您可以使用remove_missing
# Let's create some sample data first
library(ggplot2)
set.seed(2020)
x <- seq(0, 1, length.out = 100)
df <- data.frame(
x = x,
y = rnorm(length(x)),
Morph = sample(c("S", "U", NA), length(x), replace = TRUE))
# Use `remove_missing` with `na.rm = TRUE` to remove NA rows
ggplot(remove_missing(df, na.rm = TRUE), aes(x, y, colour = Morph)) +
geom_point() +
geom_smooth(aes(linetype = Morph), method = "lm", se = FALSE)
或者你使用na.omit
ggplot(na.omit(df), aes(x, y, colour = Morph)) +
geom_point() +
geom_smooth(aes(linetype = Morph), method = "lm", se = FALSE)
推荐阅读
- php - 在 WooCommerce 3+ 中将购物车总数作为浮点数获取
- android - com.android.sdklib.tool.sdkmanager.SdkManagerCliSettings。
(SdkManagerCliSettings.java:428) - python - 什么可能导致 Python 无法读取新云服务器上的 .pyc 或 .pyd 文件?
- javascript - Chartjs 勾选客户风格
- sql - 您如何使用 EITHER 或在具有多个 WHERE 语句的两列之间编写 Teradata SQL 语句?
- reactjs - 如何将一个 React 应用程序中的组件渲染到另一个应用程序中?
- java - 通过流读取 json
- javascript - 如何在 PHP 中显示隐藏状态的文本
- python - python在for循环中迭代多个值
- python - 为什么 Azure Eventhub python 库在达到最大大小时会抛出 KeyError: 'all-partitions'?