Corrplot: не печатать все текстовые метки

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

M <- cor(mtcars)
corrplot(M, diag = FALSE, method = "ellipse", type = "upper", tl.col = "black")

введите описание изображения здесь

Есть ли способ не печатать каждую текстовую метку на графике? Я хочу напечатать любую другую этикетку.

В качестве альтернативы, чтобы прочитать график, я хочу вместо этого использовать группы переменных в качестве уникальной текстовой метки. В результате кластеризации я обнаружил, что в данных может быть 3 группы.

#Reorder data collected in mtcars in this way: 
mtcars2 <- mtcars[ , c("carb", "wt", "hp", "cyl", "disp", 
            "qsec", "vs",
            "mpg", "drat", "am", "gear")
            ]
#Let's say I have the following groups corresponding to these variables
groups <- c(rep("Engine", 5), rep("Speed", 2), rep("Fuel", 4) )
R <- cor(mtcars2)
colnames(R) <- groups 

Я хотел бы однозначно напечатать эти названия групп в верхней части коррограммы. Теперь они печатаются для каждой переменной. Итак, могу ли я просто один раз напечатать название группы («Двигатель», «Скорость», «Топливо») для набора переменных?

corrplot(R, diag = FALSE, method = "ellipse", type = "upper", tl.col = "black")

На самом деле график корреляции, с которым я работаю больше, выглядит так.

set.seed(234)
A <- matrix(rnorm(1e+05), ncol = 100, dimnames = list(NULL, paste0("VeryLongName", 1:100)))
corrplot(cor(A), diag = FALSE, method = "ellipse", type = "upper")

Вариант tl.cex = 0.5 работает, но я предпочитаю, чтобы меток было больше и меньше.

В заключение, я хочу настроить corrplot() так, чтобы (1) печатать каждую вторую этикетку или (2) печатать группы однозначно по осям.

Эта работа была выполнена с использованием corrplot версии 0.84.


person phargart    schedule 26.09.2019    source источник


Ответы (1)


Может быть, включить пустые строки в groups

require(corrplot)
#Reorder data collected in mtcars in this way: 
mtcars2 <- mtcars[ , c("carb", "wt", "hp", "cyl", "disp", 
                       "qsec", "vs",
                       "mpg", "drat", "am", "gear")
                   ]
#Let's say I have the following groups corresponding to these variables
groups <- c("","Engine",rep("", 3), "Speed","", "Fuel",rep("", 3) )
rows <- c("Engine","",rep("", 3), "Speed","", "Fuel",rep("", 3) )

R <- cor(mtcars2)
colnames(R) <- groups 
rownames(R) <- rows
corrplot(R, diag = FALSE, method = "ellipse", type = "upper", tl.col = "black")

введите описание изображения здесь

person Wietze314    schedule 26.09.2019