我想知道是否可以在 GGLPOT2(或其他图形包;我只是更喜欢 ggplot)中制作分层/分段轴。

我想要做的是获取以下数据,制作一个堆积条形图,在 x 轴上有句点,但在每个时期内,每只动物也是如此。然后每只动物中条形的颜色将是“颜色”变量

set.seed(1234)
data <- data.frame(
    animal = sample(c('bear','tiger','lion'), 50, replace=T),
    color = sample(c('black','brown','orange'), 50, replace=T),
    period = sample(c('first','second','third'), 50, replace=T),
    value = sample(1:100, 50, replace=T))

然后将其放入堆积条形图中:
library(ggplot2)
plot <- ggplot(data, aes(x=period, y=value, fill=color)) +
    geom_bar(stat='identity')

产生这个:

但我真正想要的是,在每个周期内,每个动物的三个独立堆叠的条形(按颜色堆叠)。

我有一种感觉,我在这里遗漏了一个简单的语法,但“明显”的东西似乎不起作用,例如,
plot <- ggplot(data, aes(x=c(period,animal), y=value, fill=color)) +
    geom_bar(stat='identity')

最佳答案

执行此操作的两个步骤:

  • group=animal 美学添加到情节中(告诉它按动物分组)
  • position="dodge" 添加到您的 geom_bar 层(告诉它条形应该是分开的)

  • 因此:
    ggplot(data, aes(x=period, y=value, fill=color, group=animal, color=animal)) +
            geom_bar(stat="identity", position="dodge")
    

    这看起来像:

    这里的问题之一是它没有描述哪种动物是哪种动物:没有特别简单的方法来解决这个问题。这就是为什么我可能会通过分面来制作这个情节:
    ggplot(data, aes(x=animal, y=value, fill=color)) + geom_bar(stat="identity") +
        facet_wrap(~ period)
    

    关于r - ggplot中的分层轴?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25690208/

    10-12 17:42
    查看更多