gpt4 book ai didi

r - geom_raster 和 geom_point 的两种颜色渐变

转载 作者:行者123 更新时间:2023-12-02 19:42:48 29 4
gpt4 key购买 nike

我有一个非常简单的问题,但我一直在努力在线寻找答案。

我有一个用ggplot + geom_raster制作的热图。我想在每个矩形内插入一个符号,这样它们就可以传达另一条信息。为此,我想到使用geom_point

绘图很棒,但我在颜色渐变方面遇到问题。

plot <- ggplot(data, aes(x = Var1, y = Var2, fill = value)) +
geom_tile() +
geom_raster(aes(fill=value)) +
scale_fill_gradient2(low = "gray", high = "red", mid = "#e3e3e3", midpoint = "0") +
geom_point(data = significance, aes(x = Var1, y = Var, color = value), shape = 21, size = 3) +
scale_color_gradient(low = "gray", high = "gray")

但是,由于某种原因,散点图吸收了两个梯度,而不仅仅是吸收“颜色”梯度。由于热图的值非常接近于零,而散点图的值很高,因此“填充”部分使热图全部变成灰色。

我以此为引用来尝试两个渐变:Using two scale colour gradients ggplot2

最佳答案

这是一个简单的可重现示例,分别对栅格和点使用填充和颜色。请注意,为了使其正常工作,我们对点使用实心形状而不是填充形状。我们确保美学位于相关的几何图形中,因此它们不会被其他几何图形继承。另请注意,对于 hte 点和栅格使用不同的值名称可能是更好的做法,但在示例中,我调用这两个 value 来匹配 OP 中的示例。

df1 = data.frame(expand.grid(x=1:10, y=1:10), value = rnorm(100))
df2 = data.frame(x = sample(1:10), y = sample(1:10), value = runif(10,20,50))

ggplot(df1, aes(x = x, y = y)) +
geom_tile(aes(fill = value)) +
scale_fill_gradient2(low = "gray", high = "red", mid = "#e3e3e3", midpoint = 0) +
geom_point(data = df2, aes(color = value), shape = 19, size = 3) +
scale_color_gradient(low = "gray", high = "blue")

enter image description here

关于r - geom_raster 和 geom_point 的两种颜色渐变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59848492/

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