Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 数据未更改的堆叠重叠条_R_Ggplot2_Bar Chart - Fatal编程技术网

R 数据未更改的堆叠重叠条

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

我想在数据不变的情况下制作一个堆叠条形图。我的意思是,我已经计算了要绘制的百分比。根据ggplot2手册,“geom_col使用stat_identity:它保持数据不变”。但是,它似乎不起作用,因为绘图的百分比与样本数据的百分比不同

从下载示例数据

代码如下:

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()