如何在ggcorrplot中添加坐标轴标签?

3
我可以帮您翻译以下内容,涉及到IT技术。"Original Answer"可以翻译成"最初的回答"。在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))

我的图形看起来像这样:

输入图像描述

我尝试在我的 ggcorrplot 代码末尾添加 + scale_x_discreet(name = "Attempt 1"),但它没有起作用。

最初的回答: 你可以尝试将 + labs(x = "Attempt 1") 添加到 ggcorrplot 代码中。

要找出问题出在哪里,你可以在R的控制台中输入ggcorrplot::ggcorrplot来检查ggcorrplot代码(不要加括号,否则会调用函数)。答案在函数的最后一行,你可以使用ggcorrplot:::.no_panel来检查。 - undefined
2个回答

2

可以使用{ggcorrplot2}来实现。

虽然ggcorrplot的开发者可能有不包括轴标签的好理由(例如,对于成对矩阵,它们可能不是必要的),但在某些情况下,指定轴标签和轴刻度可能是有意义的。例如,在比较两组不同变量之间的相关性时,排除任何在组内进行的比较。


ggcorrplot2::ggcorrplot()通过内部使用以下内容来抑制轴标签:

theme(axis.title = element_blank())

如果您想覆盖此设置并提供轴标签,您必须同时指定要添加的标签并重新指定轴标题行为,例如

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))

修改坐标轴标签的图表


1

你需要覆盖默认行为的 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')
  )

请注意,ggcorrplot的开发者可能有充分的理由不显示坐标轴标签,所以您最好也遵循这一点。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接