【发布时间】:2021-04-26 04:33:26
【问题描述】:
我正在使用 R 编程语言。我正在尝试在同一页面上安排“plot1、plot2、plot3、plot4”:
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)
但是,当我使用“grid.arrange()”函数时,我得到一个错误:Error in gList - only 'grobs' allowed in gList"
现在,我正在考虑单独运行每个“绘图”语句,并使用 MS Paint 手动将它们全部连接起来。有没有更好的方法来做到这一点?
谢谢
【问题讨论】:
标签: r ggplot2 data-visualization data-manipulation