R:频率/密度图中奇怪的y轴(ggplot2)

时间:2013-05-24 13:18:48

标签: r ggplot2 frequency-distribution

我有来自两个样本的数据,我想在R中绘制频率分布图。我在Excel中完成了参考:

what in want to get in R (obtained with excel)

我在R中上传了数据(HistSerp)。它是136 obs. of 2 variables

summary(HistSerp)
V1              V2       
 Min.   :0.000   Min.   :0.0000  
1st Qu.:0.000   1st Qu.:0.3752  
Median :0.000   Median :1.2845  
Mean   :0.055   Mean   :1.2144  
3rd Qu.:0.082   3rd Qu.:1.9952  
Max.   :1.082   Max.   :2.9800 

class(HistSerp$V1)
"numeric"
class(HistSerp$V2)
"numeric"

如果我HistSerp.m <- melt(HistSerp)ggplot(HistSerp.m) + geom_freqpoly(aes(x = value, y = ..density.., colour = variable)) 情节看起来是:enter image description here

我不知道为什么y轴跨度值,我不确定它是否只是一个y轴标记问题,情节本身似乎有所不同。 我也试过了geom_density()hist(HistSerp$V1, freq=FALSE)等等,但我无法按照我的预期得到它,我和以前一样。我想我的数据有问题,但我无法弄清楚它是什么。任何帮助将不胜感激。

由于

聚苯乙烯。我应该复制数据(136x2)?

更新:数据。对不起,如果有更好的方法来复制它......

0.144   2.024
0.082   2.548
0.082   1.943
0.000   2.599
0.000   2.233
0.000   2.342
0.082   1.655
0.082   2.200
0.000   2.261
0.000   2.408
0.000   2.127
0.000   2.053
0.000   1.929
0.000   1.413
0.000   2.400
0.000   2.777
0.000   2.685
0.000   1.436
0.000   1.573
0.000   2.504
0.000   1.533
0.000   1.434
0.000   1.421
0.000   2.534
0.082   1.728
0.000   1.984
0.082   1.287
0.000   2.324
0.164   2.405
0.279   1.989
0.082   2.729
0.144   2.046
0.226   2.496
0.000   2.980
0.000   2.634
0.000   1.792
0.000   1.571
0.000   0.612
0.000   0.884
0.000   0.449
0.000   2.318
0.082   0.449
0.000   0.449
0.000   0.563
0.082   0.919
0.000   0.617
0.082   1.297
0.144   0.719
0.000   1.897
0.000   1.338
0.000   0.337
0.000   1.555
0.000   0.273
0.291   0.656
0.000   0.273
0.082   0.388
0.082   1.911
0.082   0.852
0.000   1.580
0.000   1.450
0.000   1.209
0.000   2.049
0.082   2.694
0.082   1.089
0.246   2.643
0.000   2.393
0.000   1.702
0.000   2.595
0.000   1.432
0.000   2.094
0.000   1.526
0.082   1.775
0.000   0.273
0.000   1.405
0.000   2.014
0.000   0.543
0.000   0.586
0.000   1.224
0.000   0.719
0.164   0.201
0.000   0.388
0.082   0.232
0.000   0.116
0.000   0.116
0.082   1.395
0.000   0.116
0.000   0.232
0.082   0.844
0.000   1.153
0.082   0.000
0.667   0.000
0.000   1.535
0.000   2.687
0.000   0.922
0.226   0.337
0.197   0.999
1.082   1.373
0.082   0.396
0.082   0.116
0.000   1.667
0.000   0.731
0.000   0.544
0.082   2.072
0.000   2.262
0.164   2.111
0.082   1.675
0.000   0.116
0.000   0.232
0.082   0.116
0.000   1.004
0.000   0.116
0.164   0.116
0.082   0.699
0.000   0.000
0.000   0.273
0.082   0.000
0.000   0.388
0.082   0.000
0.000   0.116
0.000   0.273
0.000   0.000
0.000   0.649
0.164   0.000
0.082   0.000
0.082   0.000
0.000   0.000
0.082   0.000
0.144   1.282
0.000   1.772
0.000   0.116
0.082   0.000
0.000   1.416
0.000   0.563
0.082   0.510
0.000   0.316
0.164   1.124

1 个答案:

答案 0 :(得分:2)

您有几个选择:

geom_freqpoly(aes(y = ..count.. / sum(..count..)))

这可能就是你想要的。然后是:

geom_freqpoly(aes(y = ..ndensity..))

这是密度估计,但是缩放到0到1的范围(即总是范围从0到1)。最后,关联:

geom_freqpoly(aes(y = ..ncount..))

这是类似的,但对于计数。您可以在?stat_bin了解相关选项。