Search code examples
rplotr-corrplotgrob

R return corrplot as object


corrplot plots a correlation matrix, but it does not return a graphical object (grob)

I would like to plot several correlation matrices on a single page. For normal plots, I would use grid.arrange from the gridExtra package. However since corrplot only prints and does not return an object, I can't see how to do this.

Is there a workaround or a better alternative to corrplot ?


Solution

  • There's the old standby par(mfrow=c(x, y)) where x is the number of rows you wish to plot and y the numberof columns. It then posts across and then down as you call the plots.

    par(mfrow = c(2, 2))
    corrplot(cor(mat1))
    corrplot(cor(mat2))
    corrplot(cor(mat3))
    corrplot(cor(mat4))
    
    par(mfrow = c(1, 1)) #To clear layout
    

    Will plot as

    Mat1 | Mat2
    -----------
    Mat3 | Mat4