热图:调整颜色

时间:2020-04-03 10:30:57

标签: r heatmaply

我正在使用软件包heatmaply来可视化单个细胞表达数据。
我想使用自定义颜色并将“黄色”分配给> 2的表达式级别,将“洋红色”分配给<-2的表达式级别。 [-2,2]之间的范围应由“洋红色”-“黑色”-“黄色”的平滑梯度表示。

在这里,我的示例文件是一个10行x 5列的矩阵: Matrix

my_palette<-PurpleAndYellow(50) 
heatmaply(test,col = my_palette, dendrogram = "none")

它会生成正确的“ PurpleAndYellow”彩色热图,但是会在整个范围内缩放[-5,+5]

Heatmap1

如果我指定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)))

Heatmap2

您能告诉我如何使用heatmaply更改颜色并调整热图的亮度吗?

1 个答案:

答案 0 :(得分:0)

我认为您在增加限制方面步入正轨,但无需添加scale_fill_gradient_fun。除非您在此功能中也指定了调色板,否则它将自动覆盖您的调色板。无论如何,我认为这应该可行:

library(heatmaply)

my_palette<-PurpleAndYellow(50) 
heatmaply(test,col = my_palette, dendrogram = "none", limits = c(-2, 2))

就亮度而言,我不确定是否可以按照您的想法解决。在我看来,可见性的问题并不在于亮度,而在于您逐渐淡入或淡出黑色。我认为一个不错的选择可能是更改渐变,以使中心不会淡化为黑色-可能是较浅的灰色或类似的东西。