вручную масштабируйте цвет фактора в ggplot

#r #ggplot2 #tidyverse #geom-point #scale-color-manual

#r #ggplot2 #tidyverse #геометрическая точка #масштаб-цвет-руководство

Вопрос:

Допустим, у меня есть фрейм данных, подобный этому

 id password year length Something 1 1234567 2001 7 good 2 pass4 2001 5 bad 3 angel3 2003 6 bad 4 pizza 2004 5 ok  

я пытаюсь получить код, который создал бы геометрическую точку с 3 переменными, но я хочу выделить только один уровень фактора «Что-то» . И я не хочу, чтобы на каком-либо из других уровней фактора Что-то(например, хорошее или плохое) было окрашено. Или, по крайней мере, они могут оставаться черными.

я думал, может быть, что-то вроде этого :

 graph lt;- dat %gt;%   ggplot(aes(x=(year), y=length, color=Something$ok)   geom_point()  

но я не могу использовать $ .

Ответ №1:

Вы можете раскрасить только одну точку, установив все точки в один цвет и изменив цвет точки, которую вы хотите изменить. Для этого вы можете использовать scale_color_manual

Данные:

 dat lt;- structure(list(id = 1:4, password = structure(c(1L, 3L, 2L, 4L ), .Label = c("1234567", "angel3", "pass4", "pizza"), class = "factor"),   year = c(2001L, 2001L, 2003L, 2004L), length = c(7L, 5L,   6L, 5L), Something = structure(c(2L, 1L, 1L, 3L), .Label = c("bad",   "good", "ok"), class = "factor")), class = "data.frame", row.names = c(NA,  -4L))  

Сюжет:

 dat %gt;%   ggplot(aes(x=(year), y=length, color = Something == "ok"))   geom_point()    scale_color_manual(values = c("blue", "orange"))  

пример