Я часто работаю с тем, ggplot2
что делает градиенты красивыми ( щелкните здесь, чтобы увидеть пример ). Мне нужно работать с базой, и я думаю, что scales
ее можно использовать и для создания цветовых градиентов, но я совершенно не понимаю, как. Основная цель - создать палитру из n цветов, которая варьируется от цвета x до цвета y. Однако решение должно работать в базе. Это была отправная точка, но нет места для ввода n.
scale_colour_gradientn(colours=c("red", "blue"))
Мне хорошо известно:
brewer.pal(8, "Spectral")
из RColorBrewer
. Я больше ищу подход, похожий на то, как ggplot2
обрабатывает градиенты, который говорит, что у меня есть эти два цвета, и мне нужно 15 цветов на этом пути. Как я могу это сделать?
base
специально просили , но я считаюcolourvalues
( также в CRAN ) особенно удобным для сопоставления значений с градиентом. К тому же он довольно легкий (зависит отRcpp
).Ответы:
colorRampPalette
может быть здесь твоим другом:И просто чтобы показать, как это работает:
источник
brewer.pal(8, "Spectral")
, вы можете присвоить результирующий вектор цветов,colorRampPalette
чтобы сгенерировать больше цветов на этой рампе. Например:colorRampPalette(brewer.pal(8, "Spectral"))
.Просто чтобы расширить предыдущий ответ,
colorRampPalette
можно обрабатывать более двух цветов.Так что для более развернутого типа "тепловой карты" вы можете ....
Полученное изображение:
источник
Попробуйте следующее:
источник
Приведенный выше ответ полезен, но на графиках трудно различить более темные градиенты черного. Я нашел одну альтернативу - использовать градиенты серого цвета следующим образом.
Больше информации о серой шкале здесь.
Добавлено
Когда я использовал приведенный выше код для разных цветов, таких как синий и черный, градиенты были не такими четкими.
heat.colors()
кажется более полезным.В этом документе есть более подробная информация и параметры. pdf
источник