Как задать цветовые оттенки для сгруппированной линейной диаграммы?

#r #ggplot2

#r #ggplot2

Вопрос:

Я хотел бы задать цвета для моей линейной диаграммы ggplot от темно-синего до светло-фиолетового.

Я думаю, что мне, возможно, придется использовать color brewer, но я не уверен, как правильно это сделать

Могу ли я установить для верхнего цвета некоторый цвет, а для нижнего — какой-то другой цвет?

 iris %>% 
  ggplot(aes(Sepal.Length, Sepal.Width, group = Species))  
  geom_line()
  

Комментарии:

1. Попробуйте добавить scale_color_gradient(low = "darkblue", high = "purple")

2. Я использую group = для создания своих групп

3. @Cauder пожалуйста, добавьте MRE, чтобы мы могли вам лучше помочь

4. Я добавил в пример

Ответ №1:

scale_color_gradient будет работать для непрерывных данных, но не для факторов. Вы можете использовать colorRampPalette для создания собственной палитры, которая интерполирует любое количество желаемых оттенков между двумя выбранными цветами.

В цветах R по умолчанию нет цвета с именем «светло-фиолетовый», поэтому я использовал тот, который выглядел близко. Попробуйте этот код:

 library(ggplot2)
#> Warning: package 'ggplot2' was built under R version 3.6.3

### create color making function
colfunct <- colorRampPalette(c("darkblue", "darkorchid1 "))

###  brew desired number of colors, which is 3 for the built-in iris dataset 
shades <- colfunct(3)

### plot the data and map color to the factor of interest
ggplot(iris, aes(Sepal.Length, Sepal.Width, color=Species)) 
  geom_point(shape=1) 
  geom_smooth(method = lm, formula = y~x, se=FALSE) 
  scale_color_manual(values =  shades)
  

Создано 2020-10-10 пакетом reprex (версия 0.3.0)

Комментарии:

1. @Cauder в вашем примере «Виды» сопоставляются с «группой», а не с цветом. Попробуйте использовать aes(Sepal.Length, Sepal.Width, color= Species) , и это должно сработать?