大家好,我是Sharon Machlis, IDG Communications数据分析编辑总监。我现在在这里播放的是动画片《与R一起做更多》的第八集。
动画是你可以用R.做的最酷的事情之一,但除了是乐趣,动画可以是一个很好的方式来看待数据随着时间的推移。特别是如果你有多个数据系列,你想带。
住房价格是一个很好的例子。莱恩基弗,在房地美的副总经济师,曾做过这一一些很酷的工作。
我绝对推荐他的博客,在LenKiefer.com - 1-E-N-K-I-E-F-E-R科网 - 对于很多有趣的例子,像
今天我想向你展示动画住房价格的方式略有不同 - 棒棒糖图表。让我们来看看。
首先,数据。
我有几个美国都市区的房价指数:波士顿、底特律、费城、旧金山和圣何塞-圣克拉拉,我称之为硅谷。该指数的运作方式是,1995年1月从100开始。然后你可以看到每个季度价格是如何上下波动的。
让我先给你看一个季度的静态棒棒糖图表,从2000年1月1日开始。
首先,我加载一些包:ggplot2和gganimate,这是动画所需要的。dplyr用于数据争论。
接下来,我将导入我的房屋数据的电子表格,看看结构。
你可以看到它有3列:季度和MetroArea,是字符串;和指数,这是一个数字。
接下来,我将使用dplyr的过滤器函数创建仅包含2000年1月1日季度的数据子集。下面的代码创建了一个静态棒棒糖图表。
为了在这张图表上给大家加分,我修改了一些r dash statistics dot c.o.的代码。
如果您使用ggplot2,前几行看起来应该很熟悉。我将数据源设置为housing数据jan 2000, x设置为MetroArea, Y设置为索引。然后我将根据Metro区域同时使用标签和颜色。下一行将此可视化设置为点图。
Geom_segment通过从X轴向每个点添加线,将其转换为棒棒糖图表
下一行为标签添加文本
最后两条线交换X轴和Y轴,去掉图例。
要使整个数据集具有动画效果,我们还需要几行代码。
这需要一些时间来运行,所以现在让我在解释代码时源文件。
我们会逐季动画,所以我们会使用Quarter列来定义每一帧。Gganimate需要该列是日期或数字或其他一些变量类型,但是字符肯定不行。首先我把四分之一栏改成date。
在ggplot代码底部的新3行是用于gganimate的。第一行“labs”设置可视化页面顶部的交互式标题,显示动画所在的帧。下一行transition_time设置用于显示时间元素的列。最后,ease_aes的“线性”表示每一帧应该花费相同的时间。
一旦这一切都完成了,似乎什么也没有发生。动画应该显示在我的RStudio viewer面板,但由于某些原因,它没有。但如果我点击打开我的常规浏览器窗口,你会看到动画!
我发现这些有时会让人着迷。
如果你想把动画保存到文件中,回到R,使用anim_save函数
这就是本期节目的全部内容,谢谢收看!想了解更多的R技巧,请访问go.infoworld.com/morewithR的更多R视频页面。这是https go period infoworld period com斜杠+ R,除R外全小写。再见,希望下集再见!