Создание линейного графика (среднего), упорядоченного по фасетам, со стандартной ошибкой баров средней ошибки: ggplot

Привет, сообщество переполнения стека,

У меня есть набор данных:

conc branch  length stage factor
1    1000      3   573.5   e14   NRG4
2    1000      7   425.5   e14   NRG4
3608 1000     44  5032.0   P10   NRG4
3609 1000      0     0.0   P10   NRG4

к вашему сведению

> str(dframe1)
'data.frame':   3940 obs. of  5 variables:
$ conc  : Factor w/ 6 levels "0","1","10","100",..: 6 6 6 6 6 6 6 6 6 6 ...
$ branch: int  3 7 5 0 1 0 0 4 1 1 ...
$ length: num  574 426 204 0 481 ...
$ stage : Factor w/ 8 levels "e14","e16","e18",..: 1 1 1 1 1 1 1 1 1 1 ...
$ factor: Factor w/ 2 levels "","NRG4": 2 2 2 2 2 2 2 2 2 2 ...

Я хотел бы создать фасетные линейные графики, отображающие среднее значение +/- стандартная ошибка среднего

Я пытался экспериментировать и создавать ggplot от других (здесь и в Интернете).

Я успешно использовал скрипты, которые будут делать гистограммы следующим образом:

errbar.ggplot.facets <- ggplot(dframe1, aes(x = conc, y = length))

### function to calculate the standard error of the mean
se <- function(x) sd(x)/sqrt(length(x))

### function to be applied to each panel/facet
my.fun <- function(x) {
  data.frame(ymin = mean(x) - se(x), 
         ymax = mean(x) + se(x), 
         y = mean(x))}

g.err.f <- errbar.ggplot.facets + 
  stat_summary(fun.y = mean, geom = "bar", 
           fill = clrs.hcl(48)) + 
  stat_summary(fun.data = my.fun, geom = "linerange") + 
  facet_wrap(~ stage) +
  theme_bw()

print(g.err.f)

Источник: http://teachpress.environmentalinformatics-marburg.de/2013/07/creating-publication-quality-graphs-in-r-7/

На самом деле, я создал граненые линейные графики с помощью этого скрипта:

 `ggplot(data=dframe1, aes(x=conc, y = length, group = stage)) + 
  geom_line() + facet_wrap(~stage)`

изображение: postimg.org/image/ebpdc0sb7

Однако я использовал преобразованный набор данных только средних значений, SEM в другом столбце, но я не знаю, как их добавить.

Учитывая сложность (для меня) приведенных выше сценариев гистограмм + строк ошибок, я еще не смог интегрировать/синтезировать их во что-то, что мне нужно.

В данном случае цвет не важен.

P.S. Прошу прощения за длинную ветку (и, возможно, излишество в некоторых деталях). Это мой первый онлайн-вопрос R, поэтому я не уверен в правильности этикета. Всем заранее спасибо за помощь!

Дариан


person Darian Okakpu    schedule 24.02.2016    source источник
comment
Вот изображение того, чего я достиг: postimg.org/image/ebpdc0sb7   -  person Darian Okakpu    schedule 24.02.2016


Ответы (1)


Если в вашем кадре данных есть столбец для среднего значения и se, вы можете сделать что-то вроде этого:

library("dplyr")
library("ggplot2")

# Create a dummydataframe with columns mean and se
df <- mtcars %>%
  group_by(gear, cyl) %>%
  summarise(mean_mpg = mean(mpg), se_mpg = se(mpg))

ggplot(df, aes(x = gear, y = mean_mpg)) +
  geom_bar(stat = "identity") +
  geom_errorbar(aes(ymin = mean_mpg - se_mpg, ymax = mean_mpg + se_mpg)) +
  facet_wrap(~cyl)
person alexander keth    schedule 24.02.2016
comment
Красиво, спасибо, но R дал гистограммы. Как я могу сделать линейные графики? - person Darian Okakpu; 24.02.2016
comment
Просто измените geom_bar на geom_line. - person alexander keth; 25.02.2016