ggplot2 Гистограмма с 2 группами против 3 переменных - с использованием баров ошибок - PullRequest
0 голосов
/ 02 октября 2018
DATA1Chamber
A tibble: 4 x 4
  genotype NovelMouseChamber CChamber NovelObjectChamber
  <chr>    <chr>                <chr>       <chr>                
1 EXP      457.457              54.4878     87.0871              
2 ctrl     129.596              146.413     323.023              
3 ctrl     306.306              73.7404     218.952              
4 ctrl     369.603              117.518     111.912 

Мне нужна гистограмма - с ошибками
Ось X имеет две группы = среднее (EXP) против среднего (ctrl)
ось y, построенная по отношению к 3 столбцам (NovelMouseChamber, * 1005)*, NovelObjectChamber)

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

dfm<- melt(Data1Chamber[, c("genotype", "NovelMouseChamberCum","CChamberCum", "NovelObjectChamberCum")], id.vars= 1)

, построенный с использованием:

ggplot(dfm,aes(x = genotype, y = value)) + 
  geom_bar(aes(fill = variable),stat = "identity",position = "dodge")

enter image description here

Ожидаемый график У меня нет всех собранных данных, поэтому я бы добавил еще много точек данных EXP и CTRL, а затем попытался бы получить полосы ошибок.Я просто пытался понять, смогу ли я сгенерировать график с данными, которые у меня были до сих пор.

1 Ответ

0 голосов
/ 02 октября 2018

Это должно помочь вам начать работу и обеспечить хорошую основу.

df = read.table(text = "genotype NovelMouseChamber CChamber NovelObjectChamber
1 EXP      457.457              54.4878     87.0871              
2 ctrl     129.596              146.413     323.023              
3 ctrl     306.306              73.7404     218.952              
4 ctrl     369.603              117.518     111.912", header = T)

dfm = reshape2::melt(df, id.vars = "genotype")

ggplot(dfm, aes(x = genotype, fill = variable, color = variable, y = value)) +
  stat_summary(geom = "bar", fun.y = mean, position = "dodge") +
  stat_summary(geom = "errorbar",
               fun.ymin = function(y) mean(y) - 1.96 * sd(y),
               fun.y = function(y) mean(y),
               fun.ymax = function(y) mean(y) + 1.96 * sd(y),
               position = position_dodge(width = 0.9),
               width = 0.3, color = "black")

enter image description here

Вы можете видеть, что я полагался на ggplotсделать манипулирование данными - вычисление средних и интервалов для панелей ошибок.Как правило, я рекомендую против , чтобы я предпочел использовать dplyr или data.table для выполнения этих вычислений, тогда код построения графика был бы более простым.Если вы создаете фрейм данных со столбцами y, ymin и ymax (в дополнение к столбцам genotype, variable и value - какими бы они ни были), вы можете просто использовать geom_barи geom_errorbar без всех stat_summary сложностей.

Как уже упоминалось в комментариях, вам также необходимо убедиться, что все ваши данные имеют соответствующий тип - числовые данные должны быть numeric, а не character, прежде чем делать какие-либо графики или расчеты.

...