#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)
, и это должно сработать?