scale_color_manual определить несколько цветов для значений NA вызывает многоцветные линии - PullRequest
0 голосов
/ 24 мая 2018

У меня есть данные, где я хочу построить гистограммы и линейные графики с одинаковой цветовой схемой, связанной со значениями var2.Однако существует множество значений для var2, которые встречаются только изредка.Вместо того, чтобы находить имена для всех из них и явно кодировать их в цветовую шкалу, я хотел бы установить значение na.value для нескольких цветов, которые можно использовать в случае, если есть несколько значений, которые не соответствуют имени.Вот некоторые примеры данных, адаптированных из этого вопроса .

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"))

bargraph

Однако, когда я использую ту же теорию, примененную к 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"))

linegraph

ЛюбойИдея, как я мог заставить две строки взять один цвет из na.value для всей их длины?

Примечание: если вы не предоставите цвет для na.value, он строит график с пустым пространством, гдезначение должно быть.Это может быть очень запутанным, может быть, может быть полезное предупреждающее сообщение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...