如何使用R对geom_直方图中的堆叠值进行分组?

如何使用R对geom_直方图中的堆叠值进行分组?,r,ggplot2,histogram,R,Ggplot2,Histogram,我使用R中的geom_直方图生成直方图,代码如下: ggGender <- ggplot(dfGenderGrouped, aes(log(freq), fill=dfGenderGrouped$name) ) + geom_histogram(data=dfGenderGrouped, binwidth = 1, alpha=0.5, color="black") + theme_bw() + theme(axis.title = element_text(size=16), leg

我使用R中的geom_直方图生成直方图,代码如下:

ggGender <- ggplot(dfGenderGrouped, aes(log(freq), fill=dfGenderGrouped$name) ) + 
geom_histogram(data=dfGenderGrouped, binwidth = 1, alpha=0.5, color="black") + theme_bw() + 
theme(axis.title = element_text(size=16), legend.text = element_text(size=12), axis.text.y = element_text(size=12, angle=45), axis.text.x = element_text(size=12), legend.position=c(0.8,0.7)) + ylab("Number of patients") + 
xlab("Events (log)")+labs(fill="Events") + scale_y_continuous(labels = comma) + 
scale_fill_brewer(palette="Spectral")
要命名的唯一值显示在图例中。要分组的唯一值为:

我希望按照组值组织堆栈,例如,在箱子0中,有一个女性-所有事件和男性-所有事件的堆叠列,然后在箱子1中有相同的堆叠列等。为了进一步澄清,我希望女性-临床事件和男性-临床事件也作为单个堆叠列横跨箱子。因此,每列叠加值都具有相同的组值(全部、临床、转诊和治疗)

进一步澄清,bin 0将具有以下列堆栈(按data.frame中的组组织):

那么,对于第1箱,则相同:

Female - All events & Male - All events
Female - Clinical events & Male - Clinical events
Female - Referral events & Male - Referral events
Female - Therapy events & Male - Therapy events

非常感谢你的帮助

使用“组”列(例如:

库(ggplot2)
ggplot(数据=df,aes(日志(频率),填充=名称))+
几何图形直方图(binwidth=1,alpha=0.5,color=“黑色”)+
镶嵌面(组,nrow=1,scales=“固定”)+
实验室(x=“事件(日志)”,y=“患者数量”,fill=“事件”)+
缩放填充酿酒器(调色板=“光谱”)

编辑:简化图例

为了简化图例,您只需使用
facet\u wrap
绘制男性和女性,但需要编辑“Name”列,以删除字符串的所有右侧部分,并仅保留男性/女性面额


df$Name如何使用“组”列对图形进行切面处理,例如:

库(ggplot2)
ggplot(数据=df,aes(日志(频率),填充=名称))+
几何图形直方图(binwidth=1,alpha=0.5,color=“黑色”)+
镶嵌面(组,nrow=1,scales=“固定”)+
实验室(x=“事件(日志)”,y=“患者数量”,fill=“事件”)+
缩放填充酿酒器(调色板=“光谱”)

编辑:简化图例

为了简化图例,您只需使用
facet\u wrap
绘制男性和女性,但需要编辑“Name”列,以删除字符串的所有右侧部分,并仅保留男性/女性面额


df$Name数据可能不足以绘制一个图,请再绘制一点。我认为您想要叠加和回避同一个直方图,这是不可能的,尽管有一些黑客可以达到这种效果:请看数据可能不足以绘制一个图,请多做一点。我想你想要叠加和回避同一个直方图,这是不可能的,尽管有黑客可以达到这个效果:见谢谢你dc37。看起来不错。我尝试过使用facetting,尽管它确实产生了很好的显示效果,但为了出版(因此应我的直线经理的要求),我只想简单介绍一下图例。我查看了文档,似乎没有任何方法可以在每个方面添加一个小图例。至于如何正确使用ggplot2,我喜欢明确定义data.frame。我编辑了我的答案,为您提供了两种备选方案,用于绘制各个组,以及是否为每个面板绘制带有或不带图例的简单图例。让我知道这是否是你要找的。另外,通过使用$来调用列名,可以在
ggplot2
(绕过您使用
data=…
注册的数据框。大多数情况下,您不会注意到差异,但如果您试图绘制数据框的子集,并且使用$调用变量,则该子集将无效。感谢您提供了详尽的示例和解释!grid.arrange代码解释非常有用pful。谢谢dc37。看起来很棒。我已经尝试过使用facetting,尽管它确实产生了一个很好的显示效果,但是为了出版(因此应我的直线经理的要求),我只想简单地描述图例。我查看了文档,似乎没有任何方法可以在每个方面添加一个小图例。至于如何正确使用ggplot2,我希望明确定义data.frame。我编辑了我的答案,为您提供两种选择,用于绘制您的个人组,并具有或不具有简单的图例nds,每个面板有或没有图例。让我知道您是否在寻找它。另外,通过使用$来调用列名,您在
ggplot2
(绕过您使用
data=…
注册的数据框。大多数情况下,您不会注意到差异,但如果您试图绘制数据框的子集,并且使用$调用变量,则该子集将无效。感谢您提供了详尽的示例和解释!grid.arrange代码解释非常有用普福。
> unique(dfGenderGrouped$Group)
[1] "All"      "Clinical" "Referral" "Therapy"
Female - All events & Male - All events
Female - Clinical events & Male - Clinical events
Female - Referral events & Male - Referral events
Female - Therapy events & Male - Therapy events
Female - All events & Male - All events
Female - Clinical events & Male - Clinical events
Female - Referral events & Male - Referral events
Female - Therapy events & Male - Therapy events