我想减少ggcorrplot
中标记的大小,并减少文本和绘图之间的空间。
library(ggcorrplot)
data(mtcars)
corr <- round(cor(mtcars), 1)
ggcorrplot(corr,sig.level=0.05 ,lab_size = 4.5, p.mat = NULL, insig = c("pch", "blank"), pch = 1, pch.col = "black", pch.cex =1,
tl.cex = 14)
最佳答案
您可以使用theme
元素调整轴文本和绘图之间的距离。使用标准geom_tile
中的ggplot
,您可以调整磁贴的height
和width
。 ggcorrplot
似乎不接受该调整。可能是我不知道的一种方法;我以前没用过这个包。我的变通办法是仅覆盖白色网格以在图块之间创建空间:
ggcorrplot(corr, sig.level=0.05, lab_size = 4.5, p.mat = NULL,
insig = c("pch", "blank"), pch = 1, pch.col = "black", pch.cex =1,
tl.cex = 14) +
theme(axis.text.x = element_text(margin=margin(-2,0,0,0)), # Order: top, right, bottom, left
axis.text.y = element_text(margin=margin(0,-2,0,0))) +
geom_vline(xintercept=1:ncol(mtcars)-0.5, colour="white", size=2) +
geom_hline(yintercept=1:ncol(mtcars)-0.5, colour="white", size=2)
与常规ggplot一样,绘制这种类型的图也不难,然后您将完全控制图元素:
library(reshape2)
ggplot(melt(corr), aes(Var1, Var2, fill=value)) +
geom_tile(height=0.8, width=0.8) +
scale_fill_gradient2(low="blue", mid="white", high="red") +
theme_minimal() +
coord_equal() +
labs(x="",y="",fill="Corr") +
theme(axis.text.x=element_text(size=13, angle=45, vjust=1, hjust=1,
margin=margin(-3,0,0,0)),
axis.text.y=element_text(size=13, margin=margin(0,-3,0,0)),
panel.grid.major=element_blank())
另一个使用
ggcorrplot
的技巧是掩盖然后使用geom_tile
重绘图块,以便我们可以访问height
和width
参数:ggcorrplot(corr, sig.level=0.05, lab_size = 4.5, p.mat = NULL,
insig = c("pch", "blank"), pch = 1, pch.col = "black", pch.cex =1,
tl.cex = 14) +
theme(axis.text.x = element_text(margin=margin(-2,0,0,0)),
axis.text.y = element_text(margin=margin(0,-2,0,0)),
panel.grid.minor = element_line(size=10)) +
geom_tile(fill="white") +
geom_tile(height=0.8, width=0.8)
关于r - 自定义ggcorrplot,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41269593/