首页 > 解决方案 > 在 R Studio 中可视化自定义调色板

问题描述

我有一个可能是 R Studio 世界中最简单的问题。我是 R 新手,在一个已发布的程序中笨手笨脚。该程序生成树状图热图,我为需要导出的每个树状图创建了一个自定义调色板。我的热图看起来不错,但是,我不知道如何(1)在我的热图上显示自定义颜色编码比例尺,或者(2)只查看并保存自定义调色板,就像您可以使用显示一样。 brewer.pal,这至少可以让我拥有调色板,以便我以后可以注释。

这是我所做的

pal <- colorRampPalette(c("#4d4d4d", "white", "#32c200")) #GreytoGreen
curr.pal = pal(15)

这给了我(当我说View(curr.pal)

"#4D4D4D" "#666666" "#7F7F7F" "#999999" "#B2B2B2" "#CCCCCC" "#E5E5E5" "#FFFFFF" "#E1F6DA" "#C4EDB6" "#A7E491" "#89DC6D" "#6CD348" "#4FCA24" "#32C200"

热图代码的相关部分是

myHeatmap <- function(x) {
   map.input = t(x)
   distance <- dist(map.input[, 18:24], method = "euclidean")
   cluster <- hclust(distance, method = "complete")
   heatmap(map.input, Rowv = as.dendrogram(cluster), Colv = NA, xlab = "Lag", col = curr.pal, scale = "none")

有什么建议可以在热图中为我的 15 个调色板显示图例,或者至少获得它的 png?谢谢,我为这个简单的问题道歉。

标签: rheatmapdendrogrampalette

解决方案


我试图在“gplots”包中实现你的代码(至少以类似的方式)。与热图相比,heatmap.2 函数有一些扩展。

附上代码(我使用“mtcars”数据框来玩):

library(gplots)
map.input <- scale(mtcars)
pal <- colorpanel(15, "#4d4d4d", "white", "#32c200") 
distance <- dist(map.input, method = "euclidean")
cluster <- hclust(distance, method = "complete")
heatmap.2(map.input, Rowv = as.dendrogram(cluster), Colv = TRUE, xlab = "Lag", col = pal, scale = "none", 
          trace = "none")

我也可以在绘图选项卡的 RStudio 中轻松导出 png 数据。

在此处输入图像描述


推荐阅读