我正在使用软件包heatmaply
来可视化单个细胞表达数据。
我想使用自定义颜色并将“黄色”分配给> 2的表达式级别,将“洋红色”分配给<-2的表达式级别。 [-2,2]
之间的范围应由“洋红色”-“黑色”-“黄色”的平滑梯度表示。
在这里,我的示例文件是一个10行x 5列的矩阵:
my_palette<-PurpleAndYellow(50)
heatmaply(test,col = my_palette, dendrogram = "none")
它会生成正确的“ PurpleAndYellow”彩色热图,但是会在整个范围内缩放[-5,+5]
如果我指定scale_fill_gradient_fun
,则热图的颜色将变为“ RdBu”幽灵(Heatmap2):
heatmaply(ab, col = my_palette, dendroram="none",
scale_fill_gradient_fun = ggplot2::scale_fill_gradient2(
low = "magenta", mid="black",high = "yellow", midpoint = 0,
limits = c(-2, 2)))
您能告诉我如何使用heatmaply更改颜色并调整热图的亮度吗?
答案 0 :(得分:0)
我认为您在增加限制方面步入正轨,但无需添加scale_fill_gradient_fun
。除非您在此功能中也指定了调色板,否则它将自动覆盖您的调色板。无论如何,我认为这应该可行:
library(heatmaply)
my_palette<-PurpleAndYellow(50)
heatmaply(test,col = my_palette, dendrogram = "none", limits = c(-2, 2))
就亮度而言,我不确定是否可以按照您的想法解决。在我看来,可见性的问题并不在于亮度,而在于您逐渐淡入或淡出黑色。我认为一个不错的选择可能是更改渐变,以使中心不会淡化为黑色-可能是较浅的灰色或类似的东西。