【问题标题】:Complex barplots with multiple grouping levels具有多个分组级别的复杂条形图
【发布时间】:2014-02-18 19:48:44
【问题描述】:

我正在尝试构建一个复杂的条形图,其中包含要区分的类别。这是数据框

   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 个值,按处理 (A v U) 分隔。因此,如果您阅读图的底部,则 DCA.f 将有一个大类别,然后在该类别中将有六个条形图。每个属两个按处理进行颜色编码。然后对所有 DAC.f 重复。我浏览了许多其他 barplot 帖子,但他们没有让我到任何地方。

有什么帮助吗?

【问题讨论】:

  • ggplot2lattice 软件包都可以满足您的需求。从简单开始,逐步建立您正在寻找的复杂情节。通常它可能需要重新塑造您的数据(包reshape2 及其函数melt)。
  • 按照@Justin 的建议,尝试melt 您的数据。然后,您将拥有三个预测变量:“Treatment”、“DCA.f”和“variable”。你可以看看here 我试图为类似设置(3 个预测变量)提供答案。我相信在 SO 上还有其他不错的(r)答案!

标签: r


【解决方案1】:

这是一种可能性。使用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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-28
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    • 1970-01-01
    • 2015-05-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多