Я хочу создать палитру из зеленого, желтого, оранжевого, красного и черного цветов. Минимальное значение - 0, максимальное - «бесконечность».

Мне нужны следующие жестко запрограммированные значения:

0 зеленый
20 - желтый
60 - оранжевый
100 красный
max (200, максимальное значение в данных) - черный

Это можно указать в colorRampPalette?

0
Zoltan 2 Окт 2020 в 21:25

1 ответ

Лучший ответ

Поскольку этот вопрос отмечен тегом ggplot2, я предполагаю, что вы хотите использовать свой градиент в ggplot. colorRampPalette дает равномерно распределенный вектор цветов и не связывает их с конкретными числовыми значениями. Похоже, вы ищете что-то вроде scale_color_gradientn:

ggplot(data.frame(x = runif(5000, 0, 200), y = runif(5000, 0, 200)), aes(x, y)) +
  geom_point(aes(color = (x + y)/2), size = 3) +
  scale_color_gradientn(colours = c("green", "yellow", "orange", "red", "black"),
                        values = c(0, 20, 60, 100, 200) / 200, limits = c(0, 200),
                        name = "value") 

enter image description here

2
Allan Cameron 2 Окт 2020 в 18:48