Название в R corrplot слишком не по центру и слишком высоко

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

Образец кадра данных:

"VADeaths" <-
  structure(c(11.7, 18.1, 26.9, 41, 66, 8.7, 11.7, 20.3, 30.9, 54.3, 15.4, 
  24.3, 37, 54.6, 71.1, 8.4, 13.6, 19.3, 35.1, 50), .Dim = c(5, 4),
  .Dimnames = list(c("50-54", "55-59", "60-64", "65-69", "70-74"),
  c("Rural Male", "Rural Female", "Urban Male", "Urban Female")))

Рассчитайте корреляцию и визуализируйте

library(corrplot)
cors = cor(VADeaths)

corrplot(cors,tl.col="black",title="Example Plot",mar=c(0,0,5,0),tl.offset = 1)

Расширив поле до 5 над графиком, я могу, по крайней мере, заставить заголовок отображаться на графике, но не могу понять, как приблизить заголовок к графику и центрировать его по графику, а не также пространство, занимаемое метками. .

Вышеупомянутое выглядит так:

Я хочу что-то подобное (не обращайте внимания на шрифты)

Мои настоящие графики имеют гораздо меньшие метки, поэтому между метками и заголовком есть зазор около 3-4 см. Я не обнаружил, что увеличение значения в mar решило проблему.


person Esme_    schedule 25.08.2016    source источник


Ответы (2)


Вместо этого вы можете использовать mtext, чтобы добавить заголовок.

corrplot(cors,tl.col="black", mar=c(0,0,5,0), tl.offset = 1)
mtext("Example Plot", at=2.5, line=-0.5, cex=2)

at контролирует горизонтальное положение. line управляет высотой. cex за размер. ?mtext чтобы увидеть больше вариантов

person dww    schedule 25.08.2016
comment
Вам нужно side = 3? - person r2evans; 25.08.2016
comment
@r2evans, сторона = 3 по умолчанию - person dww; 25.08.2016
comment
Ха, хороший звонок, извини. (Я всегда предпочитал быть явным с этим, поэтому я никогда не проверял.) - person r2evans; 25.08.2016
comment
Я попытался запустить эту строку после моего кода corrplot, но столкнулся с ошибкой: Ошибка в mtext (Таблица корреляции числовых переменных, at = 2,5, строка = -0,5,: plot.new еще не был вызван). Любые идеи, как я могу это решить? Спасибо - person juliah0494; 27.08.2020

Вы можете нарисовать график корреляции, используя ggplot2.

Сначала преобразуйте данные корреляции в фрейм данных.

library(reshape2)
cors <- cor(VADeaths)
cor_data <- reshape2::melt(
  cors, 
  varnames = paste0("demographic", 1:2), 
  value.name = "correlation"
)

Затем нарисуйте сюжет.

library(ggplot2)
ggplot(cor_data, aes(demographic1, demographic2, fill = correlation)) + 
  geom_tile() + 
  ggtitle("Correlation across demographics for VA deaths")

график корреляции демографических данных в наборе данных о смертях в штате Вирджиния, созданный с помощью ggplot2

person Richie Cotton    schedule 25.08.2016