具有颜色渐变的图例/比例从特定值开始 - 定义比例中断
Legend / scale with colour gradient start from certain value - define scale breaks
我想为现成的热图定制图例,因为它的范围从 0 到 1 带灰色缩放,但 0.01 之前的值保持白色,上面没有任何颜色渐变。设法为热图做到这一点,但找不到图例的任何接近示例。
这是我的代码:
> ggplot(heatmap,aes(Colour, Group, fill=p.value))+
+ scale_fill_gradientn(colours= c("white","gray","black"), values=c(0,0.011,1), breaks=c(0,0.01,0.25,0.5,0.75,1), guide=guide_colorbar(frame.colour="black"))+
+ geom_tile() + theme_bw()+ theme(legend.key.height=unit(4.5,"cm"))
以及热图的屏幕截图:
有什么建议吗?
更新:
我将第二种颜色从“灰色”替换为“gray95”,它看起来比显示的图表稍微好一点。将灰色的开始区域延迟到 0.01 以上(与所示图表中的图例相比,灰色开始于 0.01 之前的某处)。感谢@Nate 和@tjebo 对此提出的建议!但是,仍然欢迎任何有用的建议。
此外,我只是想澄清一下,我使用“白色”作为特定情况的表示,其中“白色”颜色不打算在图例的颜色渐变范围内。
这是一个小的解决方法 - 使用“white”两次,然后从第二个位置开始渐变。请注意,您需要先将值重新调整为 0:1,另请参阅 ?scale_color_gradientn
library(tidyverse)
vals <- c(0, 2, 4, 10)
newvals <- scales::rescale(vals, to = 0:1)
ggplot(iris, aes(Sepal.Length, Sepal.Width, color = Petal.Length)) +
geom_point() +
scale_color_gradientn(colours = c("white", "white", "grey", "black"),
values = newvals,
breaks = vals,
limits = c(0,10))
放大 带有黑色勾号。您可以看到灰色渐变在 2 以上立即开始
我想为现成的热图定制图例,因为它的范围从 0 到 1 带灰色缩放,但 0.01 之前的值保持白色,上面没有任何颜色渐变。设法为热图做到这一点,但找不到图例的任何接近示例。
这是我的代码:
> ggplot(heatmap,aes(Colour, Group, fill=p.value))+
+ scale_fill_gradientn(colours= c("white","gray","black"), values=c(0,0.011,1), breaks=c(0,0.01,0.25,0.5,0.75,1), guide=guide_colorbar(frame.colour="black"))+
+ geom_tile() + theme_bw()+ theme(legend.key.height=unit(4.5,"cm"))
以及热图的屏幕截图:
有什么建议吗?
更新: 我将第二种颜色从“灰色”替换为“gray95”,它看起来比显示的图表稍微好一点。将灰色的开始区域延迟到 0.01 以上(与所示图表中的图例相比,灰色开始于 0.01 之前的某处)。感谢@Nate 和@tjebo 对此提出的建议!但是,仍然欢迎任何有用的建议。
此外,我只是想澄清一下,我使用“白色”作为特定情况的表示,其中“白色”颜色不打算在图例的颜色渐变范围内。
这是一个小的解决方法 - 使用“white”两次,然后从第二个位置开始渐变。请注意,您需要先将值重新调整为 0:1,另请参阅 ?scale_color_gradientn
library(tidyverse)
vals <- c(0, 2, 4, 10)
newvals <- scales::rescale(vals, to = 0:1)
ggplot(iris, aes(Sepal.Length, Sepal.Width, color = Petal.Length)) +
geom_point() +
scale_color_gradientn(colours = c("white", "white", "grey", "black"),
values = newvals,
breaks = vals,
limits = c(0,10))
放大 带有黑色勾号。您可以看到灰色渐变在 2 以上立即开始