30天网站建设 视频,网站做的好赚钱吗,深圳博大建设公司,杭州网站制作工具原标题#xff1a;使用Python、Geopandas和Matplotlib制作gif动态
不需要Photoshop#xff1a;仅使用Python和命令行制作动画图表。作为一种编程语言#xff0c;Python非常灵活。这使得有时可以在几行代码中进行大量不同的可视化成为可能。但是现在有了很多不同的图表网站和…原标题使用Python、Geopandas和Matplotlib制作gif动态
不需要Photoshop仅使用Python和命令行制作动画图表。作为一种编程语言Python非常灵活。这使得有时可以在几行代码中进行大量不同的可视化成为可能。但是现在有了很多不同的图表网站和软件为什么还要编写代码我们不能只使用相关网站的GUI上传数据调整范围点击导出png图片结果吗
是当然可以。有时如果您需要快速的制作一次性图表或地图这是最佳选择。但是当你需要制作大量的地图时使用Python的强大功能会产生更好的结果。
本文将介绍如何创建一个能随时间数据变化的动画gif地图。最重要的是本教程将从头到尾仅使用Python和一些命令行工具无需在Photoshop或其他软件中进行任何操作。
正如上面所说本文的方法在具体工作中也许并不是最佳的方法但如果考虑到制图的速度、可重复性和一致性我认为这是一个很好的方法。
为什么选择GIF地图
在过去几年中gif图表似乎已经在社交媒体上大受欢迎。像“金融时报”和“经济学人”这样的出版商花费了更多的时间来精简和完善他们的数据产品以便于在Twitter和Instagram等平台上更好地展示信息。也许更重要的是gif图表允许在静态图表显示的基础上创建一个新的数据维度。
Gif动图在数据可视化中的应用场景
通过注释或突出显示来引导用户浏览同一图表中最重要的点
通过比较显示两个不同的图表
显示相同的图表随时间的变化这是我们要做的
该清单并非详尽无遗用例也在不断扩大可以说动态图表既炫酷又实用正确使用时。
下面让我们来开始制作。
如何制作一个gif动态地图
这是您应该开始的
加载shapefile地图文件
加载要显示的csv数据文件
融合这两个类型的数据
绘制地图并设计样式
现在我们将使用Python中for循环的强大功能将多个不同时期的数据展示在相同的地图上。因为我们想要显示随时间的变化我们需要确保我们的数据包含年份作为变量。为便于标记我们确保数据的每个列标题都是年份数字即不同年的数据分别放在不同列。
为了遍历每列的数据我们需要一个字符串列表来调用每列的名称。让我们创建一个列表变量其中包含每列的年份格式化为字符串。我们还设置一个输出路径以便将每年的数据地图保存到一个文件夹中。最后在创建地图之前我们要为vmin和max值设置一致的全局变量。这将设置颜色范围的值。如果你事先没有设置它Matplotlib将在每次for循环迭代时改变等值区的范围因此很难看出值随时间的增加或减少的方式。写for循环
for循环使用起来相当简单for循环中语法意思大概如下
对于list_of_years列表中的每一年运行以下代码。
当我们列表中的所有年份都通过代码时停止循环。如果您运行此代码并打开刚刚设置的输出路径文件夹您应该会看到许多地图每个地图的颜色略有不同代表不同年份的数据。您可能会想一旦做成地图动画我们将如何知道年份的变化
我们可以在底部设置一个简单的日期范围2007-2015但for循环可以为我们提供更好的解决方案。由于我们已经将每列的年份保存为变量中的字符串因此我们可以为每个地图添加不同的注释对应于数据的年份。
根据我们的for循环变量year将是每次for循环运行的列的年份。使用这个逻辑我们可以插入year作为fig.annotate参数的变量。
现在每次for循环运行时不同的年份将作为注释插入到地图上。使用相同的逻辑我们也可以将文件名设置为每年开始这样就很容易找到每年对应的地图。在for循环中添加此代码将添加年份注释。重新运行代码您的地图会替换为新地图每个地图的左下角都有年份注释。如果你从上到下翻阅地图你就可以了解到你的gif会是什么样子。
制作GIF
我们在进行GIF制作之前要将我们得到的所有png格式的地图图片转化为jpg格式图片格式转化有多种方法下面举了一个在python中利用opencvcv2进行图片格式转化的例子仅供参考。接下来我们可以开始制作GIF动态地图了有很多方法可以制作GIF动图我们使用的是ImageMagick原因有以下几点
它相对容易安装和设置
它允许您在一行代码中设置转换时间裁剪大小和文件格式
它超级快
ImageMagick的文档非常详尽。如果您尚未安装它请查看其官方文档页面。
首先检查您是否正确安装了ImageMagick
在命令行中输入并运行
convert –version
如果已成功安装了ImageMagick将显示包含版本和版权声明的消息。在系统上安装ImageMagick后转到包含我们刚制作的所有地图的目录。现在我们需要运行一行代码来创建我们的gif。这行代码的作用如下
convert获取所有这些文件并进行更改
-delay 60设置每个图像在进入下一个图像之间经过的时间
-loop 0设置无限循环
插入将要转换的所有文件名
my_map.gif
这是在终端中使用的代码现在看看自动创建的新文件“new_map_normal.gif”你看到的图像应该如下使用gif地图可以成为深入分析数据的一个很好的切入点。 此外您可以将任何具有时间序列数据的图表转换为gif动图 - 我们这里只是选择了地图因为它看起来更炫酷。
如果您有任何疑问欢迎与我交流后面会在评论区给出源码链接。返回搜狐查看更多
责任编辑