R corrplot中的标题也没有居中和太高

时间:2016-08-25 03:26:36

标签: r r-corrplot

我正在使用corrplot来显示相关性,但标题在情节之上相当高,我想把它拉得更近。我该怎么做?

示例数据框:

person: Robert | phone: 619-487-5555
person: Robert | phone: 619-487-5556
person: Robert | phone: 619-487-5557
person: Carlos | phone: 123-659-8751
person: mike | phone: 555-555-5555
person: mike | phone: 6666-555-5555

计算相关性并可视化

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

通过将边距扩展到图表上方的5,我至少可以让标题出现在情节中,但是无法弄清楚如何使标题更接近情节并且以情节为中心而不是占据的空间由标签。

以上看起来像这样:

我想要更像这样的东西(忽略字体)

我的实际情节标签要小得多,因此标签与标题之间的距离约为3-4厘米。我没有发现增加mar的价值解决了这个问题。

2 个答案:

答案 0 :(得分:6)

您可以使用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以查看更多选项

答案 1 :(得分:1)

您可以使用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")

a correlation plot of demographics in the VA deaths dataset, created using ggplot2