在讲述由数据驱动的故事时,动画往往比其他形式更引人注目。我们的眼睛自然会被明亮的颜色和动作所吸引。优秀的视觉化能引起观众的兴趣,给观众留下深刻印象。幸运的是,一系列方便的R语言包使得可视化过程非常简单。本文中的所有可视化案例都可以在MatrixDS项目中进一步分解和运行。读者只需要了解一些基本的图纸。
在你开始做图表之前,你首先要问自己:你一定要做动态图表吗?如果您正在进行探索性数据分析,那么移动图可能不是您的最佳选择。但是,如果你需要做演讲,那么一些设计良好的动画图形可以让听众更加了解你的演讲主题,这当然比静态的图形展示更有表现力。制作动画时,画面实际上并不移动。其实我们只是构建了很多单独的画面,然后像电影一样把这些画面连接在一起,就像老式的翻转动画和漫画一样。制作动画时,每一帧都来自不同的画面。这些图是通过使用聚合数据的子集构建的,动画流是通过将这些子集缝合在一起形成的。
动态数据可视化的构成机制数据子集越多,画面就越平滑。这是动画制作要考虑的重要因素。如果每层数据太少,最后只能生成几帧,那么动态效果就没那么明显了。在这种情况下,建议使用静态面板图。这种图形可以在ggplot中创建,比如使用facets。另一种方法是使用插值和tweener包来扩展数据集。
动画的一个好处就是可以扩大我们可以可视化的变量数量,我们可以让数据集中的变量来“驱动”动画。上图是用包含六个变量的数据集构造的,动画可以很好的捕捉到这六个变量的变化!数据样式如下:
我们可以使用这六个变量中的任何一个进行动态显示。但是不加思考的选择是非常危险的。有些变量比其他变量更适合动态显示。比如动画是随时间变化的,这是不言而喻的;所以用分类变量生成动画会很混乱。
GDP可视化的正确使用方法:慢慢滚动。
GDP可视化的错误使用:我不知道这张图片在做什么.动画在这些使用场景中更有价值:1。它随时间而变化;2.迭代/递归技术(如梯度下降和贝尔曼方程)引起的变化3。随机模拟中变化的关键点是数据的重要变化,我们要用这个变量来驱动动画。我们来练习一下吧!这些代码都可以在MatrixDS项目中找到。
有四个R语言动画包推荐:1。Animate 3360可以动画任何格式的图片,由谢益辉2编写。GGAnimate 3360可以动画制作由ggplot创建的图像,它是由Thomas Lin Pedersen3编写的。plotly:一个具有动画功能的交互式图库。4.Google Vis3360,一个基于Flash的动态绘制方案。一般来说,animate包提供了最全面的控制,这对于基本的图形很有用,但是代码可能会很长。另一方面,gganimate包只支持一个画图库,但是将ggplot转换成动画非常容易(只需在画图代码中添加一两行代码)。与gganimate类似,plotly只能可视化地设置自己支持的绘图。Googlevis是最受限制的,只支持一种基于Flash的动画。这种图形的应用范围越来越窄。
如果使用animate来使用动画包,则可以用五种格式导出文件:1 .HTML(带控件)2 . video(MP4)3 . gif 4 . latex 5 . flash .这个软件包非常优秀,一大原因是它提供了很多内置的统计图作为例子。这里我们展示了一个带有控件的HTML页面,它用动画展示了渐变下降的过程:
图书馆(动画)
desc=c(\ ‘这是一个超级酷的梯度下降的例子\ ‘)
saveHTML({
f1=函数(x,y) x^2 3 * sin(y)
xx=grad.desc(f1,pi * c(-2,-2,2,2),c(-2 * pi,2))
xx$persp(col=\’lightblue\ ‘,theta=30,phi=30)
},title=\ ‘梯度下降演示\ ‘,description=desc,verbose=FALSE)
梯度下降的例子(使用动画包)有时你希望用户能够使用控件来控制动画效果。在本例中,您可能想要暂停3D表面图像以获取最后一帧的图片。带有此类控件的动画的实时版本托管在MatrixDS项目中的静态Web服务器上。这个软件包最强大的功能是任何可视化工具都可以用来构建框架。比如上面比较可视化是否合适的案例,就是用animate和ggplot搭建的。
使用gganimate使用gganimate包,默认导出的是GIF格式的文件(如果使用gifski,必须先安装rust)。但根据用户的具体要求,也可以导出其他格式。本文中的第一个动画示例是用gganimate包构建的(实际上,它是该包附带的README文档中唯一完整的实际数据示例)。下面我们展示这个软件包wiki中的另一个案例,最后输出一个视频文件(由Tom Westlake编写)。这是安斯康贝四重奏的新转变。这一系列数字都有相同的统计汇总值,其中一个看起来像恐龙!这些都只是需要在ggplot的基础上额外增加几行代码。
图书馆(datasauRus)
库(ggplot2)
库(动画)
gg plot(datasaurus _打,aes(x=x,y=y))
几何点()
主题_最小()
transition_states(数据集,3,1)
ease_aes(‘立方进制出’)
这是数据,小恐龙!
使用plotly时要介绍的最后一个包是Plotly。许多可视化实践者对这个包有着爱恨交加的故事。它允许我们简单地创建漂亮的交互图,但操作的简单性是以牺牲灵活性和风格为代价的,并且你必须在绘制后想办法清除plotly的标志。但我觉得这一切麻烦都是值得的。在下面的例子中,我们演示了plotly文档的演示(使用frame参数)。它使用gapminder数据集,就像上面的gganimate包的例子一样:
图书馆(plotly)
图书馆(gapminder)
p – gapminder %%
plot_ly(
x=~gdpPercap,
y=~lifeExp,
size=~pop,
color=~洲,
帧=~年,
text=~国家,
hoverinfo=\’text\ ‘,
type=’scatter ‘,
mode=’markers ‘
) %%
布局(
xaxis=list(
type=\’log\ ‘
)
一旦你完成了绘图,你可以把它发送到plotly的托管服务。在这里,您可以使用绘图的所有嵌入组件,包括播放按钮。这实际上是在媒体上获得交互式图形的少数方法之一!它的一个缺点是,图形托管服务的免费版本最多只能容纳25张图片。
Plotly版的Gapminder可视化(https://plot.ly/~RPlotBot/4595.embed autosize=true referer=https://towardsdatascience.com/media/e98cacd5d473A 475392495880 b 6 ed2e 2?postId=f94ae20843e3)
总结:现在,您已经拥有了用R语言构建动画可视化所需的一切。你可以将这些动画放在演示文稿、网站和博客中。
编译:魏和,如需转载,请在后台留言,并遵循转载规范。