Как включить несколько цветов в текстовые метки корреляционной матрицы в R corplot?

Итак, я пытаюсь создать матрицу корреляции, используя пакет R corrplot. Я хотел бы использовать два цвета в текстовых метках, чтобы показать группы переменных.

В качестве простого примера:

dat <- data.frame("Blue" = c(1:20), "Red" = sample(1:20, 20, replace = T))

dat <- as.matrix(dat)

C = rcorr(dat, type = "pearson")

corrplot(corr = C$r, order = "original", title = "Pearson Correlations", method = "color", type = "full", p.mat=C$P, insig = "blank", tl.col = "blue", addgrid.col = "darkgrey", bg = "white", cl.pos = "b", tl.pos = "tl", col = colorRampPalette(c("darkred","white","midnightblue"))(100), mar = c(4, 0, 4, 0))

Я знаю, что tl.col является аргументом для цвета заголовка, но я хотел бы изменить две переменные, чтобы они имели разные цвета, и не могу найти эту опцию в документах. Это возможно?


person Frank Robertson    schedule 20.02.2018    source источник
comment
документы говорят, что tl.col это The color of text label, что, кажется, то, что вы спрашиваете, и может принимать вектор цветов   -  person rawr    schedule 21.02.2018


Ответы (1)


Вы можете просто использовать функцию объединения c() для ввода разных цветовых меток для разных столбцов.

library(corrplot)
library(Hmisc)

# defining dataframe
dat <-
  data.frame("Blue" = c(1:20),
             "Red" = sample(1:20, 20, replace = T))

# getting correlations
C = Hmisc::rcorr(as.matrix(dat), type = "pearson")

# preparing the plot
corrplot::corrplot(
  corr = C$r,
  order = "original",
  title = "Pearson Correlations",
  method = "color",
  type = "full",
  p.mat = C$P,
  insig = "blank",
  tl.col = c("blue", "red"), # different colors
  addgrid.col = "darkgrey",
  bg = "white",
  cl.pos = "b",
  tl.pos = "tl",
  col = colorRampPalette(c("darkred", "white", "midnightblue"))(100),
  mar = c(4, 0, 4, 0)
)

Создано 20 февраля 2018 г. с помощью пакета reprex (v0.2.0).

person Indrajeet Patil    schedule 20.02.2018
comment
@Frank Robertson Если это решит вашу проблему, примите ответ (stackoverflow.com/help/someone-answers), так что тему можно закрыть! - person Indrajeet Patil; 21.02.2018