0
votes

I would like to make a boxplot for a variable (Theta..vol..) depending on two factors (Tiefe) and (Ort).

 > 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 ...

My code is:

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

Since the variable(Tiefe) has 3 levels and the variable (Ort) has 2 levels I wish to see three paired boxplots (each pair for a single (Tiefe). But I see just a single pair (one boxplot for one level of "Ort" and another boxplot for the second level of the "Ort" What should I change to get three pairs for each "Tiefe"? Thank you

1
You need factor(Tiefe).aosmith

1 Answers

0
votes

In your code, Tiefe is being read as an integer not a factor.

Easy fix using dplyr with ggplot2:

First I made some dummy data:

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))

Next, we modify the Tiefe column before piping into the ggplot:

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

ggplot