数据可视化

Matplotlib的动画

2019-07-02  本文已影响44人  榴莲气象

Matplotlib的动画
使用matplotlib库创建一些有趣的动画。
Matplotlib的动画 - 走向数据科学动画是一种展示现象的有趣方式。我们作为人类总是被迷住了......

使用matplotlib库创建一些有趣的动画。

使用Matplotlib进行雨水模拟</figcaption>

动画是一种展示现象的有趣方式。我们作为人类总是被动画和交互式图表所吸引,而不是静态图表。在描述多年来股票价格,过去十年的气候变化,季节性和趋势等时间序列数据时,动画更有意义,因为我们可以看到特定参数如何随时间变化。

上面的图像是Rain模拟,并且已经使用Matplotlib库实现,该库被人们称为python可视化包祖父。Matplotlib 通过动画50个散点的比例和不透明度来模拟表面上的雨滴。今天,Python拥有大量强大的可视化工具,如Plotly,Bokeh,Altair等等。这些库能够实现最先进的动画和交互性。尽管如此,本文的目的是强调这个图书馆的一个方面,这个方面没有进行太多探索,而且是动画,我们将看一些这样做的方法。

概观

Matplotlib是一个Python 2D绘图库,也是最受欢迎的一个。大多数人开始使用Matplotlib进行数据可视化之旅。可以使用matplotlib轻松生成绘图,直方图,功率谱,条形图,错误图表,散点图等。它还与Pandas和Seaborn等图书馆无缝集成,创造出更加复杂的可视化。

matplotlib的一些很好的功能是:

然而,也有一些领域Matplotlib没有那么多,并且落后于强大的同行。

至于这里有一个来自Datacamp的Matplotlib作弊表,你可以通过它来完善你的基础知识。

动画

Matplotlib的animation基类处理动画部分。它提供了一个围绕其构建动画功能的框架。使用以下两个主要接口来实现:

[FuncAnimation](https://matplotlib.org/api/_as_gen/matplotlib.animation.FuncAnimation.html#matplotlib.animation.FuncAnimation "matplotlib.animation.FuncAnimation")通过重复调用函数func来制作动画。

[ArtistAnimation](https://matplotlib.org/api/_as_gen/matplotlib.animation.ArtistAnimation.html#matplotlib.animation.ArtistAnimation "matplotlib.animation.ArtistAnimation"):动画使用固定的一组Artist对象。

但是,在这两者中,FuncAnimation是最方便使用的。您可以在文档中阅读有关它们的更多信息,因为我们只关注该FuncAnimation工具。

要求

准备好之后,我们可以从Jupyter笔记本中的第一个基本动画开始。可以从关联的Github存储库访问本文的代码,也可以通过单击下面的图像在我的活页夹上查看它。

[图片上传中...(image-367f22-1562047317891-1)]

基本动画:移动正弦波

让我们FuncAnimation用来创建一个在屏幕上移动的正弦波的基本动画。动画的源代码取自Matplotlib动画教程。让我们首先看看输出,然后我们将分解代码以了解引擎盖下的内容。

这是在Matplotlib中创建动画的基本直觉。通过对代码进行一些调整,可以创建有趣的可视化。我们来看看其中的一些

越来越多的线圈

同样,有一个很好的例子,在GeeksforGeeks创建形状。现在让我们animation在matplotlib类的帮助下创建一个缓慢展开的动圈。该代码非常类似于正弦波图,只需稍作调整即可。

实时更新图表

在绘制动态数量(如库存数据,传感器数据或任何其他时间相关数据)时,实时更新图表会派上用场。我们绘制了一个基本图表,当更多数据输入系统时,该图表会自动更新。让我们在一个月内绘制一家假想公司的股票价格。

现在,打开终端并运行python文件。您将获得如下图所示的图表,该图表会自动更新,如下所示:

这里的间隔是1000毫秒或一秒。

3D情节上的动画

创建3D图形很常见,但如果我们可以为这些图形的视角设置动画,该怎么办呢?我们的想法是更改摄像机视图,然后使用每个生成的图像来创建动画。在Python Graph Gallery中有一个很好的部分。

在与笔记本相同的目录中创建名为volcano的文件夹。所有图像都将存储在此文件夹中,然后将在动画中使用。

这将在Volcano文件夹中创建多个PNG文件。现在,使用ImageMagick将它们转换为动画。打开终端并导航到Volcano文件夹并输入以下命令:

convert -delay 10 Volcano * .png animated_volcano.gif

使用赛璐珞模块的动画

Celluloid是一个Python模块,简化了在matplotlib中创建动画的过程。该库创建一个matplotlib图并Camera从中创建一个。然后重新使用数字,并在创建每个帧后,使用相机拍摄快照。最后,创建包含所有捕获帧的动画。

安装

pip安装赛璐珞

以下是使用Celluloid模块的一些示例。

最小

次要情节

传奇

包起来

动画有助于突出显示可视化的某些功能,否则无法通过静态图表轻松传达。尽管如此,记住不必要和过度使用可视化有时会使事情复杂化也很重要。应明智地使用数据可视化中的每个功能以产生最佳影响。

上一篇下一篇

猜你喜欢

热点阅读