首页 > 解决方案 > 在 ggplot geom_freqpoly 函数中停止图形接触零

问题描述

我正在使用 ggplot2 中的 geom_freqpoly 函数创建频率图。我有一个跨 14 个月的社交媒体评论的大型数据集,并且正在绘制该数据每周的评论数量。我正在使用此代码,首先将 UTC 转换为 POSIXct 并绘制频率图:

ggplot(data = TRP) + 
  geom_freqpoly(mapping = aes(x = created_utc), binwidth = 604800)

这正在创建一个如下所示的图:

频率分裂

然而,我想在情节的顶部和尾部,因为它在开始和结束时都触及“零”,使它看起来像是快速增长和快速下降。情况并非如此,因为这只是数据的快照,它存在于我的分析之前和之后。数据从 4,000 开始,到 2,000 左右结束,我希望它像这样表示。我已经检查了“pad”指令并确保它设置为 FALSE。

任何有关为什么会发生这种情况的帮助将不胜感激。

谢谢!

标签: rggplot2

解决方案


与其调整 geom_freqpoly 使其工作方式与预期不同,不如自己计算每周总数并使用geom_line

library(lubridate); library(dplyr)
set.seed(1)
df <- data.frame(
        datetime = ymd_h(2018010101) + dhours(runif(1000, 0, 14*30*24))
      )

df %>%
  count(week_count = floor_date(datetime, "1 week")) %>%
  ggplot(aes(week_count, n)) + 
  geom_line()

在此处输入图像描述


推荐阅读