Home > Enterprise >  R: How do you order error plots by variance?
R: How do you order error plots by variance?

Time:04-23

Is it possible to order error plots in R by their variance? So that they are from greatest variance to least?

Code:

library(ggplot2)

df <- ToothGrowth
df$dose <- as.factor(df$dose)
head(df, 3)

library(dplyr)
df.summary <- df %>%
  group_by(dose) %>%
  summarise(
    sd = sd(len, na.rm = TRUE),
    len = mean(len)
  )
df.summary


f <- ggplot(
  df.summary, 
  aes(x = dose, y = len, ymin = len-sd, ymax = len sd)
  )

f   geom_pointrange()

# Standard error bars
f   geom_errorbar(width = 0.2)  
  geom_point(size = 1.5)

OUTPUT

Any help at all would be greatly appreciated!

CodePudding user response:

Continue the pipe coercing the sd to ordered factor with the order given by the numeric sd. Then plot as in the question. All that needs to change is the mutate below.

df.summary <- df %>%
  group_by(dose) %>%
  summarise(
    sd = sd(len, na.rm = TRUE),
    len = mean(len)
  ) %>%
  mutate(i = order(sd, decreasing = TRUE),
         dose = ordered(dose, levels = dose[i])) %>%
  select(-i)
  • Related