Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在一个图中简化多个箱线图_R_Dataframe_Ggplot2_Boxplot - Fatal编程技术网

R 在一个图中简化多个箱线图

R 在一个图中简化多个箱线图,r,dataframe,ggplot2,boxplot,R,Dataframe,Ggplot2,Boxplot,我有一个包含17个问题(Q1-Q17)和一个分类变量(Region)的数据集 >df[,c(“区域”,问题)] #A tibble:963x18 地区Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12 Q13 Q14 Q15 1美国0 1 0 0 0 0 0 0 0 0 0 0 2美国8 8 8 6 8 0 5 10 7 0 10 8 3美国987108480588276 4美国4 2 5 4 3 2 0 1 0 0 3 2 0 5美国2 6 7 5 6 2 9 0 6

我有一个包含17个问题(Q1-Q17)和一个分类变量(Region)的数据集

>df[,c(“区域”,问题)]
#A tibble:963x18
地区Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12 Q13 Q14 Q15
1美国0 1 0 0 0 0 0 0 0 0 0 0
2美国8 8 8 6 8 0 5 10 7 0 10 8
3美国987108480588276
4美国4 2 5 4 3 2 0 1 0 0 3 2 0
5美国2 6 7 5 6 2 9 0 6 7 3 0 8 5
6美国6 6 8 1 2 0 4 0 4 0 6 10 0 1
7美国5 2 7 8 10 9 10 8 6 10 1 10 4 6 10
8 IE 6 6 5 6 6 3 6 7 6 7 4
9大洋洲8 8 6 10 5 10 5 1 10 4 0 1 10 9 10
10美国3 2 7 3 1 2 0 8 3 1 0 8 8
# ... 还有953行和2个变量:Q16、Q17
我想比较不同地区的答案,所以我首先熔化df,然后使用ggplot创建一个箱线图


df1您可能想使用
facet\u wrap()。这里我用一些简化的假数据来告诉你这个想法

library(dplyr)
library(tidyr)
library(ggplot2)
set.seed(12234)
df <- data.frame(Region = sample(LETTERS[1:10], 100, TRUE),
                 Q1 = rpois(100, 4),
                 Q2 = rpois(100, 3),
                 Q3 = round(runif(100, 1, 10)),
                 Q4 = round(runif(100, 1, 10)),
                 Q5 = round(10 * rnorm(100)))
df %>% pivot_longer(cols = -Region, names_to = "Question", values_to = "Value") %>%
  ggplot() +
  geom_boxplot(aes(x = Region, y = Value, fill = Region)) + 
  facet_wrap("Question")
库(dplyr)
图书馆(tidyr)
图书馆(GG2)
种子集(12234)
df%pivot\u更长(cols=-Region,name\u to=“Question”,values\u to=“Value”)%%>%
ggplot()+
geom_箱线图(aes(x=区域,y=值,填充=区域))+
面_包装(“问题”)

您可以使用
facet\u wrap()
nrow
ncol
参数来控制绘图的排列方式。这太棒了-谢谢。我不知道facet_wrap()和facet_grid()。我现在正在努力完成最后一件事——对图进行排序:有17个问题,我希望看到按顺序排列的图,即Q1、Q2、Q3。。。。。相反,它们是按字典顺序排列的,即Q1、Q10、Q11、…Q17、Q2、Q3、…Q9。我试着对我的数据框进行排序,并查看了各种文档和博客文章,但都没能解决这个问题。麻烦你给我指出解决方案好吗?解决了-我必须把Q1…Q17定义为一个因子。现在很有魅力。再次感谢!
library(dplyr)
library(tidyr)
library(ggplot2)
set.seed(12234)
df <- data.frame(Region = sample(LETTERS[1:10], 100, TRUE),
                 Q1 = rpois(100, 4),
                 Q2 = rpois(100, 3),
                 Q3 = round(runif(100, 1, 10)),
                 Q4 = round(runif(100, 1, 10)),
                 Q5 = round(10 * rnorm(100)))
df %>% pivot_longer(cols = -Region, names_to = "Question", values_to = "Value") %>%
  ggplot() +
  geom_boxplot(aes(x = Region, y = Value, fill = Region)) + 
  facet_wrap("Question")