首页 > 解决方案 > 在ggplot中使用facet_wrap绘制密度直方图

问题描述

当我计划使用 facet_wrap 绘制多个组时,我在 ggplot 中绘制密度直方图时遇到了一些问题。我的数据如下所示:

label model   probability
0     model1  0.00000005
0     model2  0.00000788
0     model1  0         
0     model2  0.00000017
0     model1  0.00000005
0     model2  0.00000137

我总共有 4 个模型和 2 个标签(0、1),所以我想生成一个带有 4 个子图的图,每个模型 1 个,其中概率在密度直方图中合并,标签有不同的颜色。我目前的代码是:

ggplot(data=df, aes(x=probability, y=after_stat(density), fill=factor(label))) +
  geom_histogram(bins=50, alpha=0.5) +
  facet_wrap(facets = vars(model), nrow=2, ncol=2) +
  scale_fill_discrete(name='True label', labels=c('0','1')) +
  labs(x='Probability of 1', y='Density')

到目前为止,我的 facet_wrap 是正确的,但是密度搞砸了。根据箱的数量,我可以获得从 50 到 150 的最大密度,并且由于我的模型具有不同的大小(模型 1 和模型 2 的样本数几乎是模型 3/模型 4 的两倍),因此 y 值非常不同。我附上的图是上面显示的代码。在此处输入图像描述

标签: rggplot2histogramfacet-wrap

解决方案


推荐阅读