1

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

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

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

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

热图1

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

热图2

你能告诉我如何使用 heatmaply 改变颜色和调整热图的亮度吗?

4

1 回答 1

0

我认为您在添加限制后走在正确的轨道上,但无需添加scale_fill_gradient_fun. 这会自动覆盖您的调色板,除非您也在此函数中指定它。无论如何,我相信这应该有效:

library(heatmaply)

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

就亮度而言,我不确定是否可以按照您的想法解决。在我看来,能见度的问题不是由于亮度,而是因为你正在淡入淡出黑色。我认为一个不错的选择可能是改变你的渐变,这样中心就不会变成黑色——也许是浅灰色或类似的东西。

于 2020-05-23T18:22:23.553 回答