如何更改高位图矩阵/热图的颜色?

时间:2019-10-10 21:27:21

标签: r highcharts r-highcharter

我想更改高温图表的颜色,但似乎找不到正确的方法。在下面的示例中,-1是红色,1是蓝色。我想改变颜色。例如。 -1是蓝色,1是红色。

mtcars2 <- mtcars[1:20, ]
x <- cor(mtcars2)
hchart(round(x,2),"heatmap")

当变量少于12个时,我可以使用RColorBrewer来更改颜色。例如:

hc_colorAxis(minColor = brewer.pal(12, "Set3")[1],
           maxColor = brewer.pal(12, "Set3")[12])

我还尝试了colorRampPalette()来启用更多颜色,但这没用。

1 个答案:

答案 0 :(得分:1)

我以highcharter showcase中的疫苗影响图为例

在此示例中,不是从矩阵中调用热图,而是从3列的data.frame中调用热图,因此我将相关矩阵转换为这种格式

library(tidyverse) # get the latest version for pivot_longer function   
mtcars3 <- cor(mtcars2) %>% 
              as.data.frame() %>% # convert to dataframe
              rownames_to_column(var="col1") %>% # add rownames as a new column
              pivot_longer(cols=names(mtcars),
                           names_to="col2",
                           values_to='cor') # convert to a 3 column dataframe

然后,您可以使用提供的代码应用颜色,并添加dataLabels参数以显示值

hchart(mtcars3,"heatmap",hcaes(x=col1,y=col2,value=round(cor,2)),
               dataLabels = list(enabled = TRUE)) %>%
   hc_colorAxis(minColor = brewer.pal(12, "Set3")[1],
           maxColor = brewer.pal(12, "Set3")[12])

resulting plot

相关问题