Как изменить цвета матрицы старшей карты / карты тепла? - PullRequest
1 голос
/ 11 октября 2019

Я хотел бы изменить цвета карты высокой температуры, но не могу понять, как это правильно. В следующем примере -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 Ответ

1 голос
/ 11 октября 2019

Я взял пример графика «Воздействие вакцин» в витрине highcharter

В этом примере тепловая карта вызывается не из матрицы, а из data.frame с 3 столбцами, поэтому япреобразовал матрицу корреляции в этот формат

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

...