If you want to make a correlation graph, use the corrplot library, as it has great flexibility to create diagrams similar to shapes for correlation.
library(corrplot) #create data with some correlation structure jnk=runif(1000) jnk=(jnk*100)+c(1:500, 500:1) jnk=matrix(jnk,nrow=100,ncol=10) jnk=as.data.frame(jnk) names(jnk)=c("var1", "var2","var3","var4","var5","var6","var7","var8","var9","var10") #create correlation matrix cor_jnk=cor(jnk, use="complete.obs") #plot cor matrix corrplot(cor_jnk, order="AOE", method="circle", tl.pos="lt", type="upper", tl.col="black", tl.cex=0.6, tl.srt=45, addCoef.col="black", addCoefasPercent = TRUE, p.mat = 1-abs(cor_jnk), sig.level=0.50, insig = "blank")
The above code only adds color to correlations with correlations> abs (0.5), but you can easily change this. Finally, there are many ways in which you can customize the appearance of the plot (changing the color gradient, displaying correlations, displaying the full version with only a half matrix, etc.). The order argument is especially useful because it allows you to order your variables in a PCA-based correlation matrix, so they are ordered based on similarities in the correlation.
For example, for squares (similar to your original plot) - just change the method to squares: 
EDIT: @ Carson. You can still use this method for reasonable large correlation matrices: for example, 100 variable matrices below. In addition, I do not see what the use of a graphical representation of the correlation matrix with so many variables is without any subset, because it will be very difficult to interpret. 