我有数据,我想要绘制条形图和线图,使用与var2值相关的相同颜色方案。但是,var2有许多值偶尔会出现。而不是找到所有这些的名称并将它们明确地编码到颜色标度中,我想将na.value设置为几种颜色,以便在存在多个与名称不匹配的值时使用。 以下是一些根据此question改编的示例数据。
library(ggplot2)
set.seed(42)
mydata <- data.frame(var1 = sample(c("A", "B", "C", "D"), 150, replace = TRUE),
var2 = sample(c("s", "i", "y", "x"), 150, replace = TRUE),
var3 = sample(1:10,150,replace = TRUE))
my_cols <- c("s" = "steelblue",
"i" = "darkgoldenrod2",
"z" = "red",
"c" = "pink")
这适用于制作条形图
ggplot(mydata, aes(x = var1, fill = var2)) +
geom_bar() +
scale_fill_manual(name = "var2",
values = my_cols,
na.value = c("black","green"))
但是,当我使用与geom_line相同的理论时,它会以不同的方式为每个线段着色。
ggplot(mydata, aes(x = var2, y = var3, col = var2))+
geom_line()+
scale_colour_manual(name = "var2",
values = my_cols,
na.value = c("black","green","cyan"))
我知道怎样才能让这两条线从na.value中获取一种颜色的全长?
旁注:如果没有为na.value
提供颜色,则会绘制具有空值的图形,其中na值应为。这可能非常令人困惑,也许可能会有一个有用的警告信息?