当前位置 : 主页 > 网页制作 > css >

使用R / ggplot2使用scale_colour_continuous控制中间值颜色

来源:互联网 收集:自由互联 发布时间:2021-06-13
我有一组数据,并希望将颜色美学映射到一种“参考值”,如下所示: 以下值为红色 附近的值是蓝色 上面的值是绿色 我仍然想表明值是连续的,所以简单地使用像cut()这样的函数并使用
我有一组数据,并希望将颜色美学映射到一种“参考值”,如下所示:

>以下值为红色
>附近的值是蓝色
>上面的值是绿色

我仍然想表明值是连续的,所以简单地使用像cut()这样的函数并使用scale_colour_discrete并不是我想要的.这是一些示例数据:

set.seed(123)
x <- runif(100, min = 1, max = 10)
y <- runif(100, min = 1, max = 10)
test <- data.frame(x = x, y = y)
test$colour <- runif(100, min = 1, max = 10)
ggplot(test, aes(x = x, y = y, colour = colour)) + geom_point(size = 3)

这产生以下结果:

我熟悉scale_colour_gradient(低=“红色”,高=“绿色”),但我希望更有意识地将我的颜色转换为所需的值映射,以使区域“流行”更具视觉效果.间距不一定是线性的.换句话说,对于参考值3,映射将是这样的:

value:  1     3      10
colour: red   blue   green

这可能吗?我还会采用其他解决方案来实现良好的可视化,以便在各点之间轻松突出“理想”值.例如,我考虑替换引用附近的值,使得(ref – tol< color< ref tol)< - NA,然后使用scale_colour_gradient的na.value选项. 或者我应该真正考虑切割()选项,只需要一个非常小的切割尺寸,然后弄清楚如何逐渐改变颜色沿着合成的断裂?

从 http://docs.ggplot2.org/0.9.2.1/scale_gradient2.html开始:

scale_color_gradient2(low = "red", midpoint = 3, mid = "blue", high = "green")

更新:

关于OP的评论 – 玩中点和空间=“实验室”有助于:

# Using the Lab colour space also improves perceptual properties
# at the price of slightly slower operation
d + scale_colour_gradient2(space="Lab")

从墓地回来 – 鉴于最新的评论,我意识到应该把两行代码放在一起:

scale_color_gradient2(low = "red",
midpoint = 3,
mid = "blue",
high = "green",
space="Lab")
网友评论