[英]manual bin size selection in R ggplot geom.tile function?
有没有一种方法可以手动设置大小不同的 bin 大小并在特定颜色代码后为它们着色?
我想要一个带有 binsizes 的热图:0-0.05、0.05-0.25、0.25-0.5、0.5-0.75 和 0.75-1 对于 bin 0-0.05 我想要设置颜色: "#ecefb7"
用于剩余的 bins 我想要从low="#7fc8b9"
到high="#3a81b5"
。
我确实设法在我的图例中找到了垃圾箱,但没有使用特定的颜色编码。 也许有人知道我如何实现这一目标?
样本最小数据:
Group sample pvalue
1 OG0000010:Up EB1_D 0.04900000
2 OG0000050:Down EB1_D 0.19019725
3 OG0000638:Up EB1_D 0.52008137
4 OG0000010:Up EN1_D NA
5 OG0000050:Down EN1_D 0.01615993
6 OG0000638:Up EN1_D 0.48958058
到目前为止我使用的代码:
ggplot(pvaldata2, aes(x=sample, y=Group)) +
geom_tile(colour="black", size=0.25, aes(fill=pvalue)) +
scale_fill_gradient(low="#ecefb7", high="#3a81b5", na.value = "white",
breaks = c(0.05, 0.25, 0.5, 0.75),
labels = c("0.05", "0.25", "0.5", "0.75")) +
theme(axis.text.y = element_text(size = 8))
您可以通过更改克服色阶完全控制scale_fill_gradientn
,设定limits
到c(0, 1)
,specfiying所有的颜色在一个载体,以及它们在向量位置values
。 在您的情况下,它看起来像这样:
ggplot(pvaldata2, aes(x = sample, y = Group)) +
geom_tile(colour="black", size = 0.25, aes(fill = pvalue)) +
scale_fill_gradientn(colours = c(rep("#ecefb7", 2), "#7fc8b9", "#3a81b5"),
na.value = "white",
values = c(0, 0.05, 0.0501, 1),
limits = c(0, 1)) +
theme(axis.text.y = element_text(size = 8))
如您所见,这将NA
着色为白色,p 值低于 0.05(甚至非常接近 0.05 的值)为所需的浅黄色,其余为所选渐变。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.