[英]ggplot2 order categorical stacked bars by proportions of y-axis
I have a data frame with categorical x-axis called Category and the yaxis is the Abundance, colored by Sequence.我有一个带有分类 x 轴的数据框,称为类别,y 轴是丰度,按序列着色。 For each Category I am trying to reorder the stacks by the Abundance, so that it is easily visualized which sequence has the highest proportion at the bottom, to the lowest proportion at the top.
对于每个类别,我试图按丰度对堆栈进行重新排序,以便很容易地可视化哪个序列在底部的比例最高,在顶部的比例最低。
Currently, I can make a bar graph like this:目前,我可以制作这样的条形图:
s<-"Sequence Abundance Category
CAGTG 0.8 A
CAGTG 0.2 B
CAGTG 0.6 C
CAGTG 0.3 D
CAGTG 0.1 E
GGGAC 0.1 A
GGGAC 0.1 B
GGGAC 0.3 C
GGGAC 0.6 D
GGGAC 0.1 E
CTTGA 0.1 A
CTTGA 0.7 B
CTTGA 0.1 C
CTTGA 0.1 D
CTTGA 0.8 E"
d<-read.delim(textConnection(s),header=T,sep=" ")
g = ggplot(d,aes(x = Category, y = Abundance, fill = Sequence)) +
geom_bar(position = "fill",stat = "identity")
My data is very similar to this: Ordering stacks by size in a ggplot2 stacked bar graph我的数据与此非常相似: Ordering stacks by size in a ggplot2 stacked bar graph
But even trying to reproduce this solution (following the steps in the answer), it does not reorder the stacks by proportion:但即使尝试重现此解决方案(按照答案中的步骤),它也不会按比例重新排列堆栈:
d$Sequence <- reorder(d$Sequence, d$Abundance)
d$Sequence <- factor(d$Sequence, levels=rev(levels(d$Sequence)))
ggplot(d, aes(x=Category, y=Abundance, fill=Sequence)) +
geom_bar(stat='identity')
I cannot find an example for what I am looking for.我找不到我正在寻找的例子。 Thanks so much for any help!
非常感谢您的帮助!
Use the group
aesthetic to control the order of the stacked bar.使用
group
美学来控制堆叠条的顺序。
s <- "Sequence Abundance Category
CAGTG 0.8 A
CAGTG 0.2 B
CAGTG 0.6 C
CAGTG 0.3 D
CAGTG 0.1 E
GGGAC 0.1 A
GGGAC 0.1 B
GGGAC 0.3 C
GGGAC 0.6 D
GGGAC 0.1 E
CTTGA 0.1 A
CTTGA 0.7 B
CTTGA 0.1 C
CTTGA 0.1 D
CTTGA 0.8 E"
d <- read.delim(textConnection(s), header=T, sep=" ")
# Add the "group" aesthetic to control the order of the stacked bars
g = ggplot(d,aes(x=Category, y=Abundance, fill=Sequence, group=Abundance)) +
geom_bar(position = "fill",stat = "identity")
g
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.