我已经使用
geom_tile
创建了一个热力图,并使用scale_fill_gradientn
映射了值。颜色条被分为两个梯度。一个梯度将值从0映射到0.05,另一个梯度将值从0.05映射到1。热图看起来很好,但颜色条不理想。我希望红-黄渐变(0-0.05)的高度与黑-棕渐变(0.05-1)的高度相同。
问题: 如何修改色条,使值0.05位于条的中间/中心,使两个不同颜色梯度的高度相同?换句话说,想象一下0.05刻度标记是一个滑块,您可以将其移动到条的中间,扩展/压缩相应的渐变。
类似的问题在以下两篇帖子中讨论过,但没有确定的解决方案,或者至少不是我可以轻松理解并回答我的问题:
非常感谢大家阅读我的问题并思考可能的解决方案。到目前为止,除了在Photoshop中编辑色条之外,我什么有用的东西都想不出来。Petr
可重现的例子:
TEST <- read.csv ("https://filetea.me/n3wHRhuy0GlS4xvjQDxs95BVA",header=T,row.names=NULL)
library(ggplot2)
ggplot(TEST, aes(x=Measure, y=SMTSD))+
geom_tile(aes(fill=Pval),colour="grey50", size=0.1) +
scale_x_discrete(expand = c(0,0))+
coord_equal(ratio=1)+
scale_fill_gradientn(colours=c("red","yellow","black","#996633"),
values=c(0,0.0499,0.05,1),
na.value="white", guide="colourbar",
name="P-value",limits=c(0,1),breaks=c(0,0.05,1))+
guides(fill = guide_colourbar(barheight = 20, direction = "vertical",
title.position="top", title.hjust = 0.5,title.vjust = 0.5, nbin = 50))
values=c(0,0.0499,0.05,1)^.25
中使用^.25
的含义? - Peter0.05^0.2313782=0.5
。 - Adam Quekgeom_tile(aes(fill=Pval^0.2313782),colour="grey50", size=0.1)
。 - Adam Quek