ggplot2概率直方图或多边形来比较分布

时间:2017-02-19 18:00:41

标签: r ggplot2 histogram polygon

我正在尝试比较不同数据集的第一个数字分布,但我找不到用ggplot2演示它们的任何方法(或指南)。每个人都使用“原始数据”而非概率的示例。以下是我的一些数据:

这是所需的第一个数字分布(我的基准):

0.30103000 0.17609126 0.12493874 0.09691001 0.07918125 0.06694679 0.05799195 0.05115252 0.04575749

这是两个数据集的第一个数字分布:

0.37101911 0.17515924 0.08917197 0.08121019 0.06210191 0.06050955 0.07484076 0.03662420 0.04936306
0.524419536 0.253002402 0.092073659 0.032826261 0.025620496 0.019215372 0.008807046 0.012009608 0.032025620

上述概率对应于第一个数字1,2,......,9的概率。

下面是我用来查找上述概率的软件包的发布者的情节:

1st Dataset first-digit Distribution (the red line is my "benchmark")

1 个答案:

答案 0 :(得分:1)

由于您已预先计算了概率,因此可以使用geom_line绘制它们。

dat = read.table(text="0.30103000 0.17609126 0.12493874 0.09691001 0.07918125 0.06694679 0.05799195 0.05115252 0.04575749

                 0.37101911 0.17515924 0.08917197 0.08121019 0.06210191 0.06050955 0.07484076 0.03662420 0.04936306
                 0.524419536 0.253002402 0.092073659 0.032826261 0.025620496 0.019215372 0.008807046 0.012009608 0.032025620", header=FALSE)
dat = setNames(as.data.frame(t(dat)), c("Reference", "D1","D2"))
dat$digits = 1:9

library(ggplot2)
library(reshape2)

ggplot(melt(dat, id.var="digits"), aes(digits, value, colour=variable)) +
  geom_point() +
  geom_line(aes(size=variable)) +
  theme_bw() +
  scale_x_continuous(breaks=1:9) +
  scale_size_manual(values=c(1.2,0.5,0.5)) +
  scale_colour_manual(values=c("black",hcl(c(15,195),100,65))) +
  labs(x="First Digit", y="Probability", colour="", size="")

enter image description here