[英]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.