I am using the R programming language. I am trying to arrange "plot1, plot2, plot3, plot4" on the same page:
library(kohonen) #fitting SOMs library(ggplot2) #plots library(GGally) #plots library(RColorBrewer) #colors, using predefined palettes iris_complete <-iris[complete.cases(iris),] #only complete cases... the iris dataset floats around in the sky with diamonds. iris_unique <- unique(iris_complete) # Remove duplicates #scale data iris.sc = scale(iris_unique[, 1:4]) #build grid iris.grid = somgrid(xdim = 10, ydim=10, topo="hexagonal", toroidal = TRUE) # build model set.seed(33) #for reproducability iris.som <- som(iris.sc, grid=iris.grid, rlen=700, alpha=c(0.05,0.01), keep.data = TRUE) ###plots var <- 1 #define the variable to plot plot1 = plot(iris.som, type = "property", property = getCodes(iris.som)[,var], main=colnames(getCodes(iris.som))[var], palette.name=terrain.colors) var <- 2 #define the variable to plot plot2 = plot(iris.som, type = "property", property = getCodes(iris.som)[,var], main=colnames(getCodes(iris.som))[var], palette.name=terrain.colors) var <- 3 #define the variable to plot plot3 - plot(iris.som, type = "property", property = getCodes(iris.som)[,var], main=colnames(getCodes(iris.som))[var], palette.name=terrain.colors) var <- 4 #define the variable to plot plot4 = plot(iris.som, type = "property", property = getCodes(iris.som)[,var], main=colnames(getCodes(iris.som))[var], palette.name=terrain.colors) g1 <- grid.arrange(plot1, nrow = 1) g2 <- grid.arrange(plot2, nrow = 1) g3 <- grid.arrange(plot3, nrow = 1) g4 <- grid.arrange(plot4, nrow = 1) grid.arrange(g1, g2, g3, g4, ncol = 1) However, when I use the "grid.arrange()" function, I get an error : Error in gList - only 'grobs' allowed in gList"
Right now, I am considering running each of the "plot" statements individually, and manually joining them all using MS Paint. Is there a better way to do this?
Thanks
