我rgl为我的数据的每个因子级别生成了包含3D图,并将它们保存为png.我的数据有30个不同的级别,导致30个不同的图像文件.现在我想将这些png组合成一个单独的图.
我会像这样显示它们:

以下示例说明了我想要做的事情:
library(rgl)
library(png)
library(gridExtra)
library(ggplot2)
## creates a png in the working directory which can be used as an example
example(surface3d)
rgl.snapshot("example.png")
rgl.close()
## imports the png files; in the example, the same file is imported multiple times.
if(exists("png.df")) rm(png.df)
for (i in 1:9) {
png.i <- readPNG("example.png")
g <- rasterGrob(png.i, interpolate=TRUE)
g <- g$raster
g <- as.vector(g)
g <- matrix(g, nrow = 256, ncol = 256, dimnames = list(1:256, 1:256))
df.i <- data.frame(i = rep(row.names(g), …Run Code Online (Sandbox Code Playgroud) 我想用ggplot绘制这些数据:
library(ggplot2)
set.seed(0)
df <- data.frame(
var1 = rep(c("group1", "group2"), each = 3),
var2 = rep(letters[1:3], 2),
value = runif(6, 0, 10)
)
Run Code Online (Sandbox Code Playgroud)
情节应该像这样:
pl <- ggplot(df, aes(var2, value))
pl <- pl + geom_col()
pl <- pl + facet_wrap(~ var1, scales = "free")
pl
Run Code Online (Sandbox Code Playgroud)
var2x轴上的顺序应该通过增加的顺序来确定value.我可以做到这一点:
df$temp_var <- paste(df$var1, df$var2)
pl <- ggplot(df, aes(reorder(temp_var, value), value))
pl <- pl + geom_col()
pl <- pl + facet_wrap(~ var1, scales = "free")
pl
Run Code Online (Sandbox Code Playgroud)
但是,x轴标签应该是a,b和c.通常情况下,我会转换 …