如何在一张图片中复制一张带有直方图和CDF函数的图片?

How to replicate a picture with histogram and CDF function in one picture?

我正在尝试使用 ggplot2 用我自己的数据复制这个数字。

在我的例子中,我目前不关心颜色和图例,我只需要显示一年内新存储库的数量和创建日期的 cdf(累积分布函数) (双y轴,将1.0值定位在右上角,如示例)

到目前为止我得到了这个代码:

repo.count <- read.csv("http://pastebin.com/raw.php?i=PfUgyrt0",sep=",")
repo.count$createdAt <- as.Date(repo.count$createdAt)

ggplot(data = repo.count, aes(x = createdAt)) +
  geom_histogram(colour = 1, fill = "white", position="identity") +
  xlab('Date') +
  ylab('# New Repositories') +
  ggtitle('')+
  scale_x_date(labels = scales::date_format("%Y-%b"),
             breaks = by_month(date.groups$createdAt,2)) + 
  scale_y_continuous(sec.axis = sec_axis(~. / max(repo.count$total), 
                                         name = "Cumulative distribution")) +
  theme(axis.text.x = element_text(angle=90)) + stat_ecdf(size=1)

但是离我想要的还差得很远:

.

我想知道您是不是在寻找这样的直方图,而只是在寻找每天新回购的条形图和一条指示累积回购的线?如果是这样,请使用 geom_col 而不是 geom_histogram,并将 y 变量指定为 repositories

ggplot(data = repo.count, aes(x = createdAt, y = repositories)) +
  geom_col(fill = "green4", color = NA) +
  geom_step(aes(y = total / 100)) +
  xlab('Date') +
  ylab('# New Repositories') +
  ggtitle('')+
  scale_x_date(labels = scales::date_format("%Y-%b"),
               date_breaks = 'month') + 
  scale_y_continuous(sec.axis = sec_axis(~. * 100, 
                                         name = "Cumulative repos")) +
  theme_classic(base_size = 16) +
  theme(axis.text.x = element_text(angle = 90)