首页 > 解决方案 > 如何从 5 种颜色中创建一个连续调色板,并为中间 cclors 指定值?

问题描述

我想用绿色、黄色、橙色、红色和黑色创建一个调色板。最小值为 0,最大值为“无穷大”。

我想要以下硬编码值:

0 为绿色
20 为黄色
60 为橙色
100 为红色
最大值(200,数据中的最大值)为黑色

这可以在 colorRampPalette 中指定吗?

标签: rggplot2

解决方案


由于这个问题被标记为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") 

在此处输入图像描述


推荐阅读