用 Python 可以做这种数据动图,先上成果!如何用 Python 做数据动图

一般来说,这种视频都是用专业的动画软件做的特效,比如说 AE,普通人很难快速学会。

但如果用 Python 程序来实现的话,只要你有一个 Excel 文件,程序就可以根据里面的数据生成一张张图表,最后再拼成一个 gif 动图。再转成 mp4 配上音乐,视频就新鲜出炉了。

整个过程神奇又魔幻,连 gif 都是程序自动生成的。图表里的任何颜色都是可以在程序里面修改的。

如果你也想试试看的话,体验版代码如下:

import xlrd
import matplotlib.pyplot as plt
import imageio
def data_gif(cols, xlim_num, duration): # cols 展示前几列的数据,xlim_num x轴刻度值,duration 两张图片间的间隔,建议写0.2-0.5
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
frames = []
xlsx = xlrd.open_workbook('data_source.xlsx')
sheet = xlsx.sheet_by_index(0)
name_list = []
for j in range(1, int(cols)):
name_list.append(sheet.cell_value(0, j))
for i in range(1, sheet.nrows):
row_data_list = []
for j in range(1, int(cols)):
title = sheet.cell_value(i, 0)
row_data = sheet.cell_value(i, j)
row_data_list.append(float(row_data))
plt.xlim((0, int(xlim_num)))
plt.barh(name_list, row_data_list, color='blue')
plt.savefig("%s.png" % str(title))
plt.close('all')
im = imageio.imread("%s.png" % str(title))
frames.append(im)
imageio.mimsave('data_gif.gif', frames, 'GIF', duration=round(duration, 2))
data_gif(7, 1000, 0.5)

安装好所需的环境和库,然后运行代码就能直接生成你的数据动图啦!快来试试吧~

应评论要求,补上原始数据文件。