Добавить метки оси в ggcorrplot?
Как добавить метки оси в ggcorrplot
? У меня есть график взаимосвязи между двумя отдельными попытками заполнить анкету. Ось X представляет первую попытку, ось Y представляет вторую попытку. Я хочу обозначить оси, чтобы показать, что это то, что здесь представлено.
Мой код выглядит так:
corrQData <- round(cor(Attempt1, Attempt2), digits = 1)
ggcorrplot(corrQData,
outline.color = "white",
ggtheme = theme_bw(),
colors = c("#F8696B", "#FFEB84", "#63BE7B"),
legend.title = "Correlation",
lab = TRUE,
lab_size = 3,
tl.cex = 8,
tl.srt = 0,
title = "Correlation Between Questionnaire Attempts") +
theme(plot.title = element_text(hjust = 0.5, size=10), legend.title = element_text(size = 10))
Мой сюжет выглядит так:
Я пытался добавить + scale_x_discrete(name = "Attempt 1")
до конца моего кода ggcorrplot, но он ничего не сделал.
2 ответа
Этого можно добиться с помощью {ggcorplot2}.
Хотя у разработчиков ggcorplot могут быть веские причины не включать метки осей (например, они не должны быть необходимы для попарной матрицы), есть определенные случаи, когда может иметь смысл указать метки осей и отметки осей. Например. при сравнении корреляций между двумя разными наборами переменных и исключении любых сравнений, сделанных внутри наборов.
ggcorrplot2::ggcorrplot() подавляет метки осей с помощью внутреннего использования следующего
theme(axis.title = element_blank())
Если вы хотите переопределить это и предоставить метки осей, вы должны указать метки, которые нужно добавить, и повторно указать поведение axis.title, например
corrdata <- round(cor(mtcars), 1)
ggcorrplot2::ggcorrplot(corrdata) +
ggplot2::labs(x = 'Variable Set 1', y = 'Variable Set 2') +
ggplot2::theme(axis.title = element_text())
Можно также вручную указать метки деления оси, используя
corrdata <- round(cor(mtcars), 1)
ggcorrplot2::ggcorrplot(corrdata) +
ggplot2::labs(x = 'Variable Set 1', y = 'Variable Set 2') +
ggplot2::theme(axis.title = element_text())+
ggplot2::scale_x_continuous(breaks = 1:dim(corrdata)[1], labels = c("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k"),
expand = c(0, 0))+
ggplot2::scale_y_reverse(breaks = 1:dim(corrdata)[1], labels = c("l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v"),
expand = c(0, 0))
Вы должны переопределить поведение по умолчанию ggcorrplot
который не должен отображать метки оси. Сделайте это, добавив метки с ggplot2::labs()
(scale_x_discrete(name = ...)
тоже отлично работает) и смена сюжета
library(ggcorrplot)
corrdata <- round(cor(mtcars), 1)
ggcorrplot(corrdata) +
ggplot2::labs(x = 'X label', y = 'Y label') +
ggplot2::theme(
axis.title.x = element_text(angle = 0, color = 'grey20'),
axis.title.y = element_text(angle = 90, color = 'grey20')
)