【发布时间】:2019-02-25 23:32:15
【问题描述】:
我正在尝试在 R 中创建一个类似于我在 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 我可以创建一个条形图,其中年份或指数不同时分组。下面按年份分组。这是图表的样子:
ggplot(data,aes(x=Year,y=Means, fill=Treatment),stat="identity",fill=factor(Treatment))+
geom_bar(stat="identity",position="dodge")
这是按指数分组的图表
.
ggplot(data,aes(x=Indices,y=Means, fill=Treatment),stat="identity",fill=factor(Treatment))+
geom_bar(stat="identity",position="dodge")
我的问题是,如何创建一个按年份和指数分组的图表,其中不同的条形代表类似于我的 Excel 图表的治疗?我应该以不同的方式重新输入我的数据吗?我试过使用 group_by,但没有运气。
谢谢!
【问题讨论】:
-
貌似要加分面,比如
facet_wrap(~Indices) -
Camille 的推荐非常棒。您可能还希望 X 值的格式为 yyyy_index,您可以使用
data %>% mutate(y_i=paste(Year, Indices, sep="_")创建它,然后将其用作 X 轴变量。然后,您可以使用标签函数/annotate让您的图表看起来正确。感谢您使用有效数字/希尔数字版本的指数 :)