2016-12-21 10 views
4

Ich möchte die Größe der Markierungen in ggcorrplot reduzieren und den Abstand zwischen Text und Plot reduzieren.Anpassen 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) 

Antwort

6

Sie können den Abstand zwischen der Achse Text und die Handlung mit theme Elemente anzupassen. Mit in einem Standard ggplot können Sie die height und width der Kacheln anpassen. ggcorrplot scheint diese Anpassung nicht zu akzeptieren. Es mag einen Weg geben, den ich nicht kenne. Ich habe das Paket vorher noch nicht benutzt. Meine Hacky Abhilfe ist nur ein weißes Gitter überlagert Raum zwischen den Fliesen zu schaffen:

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) 

enter image description here

Diese Art von Handlung ist auch nicht so schwierig, wie eine regelmäßige ggplot zu machen, und dann werden Sie die Handlungselemente haben die volle Kontrolle über:

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

enter image description here

Ein weiterer Hack mit ggcorrplot ist verschleiern und neu zu zeichnen dann die Fliesen mit geom_tile, damit wir die height und width Argumente zugreifen:

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) 

enter image description here