簡體   English   中英

在連續 ggplot-legend 中為 NA 值添加條目

[英]Adding entry for NA-values in continuous ggplot-legend

這里有一個非常相似的問題: Add NA value to ggplot legend for Continuous data map

我試圖理解它,但我沒有設法讓它適用於我的數據。 所以我創建了一個超級簡單的例子。 我有這個數據:

set.seed(1)
df = data.frame(a=rnorm(50), b=rnorm(50), c=rep(1:5, 10))
df[sample(1:50, 10), ]$c = NA

其中所有列都是numeric 現在我想為 NA 值制作一個帶有圖例條目的 ggplot。 當我執行以下操作時:

ggplot(df) +
  geom_point(
    aes(x = a, y =b, col=c)
  )

這是結果

在此處輸入圖像描述

我想要的是這樣的(當 c 是一個因素時,它會自動獲得一個條目):

ggplot(df) +
  geom_point(
    aes(x = a, y =b, col=factor(c))
  )

在此處輸入圖像描述

我能否獲得或多或少簡單的類似結果並將我的值保留在 class numeric中?

通過添加scale_color_continuous(na.value="red")為 NA 定義顏色很容易,但在圖例中沒有明確標記。

為此,您可以使用ggnewscale為 NA 值添加第二個色階:

library(ggplot2)
library(ggnewscale)
set.seed(1)
df = data.frame(a=rnorm(50), b=rnorm(50), c=rep(1:5, 10))
df[sample(1:50, 10), ]$c = NA
na.value.forplot <- 'red'
ggplot(df) +
  geom_point(aes(x = a, y =b, col=c)) +
  scale_color_continuous(guide = guide_colorbar(order = 2)) +
  new_scale_color() +
  geom_point(data=subset(df, is.na(c)),
    aes(x=a, y=b, col="red")) +
  scale_color_manual(name=NULL, labels="NA", values="red")

代表 package (v1.0.0) 於 2021 年 3 月 31 日創建

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM