使用 ggplot2 在折线图中展示 ..count.. 的数据可视化

5

我有一个包含时间码、推特ID、文本等的推特数据框,想要可视化每小时推特的数量。使用条形图可以很好地实现:

Bar graph of tweets per hour

我使用下面的代码来生成柱状图(created 存储了推文的 POSIX 时间戳格式):
  ggplot(data=tweets_frame, aes(x=created)) + 
     geom_bar(aes(fill=..count..), binwidth=3600) + 
     scale_x_datetime("Time") + 
     scale_y_continuous("Tweets")

我希望能绘制与条形图相同的图表,但是以折线图的方式呈现。
我尝试将geom_bar替换为geom_line
  ggplot(data=tweets_frame, aes(x=created)) + 
     geom_line(aes(fill=..count..), binwidth=3600) + 
     scale_x_datetime("Time") + 
     scale_y_continuous("Tweets")

这导致了以下错误信息:

Error in eval(expr, envir, enclos) : object 'count' not found

我无法弄清如何在折线图中指定 ..count..

1
我们可以在示例中使用 dput(tweets_frame)(或其部分)。 - hrbrmstr
数据框中有一个“created”列,其中包含一个posix时间戳,以及用于推文文本、推文ID、作者屏幕名称等的列...我稍后可以上传一个样本,但问题是一般性的,与数据无关。 - MartinW
2
我同意hrbrmstr的观点。如果您提供样本数据并展示您所尝试的内容,那将会更好。您是否正在寻找类似于这样的东西:ggplot(data=mtcars, aes(x=hp)) + geom_line(aes(fill=..count..), stat="bin", binwidth=10) - Jota
@Jota 好的,我解决方案中缺失的部分是 stat="bin",我还发现默认情况下 geom_bar 使用 stat="bin"geom_line 则不使用。这就是为什么我没有考虑它的原因。你想把你的评论作为答案添加吗,@Jota。 - MartinW
我更新了问题,提供了更详细的信息。 - MartinW
1个回答

5
你可以从默认设置stat="identity"geom_line切换到stat="bin",这样可以使用..count..。我在这个例子中使用了mtcars数据,并将binwidth任意设置为10。
ggplot(data=mtcars, aes(x=hp)) + geom_line(aes(fill=..count..), stat="bin", binwidth=10).

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接