R 如何在多个条件下显示数据

R 如何在多个条件下显示数据,r,plot,ggplot2,data-visualization,lattice,R,Plot,Ggplot2,Data Visualization,Lattice,我从一个实验中得到了一些数据,这个实验有7个变量,它们有两个级别来生成实验的条件。因此,有128(2^7)个不同的变量组合。我已经看到了一些在格子样式的面板图中显示的数据,看起来不错,但我只遇到过对两个不同变量这样做的数据。然而,我想知道是否有人有任何想法来表示有2个以上变量的数据(即列联表不起作用!) 我提供了一些示例数据来解释我的数据在不清楚时的样子: cond1 <- c(1,2) cond2 <- c(1,2) cond3 <- c(1,2) cond4 <- c

我从一个实验中得到了一些数据,这个实验有7个变量,它们有两个级别来生成实验的条件。因此,有128(2^7)个不同的变量组合。我已经看到了一些在格子样式的面板图中显示的数据,看起来不错,但我只遇到过对两个不同变量这样做的数据。然而,我想知道是否有人有任何想法来表示有2个以上变量的数据(即列联表不起作用!)

我提供了一些示例数据来解释我的数据在不清楚时的样子:

cond1 <- c(1,2)
cond2 <- c(1,2)
cond3 <- c(1,2)
cond4 <- c(1,2)
cond5 <- c(1,2)
cond6 <- c(1,2)
cond7 <- c(1,2)
conditions <- expand.grid(cond1,cond2,cond3,cond4,cond5,cond6,cond7)
conditions <- sapply(conditions, rep.int, times=10)
data <- runif (nrow(conditions))
df1 <- cbind(conditions, data)

cond1我可以直接做6个,如果你在
Var7
中为每个级别绘制相同的图,你就得到了7个维度。他们可能需要一些调整

df1 <- data.frame(df1)

library(ggplot2)
xy1 <- ggplot(droplevels(df1[df1$Var7 == 1,]), aes(x = as.factor(Var1),
                y = as.factor(Var2),
                color = as.factor(Var3), 
                shape = as.factor(Var4), 
                alpha = Var5,
                size = data)) +
  geom_jitter() +
  facet_wrap(~ as.factor(Var6))

xy2 <- ggplot(droplevels(df1[df1$Var7 == 2,]), aes(x = as.factor(Var1),
                                            y = as.factor(Var2),
                                            color = as.factor(Var3), 
                                            shape = as.factor(Var4), 
                                            alpha = Var5,
                                            size = data)) +
  geom_jitter() +
  facet_wrap(~ as.factor(Var6))

library(gridExtra)

grid.arrange(xy1, xy2, ncol = 1)

df1一个表示选项是将7个变量分成两组,并将结果表示为面网格:

df<-mutate(data.frame(df1), 
    V14=factor(paste0(Var1, Var2, Var3, Var4, "___")),
    V57=factor(paste0("___", Var5, Var6, Var7)))

ggplot(df) +
    geom_density(aes(x=data)) +
    facet_grid(V14~V57, switch="y") +
    scale_x_continuous(breaks=c(0,1)) +
    theme(
        axis.text.y=element_blank(),
        axis.ticks.y=element_blank()
    ) +
    xlab("data") + ylab("")
df