R 具有多个分组级别的复杂条形图
我正在尝试建立一个复杂的条形图,其中包含要区分的类别。这是数据框R 具有多个分组级别的复杂条形图,r,R,我正在尝试建立一个复杂的条形图,其中包含要区分的类别。这是数据框 Treatment DCA.f Megalorchestia Talitridae Traskorchestia 1 A (-Inf,0] 8.000000 4843.6667 1394.0000 2 U (-Inf,0] 21.000000 2905.3333 483.6667 3 A (0,0.1
Treatment DCA.f Megalorchestia Talitridae Traskorchestia
1 A (-Inf,0] 8.000000 4843.6667 1394.0000
2 U (-Inf,0] 21.000000 2905.3333 483.6667
3 A (0,0.1] 25.000000 254.8571 41.0000
4 U (0,0.1] 30.714286 691.0000 360.1429
5 A (0.1,0.2] 35.400000 1355.2000 127.4000
6 U (0.1,0.2] 104.400000 705.4000 50.2000
7 A (0.2,0.3] 3.857143 649.7143 633.4286
8 U (0.2,0.3] 10.857143 510.4286 268.7143
9 A (0.3,0.4] 13.444444 981.5556 207.5556
10 U (0.3,0.4] 10.666667 1567.5556 417.5556
11 A (0.4, Inf] 0.000000 3.0000 1.2000
12 U (0.4, Inf] 0.000000 3.8000 0.0000
我想要一个条形图,每个DCA.f组显示三种生物类别的6个值(右三列),用处理(AVU)分隔。因此,如果你阅读图的底部,DCA.f会有一个大的类别,然后在这个类别中会有六个条。每个属两个,按处理颜色编码。然后对所有DAC.f重复。我已经浏览了很多其他的barplot帖子,但他们都没有找到我
有什么帮助吗?这里有一种可能性。使用条形图时,输入矩阵的每一列将对应于一组条形图,每一行对应于组中的不同条形图。因此,我们需要重塑数据,使列表示“DCA.f”的级别
library(reshape2)
library(RColorBrewer)
# reshape data
df2 <- melt(df)
df3 <- dcast(df2, Treatment + variable ~ DCA.f)
# create color palette
ncols <- length(unique(df3$variable))
cols <- c(brewer.pal(ncols, "Greens"), brewer.pal(ncols, "Reds"))
# plot
barplot(as.matrix(df3[ , -c(1, 2)]),
beside = TRUE,
col = cols,
cex.names = 0.7)
# add legend
legend(x = 15, y = 4000, legend = paste(df3$Treatment, df3$variable), fill = cols)
library(重塑2)
图书馆(RColorBrewer)
#重塑数据
df2无论是ggplot2
还是lattice
软件包都可以满足您的需求。从简单开始,逐步构建您要寻找的复杂绘图。通常可能需要对数据进行重新整形(包restrape2
及其功能melt
)。正如@Justin所建议的,尝试melt
您的数据。然后您将有三个预测变量:“治疗”、“DCA.f”和“变量”。你可以看看我试图为类似的设置(3个预测值)提供答案的地方。我相信还有其他很好的答案!