使用ggplot单个而不是多个boxplots

时间:2017-07-26 14:50:34

标签: r ggplot2 boxplot

我想根据两个因素(Tiefe)和(Ort)制作变量(Theta..vol ..)的箱线图。

 > str(data) 
  'data.frame': 30 obs. of  6 variables:  
 $ Nummer      : int   > 1 2 3 4 5 6 7 8 9 10 ... 
 $ Name        : int  11 12 13 14 15 16 17 18 19 20 ...
 $ Ort         : Factor w/ 2 levels "NNW","S": 2 2 2 2 2 2 2 2 2 2 ...
 $ Tiefe       : int  20 20 20 20 20 50 50 50 50 50 ... 
 $ Gerät       : int  2 2 2 2 2 2 2 2 2 2 ...  
 $ Theta..vol..: num  15 16.4 14.9 16.6 10.6 22.1 17.6 10 18 20.3 ...

我的代码是:

ggplot(data, aes(x = Tiefe, y = Theta..vol.., fill=Ort))+geom_boxplot()

由于变量(Tiefe)有3个等级而变量(Ort)有2个等级,我希望看到三个成对的箱形图(每一对(Tiefe))。 但我只看到一对(一个“Ort”级别的箱形图和“Ort”第二级的另一个箱形图) 我应该改变什么来为每个“Tiefe”获得三对?谢谢

1 个答案:

答案 0 :(得分:0)

在您的代码中,Tiefe被读取为整数而不是因子。

使用dplyrggplot2进行轻松修复:

首先我制作了一些虚拟数据:

library(dplyr)

data <- tibble(
      Ort = ifelse(runif(30) > 0.5, "NNW", "S"),
      Tiefe = rep(c(20, 50, 75), times = 10),
      Theta..vol.. = rnorm(30,15))

接下来,我们会在导入Tiefe

之前修改ggplot
data %>% 
  mutate(Tiefe = factor(Tiefe)) %>%
  ggplot(aes(x = Tiefe, y = Theta..vol.., fill = Ort)) + 
  geom_boxplot()

ggplot