R 一个图中4组的多个方框图

R 一个图中4组的多个方框图,r,boxplot,R,Boxplot,我想为一个数据集绘制方框图,该数据集包括四个类别,例如:Good、Bad、VeryGood和VeryBad以及四个正态分布。 我的问题是如何使一个图中的四个不同正态分布的图相互独立,我已经尝试过(见下文),但看起来很混乱。 我用了一个例子,我在这里找到了它,并对它做了一些修改。 我添加了另一个编辑过的图,我希望方框图的每个图看起来都像这个,更清晰,四个类别(蓝色、黄色、红色和绿色)都清晰。 par(mfrow=c(2,2)) df如果您不打算使用Base R图形,并且查看您添加到问题中的新绘图

我想为一个数据集绘制方框图,该数据集包括四个类别,例如:Good、Bad、VeryGood和VeryBad以及四个正态分布。 我的问题是如何使一个图中的四个不同正态分布的图相互独立,我已经尝试过(见下文),但看起来很混乱。 我用了一个例子,我在这里找到了它,并对它做了一些修改。 我添加了另一个编辑过的图,我希望方框图的每个图看起来都像这个,更清晰,四个类别(蓝色、黄色、红色和绿色)都清晰。

par(mfrow=c(2,2))

df如果您不打算使用Base R图形,并且查看您添加到问题中的新绘图,我相信这就是您想要的:

library(dplyr)
library(tidyr)
library(ggplot2)

df <- data.frame(id = c(rep("Good",200), rep("Bad", 200),
                        rep("VeryGood",200), rep("VeryBad",200)),
                 F1 = c(rnorm(200,10,2), rnorm(200,8,1), rnorm(200,5,2),rnorm(200,7,3)),
                 F2 = c(rnorm(200,7,1),  rnorm(200,6,1), rnorm(200,8,1),rnorm(200,12,4)),
                 F3 = c(rnorm(200,6,2),  rnorm(200,9,3),rnorm(200,12,3),rnorm(200,15,2)),
                 F4 = c(rnorm(200,12,3), rnorm(200,8,2),rnorm(200,8,5),rnorm(200,5,1)))

df2 <- tidyr::gather(df, key = "FVar", value = "value", F1:F4)

df2 %>% 
  ggplot(aes(id, value, fill = id)) + 
  geom_boxplot() + 
  facet_grid(. ~ FVar) + 
  theme(axis.text.x = element_text(angle = 90, hjust = 0.5, vjust = 0.5))
库(dplyr)
图书馆(tidyr)
图书馆(GG2)

看起来你的四个情节都是一样的。如果你去掉
par(mfrow=c(2,2))
,它看起来会更好吗?你是对的@G5W,这里举个例子。我会用它来处理我的真实数据,这些数据得到了类似的想法。你能发布一个期望的输出,因为它不清楚问题是什么吗?这可能需要你使用一个图像编辑器,为我们勾勒出一个视觉效果。同意这是不清楚什么是需要的。不同的轴标签?标题?我想你是说虽然这四个是相同的,但当你使用真实数据时,会有四个不同的图,所以你需要使用
par(mfrow=c(2,2))
。对吗?我试过你的代码,但给了我一个错误。valid.charjust(just)中出错:无效水平调整我添加了所有代码,包括示例数据,并在新的R会话中重新运行它,没有任何错误。@R.Saeiti-仍然有问题吗?
library(dplyr)
library(tidyr)
library(ggplot2)

df <- data.frame(id = c(rep("Good",200), rep("Bad", 200),
                        rep("VeryGood",200), rep("VeryBad",200)),
                 F1 = c(rnorm(200,10,2), rnorm(200,8,1), rnorm(200,5,2),rnorm(200,7,3)),
                 F2 = c(rnorm(200,7,1),  rnorm(200,6,1), rnorm(200,8,1),rnorm(200,12,4)),
                 F3 = c(rnorm(200,6,2),  rnorm(200,9,3),rnorm(200,12,3),rnorm(200,15,2)),
                 F4 = c(rnorm(200,12,3), rnorm(200,8,2),rnorm(200,8,5),rnorm(200,5,1)))

df2 <- tidyr::gather(df, key = "FVar", value = "value", F1:F4)

df2 %>% 
  ggplot(aes(id, value, fill = id)) + 
  geom_boxplot() + 
  facet_grid(. ~ FVar) + 
  theme(axis.text.x = element_text(angle = 90, hjust = 0.5, vjust = 0.5))