gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 19:47:51 24 4
gpt4 key购买 nike

我有一组数据,想要映射colour围绕某种“引用值(value)”的审美,如下所示:

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

我仍然想表明值是连续的这一事实,因此只需使用像 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)

这会产生以下结果:

enter image description here

我熟悉scale_colour_gradient(low = "red", high = "green") ,但是我希望更有意地沿着所需的值映射转换我的颜色,以使这些区域在视觉上更加“流行”。间距不一定是线性的。换句话说,对于引用值 3,映射将如下所示:

value:  1     3      10
colour: red blue green

这可能吗?我还会采用替代解决方案来实现良好的可视化,以便在大量点中轻松突出显示“所需”值。例如,我考虑替换引用附近的值,例如 (ref - tol < colour < ref + tol) <- NA ,然后使用scale_colour_gradient na.value 的选项.

或者我真的应该考虑 cut()选项,只需使用非常小的切割尺寸,然后弄清楚如何沿着最终的断裂点逐渐改变颜色?

最佳答案

来自http://docs.ggplot2.org/0.9.2.1/scale_gradient2.html :

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

更新:

关于 OP 的评论 - 玩弄中点和 space="Lab" 有助于:

# 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")

关于r - 使用 R/ggplot2 控制中间值颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21595620/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com