R - Сгруппированный столбчатый график с данными из нескольких столбцов - PullRequest
0 голосов
/ 26 февраля 2019

Я пытаюсь создать график в R, похожий на тот, что я создал в Excel:

excel.

Я пытаюсь сгруппировать свой гистограмму по годам и показателям, разделенным по моему лечению.Я попытался ввести свои данные в «длинной форме» в R и придумал следующее:

          Year          Indices     Means Treatment
1  2015          Shannon  3.062402   Drought
2  2015          Shannon  3.329283   Control
3  2015          Simpson  3.784725   Drought
4  2015          Simpson  4.346054   Control
5  2015 Species Richness  7.833333   Drought
6  2015 Species Richness  8.000000   Control
7  2016          Shannon  3.320377   Drought
8  2016          Shannon  3.496330   Control
9  2016          Simpson  3.877924   Drought
10 2016          Simpson  4.443414   Control
11 2016 Species Richness  9.666667   Drought
12 2016 Species Richness 10.333333   Control
13 2017          Shannon  4.421234   Drought
14 2017          Shannon  4.347877   Control
15 2017          Simpson  7.070072   Drought
16 2017          Simpson  6.340170   Control
17 2017 Species Richness 14.833333   Drought
18 2017 Species Richness 14.833333   Control
19 2018          Shannon  4.055784   Drought
20 2018          Shannon  3.939885   Control
21 2018          Simpson  5.796247   Drought
22 2018          Simpson  5.018261   Control
23 2018 Species Richness 13.500000   Drought
24 2018 Species Richness 14.000000   Control

Используя GGplot, я могу создать гистограмму с указанием года или индексов, сгруппированных не пов то же время.Ниже сгруппированы по годам.Вот как выглядит график:

Years Graph

ggplot(data,aes(x=Year,y=Means, fill=Treatment),stat="identity",fill=factor(Treatment))+
  geom_bar(stat="identity",position="dodge")

Вот график, сгруппированный по индексам

Indices.

ggplot(data,aes(x=Indices,y=Means, fill=Treatment),stat="identity",fill=factor(Treatment))+
  geom_bar(stat="identity",position="dodge")

Мой вопрос: как мне создать график, сгруппированный по годам и индексам с различными столбцами, представляющими процедуры, аналогичные моему графику Excel?Должен ли я повторно ввести свои данные другим способом?Я пытался использовать group_by, но мне не повезло.

Спасибо!

1 Ответ

0 голосов
/ 26 февраля 2019

Я склонен использовать facet_wrap() или facet_grid() для вывода нескольких групп на мои столбчатые графики.

Это должно работать для создания вывода, аналогичного тому, что вы получили в Excel.Хорошая вещь с сеткой - это то, что оси X и Y одинаково масштабируются в каждой сетке.Это можно настроить в параметрах facet_grid.

ggplot(x,aes(x=Indices,y=Means, fill=Treatment), 
       stat="identity",
       fill=factor(Treatment)) +
  geom_bar(stat="identity", position="dodge") +
  facet_grid(cols = vars(Year))

Где facet_grid() создает сетку, в которой вы указываете столбцы для группировки вашей сетки.

Я также нашел это решение Тома Мартенса , которое кажется очень скучным, но может быть именно тем, что вам нужно.

...