R 数据未更改的堆叠重叠条
我想在数据不变的情况下制作一个堆叠条形图。我的意思是,我已经计算了要绘制的百分比。根据ggplot2手册,“geom_col使用stat_identity:它保持数据不变”。但是,它似乎不起作用,因为绘图的百分比与样本数据的百分比不同 从下载示例数据 代码如下:R 数据未更改的堆叠重叠条,r,ggplot2,bar-chart,R,Ggplot2,Bar Chart,我想在数据不变的情况下制作一个堆叠条形图。我的意思是,我已经计算了要绘制的百分比。根据ggplot2手册,“geom_col使用stat_identity:它保持数据不变”。但是,它似乎不起作用,因为绘图的百分比与样本数据的百分比不同 从下载示例数据 代码如下: ggplot(data=df, aes(x = Pathway, y = value, fill = variable)) + scale_fill_manual(values=c("#005588", "#E69F00
ggplot(data=df, aes(x = Pathway, y = value, fill = variable)) +
scale_fill_manual(values=c("#005588", "#E69F00")) +
#stat_identity(geom="bar", width=0.5) +
geom_col(width=0.5) +
#geom_bar(stat="identity", width=0.5) +
facet_grid(. ~ Timepoint) +
coord_flip() +
theme_bw()
另一方面,如果使用“stat_identity”选项,数据保持不变(将两幅图像的百分比与样本数据进行比较),但条形图不再堆叠
“geom_col”选项是否不起作用,或者我做错了什么?我应该使用另一种绘图方法吗?感谢您的帮助
dput:
考虑到您和Gregor在上述评论中的讨论,听起来您不希望绘图相互堆叠,而是重叠。我相信这应该对你有用:
ggplot(data=df, aes(x = Pathway, y = value, fill = variable)) +
scale_fill_manual(values=c("#005588", "#E69F00")) +
geom_col(width = 0.5, alpha = 0.5, position = "identity") +
facet_grid(. ~ Timepoint) +
coord_flip() +
theme_bw()
我使用position=“identity”
来确保这些条不会堆叠。我还必须使用alpha=0.5
使条形图透明,以便您可以看到它们
如果要将它们并排打印而不是堆叠,另一个选项是使用
position=“dodge”
:
您的预期输出是什么?您发布的代码似乎适用于meStacking bars,与“保持现状”不同。您想要的是默认的
position='stack'
,而不是您正在使用的自定义的'position'identity'.@Mike H我需要样本数据中的原始百分比,就像在第二个图中一样,但是像第一个图中一样堆叠。我不想下载任何文件并读取其中的内容。你能分享一个小样本的数据来说明这个问题吗?您输入的数据没有帮助,因为它只有一个变量的值,第二个时间点中只有一行,路径的所有唯一值,所以没有什么可叠加的。8行(2个时间点*2个路径*2个变量)应该足够了。@fred也许只有我一个人,但这不是第一个绘图所做的吗?第二个图仅显示DEGs
(涵盖目标
)。第二个看起来是将DEGs
和目标的百分比进行叠加
ggplot(data=df, aes(x = Pathway, y = value, fill = variable)) +
scale_fill_manual(values=c("#005588", "#E69F00")) +
geom_col(width = 0.5, alpha = 0.5, position = "identity") +
facet_grid(. ~ Timepoint) +
coord_flip() +
theme_bw()
ggplot(data=df, aes(x = Pathway, y = value, fill = variable)) +
scale_fill_manual(values=c("#005588", "#E69F00")) +
geom_col(width=0.5, position = "dodge") +
facet_grid(. ~ Timepoint) +
coord_flip() +
theme_bw()