#r #ggplot2 #colors #geom
Вопрос:
С данными, разделенными по категориям (образцы A и B), были сделаны 2 слоя, один для точек и один для линий. Я хочу разделить свои данные по категориям, указав цвета для точек, а также разделить линии, но с другими цветами, чем те, которые используются для точек.
library(ggplot2)
Sample <- c("a", "b")
Time <- c(0,1,2)
df <- expand.grid(Time=Time, Sample = Sample)
df$Value <- c(1,2,3,2,4,6)
ggplot(data = df,
aes(x = Time,
y = Value))
geom_point(aes(color = Sample))
geom_line(aes(color = Sample))
scale_color_manual(values = c("red", "blue")) #for poits
scale_color_manual(values = c("orange", "purple")) #for lines
Ответ №1:
Используя ggnewscale
пакет, это может быть достигнуто следующим образом:
library(ggplot2)
library(ggnewscale)
Sample <- c("a", "b")
Time <- c(0,1,2)
df <- expand.grid(Time=Time, Sample = Sample)
df$Value <- c(1,2,3,2,4,6)
ggplot(data = df,
aes(x = Time,
y = Value))
geom_point(aes(color = Sample))
scale_color_manual(name = "points", values = c("red", "blue")) #for poits
new_scale_color()
geom_line(aes(color = Sample))
scale_color_manual(name = "lines", values = c("orange", "purple")) #for lines