Как управлять цветами для сегментов линий в ggplot - PullRequest
1 голос
/ 17 апреля 2020

Я пытаюсь создать линейный график с 2 линиями и раскрасить различные сегменты линий на основе третьей переменной. Мне удалось заставить это работать с простым кодом, приведенным ниже, но теперь я действительно изо всех сил пытаюсь контролировать, какие цвета используются (он использует 2 оттенка синего, которые трудно различить guish, я Надеюсь на голубой и красный). Любой совет будет принята с благодарностью!

temp <- data.frame (x=c(0,1,2,3,4,5,0,1,2,3,4,5),y=c(5,5,4,5,4,4,5,3,3,4,3,3),z=c(0,0,0,1,2,0,0,0,0,2,1,0), subject = c(1,1,1,1,1,1,2,2,2,2,2,2))
temp$y <- factor(temp$y, levels=unique(as.character(temp$y)) )
ggplot(temp, aes(x=x, y=y, group=subject)) +
geom_line(aes(x, y, group = subject, color = z),  temp)

1 Ответ

1 голос
/ 17 апреля 2020

Цвет - это, по сути, шкала в ggplot, и им можно управлять следующим образом:

ggplot(temp, aes(x=x, y=y, group=subject)) +
geom_line(aes(x, y, group = subject, color = z),temp)  + scale_color_manual(values=c("red", "blue","yellow")) #also accepts hex codes

Возможно, вам придется изменить код в зависимости от того, какой у вас масштаб, так как существуют различные команды для цветовые градиенты и др. c.

См. также это руководство:

http://www.sthda.com/english/wiki/ggplot2-colors-how-to-change-colors-automatically-and-manually

Обновление:

Добавить это и работает:

temp <- temp %>% mutate(z = as.factor(z))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...