我想知道是否可以在 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/