Как использовать несколько цветов на одном графике в R? - PullRequest
2 голосов
/ 22 января 2020
x=rnorm(6000, 10, 4)
 plot(x, type = "l")

enter image description here

Для индекса 0-2000 Я хотел бы использовать green color, а для следующего 2000-4000 красный и для окончательного 4000-6000 blue color.

Как можно раскрасить этот график несколькими цветами?

Ответы [ 2 ]

2 голосов
/ 22 января 2020

Вы можете использовать lines и указать позицию x, чтобы нарисовать значения x разными цветами:

x=rnorm(6000, 10, 4)
plot(x[1:2000], type = "l", xlim = c(0,6000), col = "green")
lines(x = 2000:4000, y = x[2000:4000], col = "red")
lines(x = 4000:6000, y = x[4000:6000], col = "blue")

enter image description here

1 голос
/ 23 января 2020

Вот решение ggplot:

library(tidyverse)

df <- 
  x %>% 
  enframe(name = "Index") %>% 
  mutate(
    color = case_when(
      Index <= 2000 ~ "green", 
      Index <= 4000 ~ "red",
      TRUE ~ "blue"
    )
  )

df %>% 
  ggplot(aes(x = Index, y = value, color = color)) +
  geom_line(show.legend = FALSE) +
  scale_color_manual(values = c("blue" = "blue", "green" = "green", "red" = "red"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...