R-通过计算观测值的数量来归一化直方图

  • 本文关键字:直方图 计算观 r ggplot2
  • 更新时间 :
  • 英文 :


我的数据具有三个不同的变量,我试图使用R和GGPLOT2绘制3个不同的直方图。我发现您可以使用y = ../count ../sum(.. count ..)作为AES选项将这些数据归一化。但是,这并不能按照我想要的方式使其正常化。取而代之的是,我想分割..计数。按照每个变量的观察数。但是,尽管我的两个变量具有相同数量的观察结果,但我的最后一个变量却没有。前两个变量具有10700个观测值,而第三个变量具有20000个观测值。

如果我将两个变量分开,则可以产生正确的直方图,但是我想将它们共同创建,以便可以正确比较它们。以下是我两个变量的工作代码。

ggplot(data = melt(data_go), mapping = aes(x = value)) + geom_histogram(aes(y=..count../10600),breaks = seq(0,10,by = 1)) + facet_wrap(~variable, scales = 'free_x')

我的数据看起来像下表,我使用第一行代码将直方图在R中进行。这将在每个变量(正确)中创建三个不同的直方图。

ggplot(data = melt(data_go), mapping = aes(x = value)) + geom_histogram(aes(y=..count../sum(..count..)),breaks = seq(1,10,by = 1)) + facet_wrap(~variable, scales = 'free_x')
                            name     variable       value
1 Xetrov90024587m.L|Xelaev18044347m Avg_18_L_  0.90018700
2             emb.L|Xelaev18008312m Avg_18_L_  0.15418752
3 Xetrov90018247m.L|Xelaev18034878m Avg_18_L_  0.56432320
4          elmod1.L|Xelaev18003296m Avg_18_L_  0.07647218
5            pygm.L|Xelaev18026582m Avg_18_L_ 35.58034000
6            smu1.L|Xelaev18006121m Avg_18_L_ 65.81906000

tldr:我如何计算每个变量的观察数,并在命令中使用它来创建标准化直方图(count/of观测值)?

类似此行的东西,尽管您的里程可能会有所不同,因为我的数据集对我的数据集不清楚

ggplot(data=melt(data_go)) + stat_count(mapping = aes(x=value, y=..prop.., group=1), width=.2)+
  facet_wrap(~variable, scales = 'free_x')+
  scale_y_continuous(labels = scales::percent)

最新更新