给图表添加了背景色、条形图上色、去除边框、增加网格线等 。
文章插图
看起来,效果还不错!
当然也有一些值得改进的地方,比如添加标题 。通过插值的方式来使过渡变得更平滑,甚至可以让条形图在x轴上移动 。
这里大家就可以自行去研究啦 。
03 散点图
要绘制动态散点图,则需要同时考虑x轴和y轴的值 。
这里不一定要在每帧上显示相同数量的点,因此需要对其进行校正来进行过渡 。
coordinates_lists = [[[0], [0]], [[100, 200, 300], [100, 200, 300]], [[400, 500, 600], [400, 500, 600]], [[400, 500, 600, 400, 500, 600], [400, 500, 600, 600, 500, 400]], [[500], [500]], [[0], [0]]]gif_name = 'movie'n_frames = 10bg_color = '#95A4AD'marker_color = '#283F4E'marker_size = 25print('生成图表n')filenames = []for index in np.arange(0, len(coordinates_lists) - 1): # 获取当前图像及下一图像的x与y轴坐标值 x = coordinates_lists[index][0] y = coordinates_lists[index][1] x1 = coordinates_lists[index + 1][0] y1 = coordinates_lists[index + 1][1] # 查看两点差值 while len(x) < len(x1): diff = len(x1) - len(x) x = x + x[:diff] y = y + y[:diff] while len(x1) < len(x): diff = len(x) - len(x1) x1 = x1 + x1[:diff] y1 = y1 + y1[:diff] # 计算路径 x_path = np.array(x1) - np.array(x) y_path = np.array(y1) - np.array(y) for i in np.arange(0, n_frames + 1): # 计算当前位置 x_temp = (x + (x_path / n_frames) * i) y_temp = (y + (y_path / n_frames) * i) # 绘制图表 fig, ax = plt.subplots(figsize=(6, 6), subplot_kw=dict(aspect="equal")) ax.set_facecolor(bg_color) plt.scatter(x_temp, y_temp, c=marker_color, s=marker_size) plt.xlim(0, 1000) plt.ylim(0, 1000) # 移除边框线 ax.spines['right'].set_visible(False) ax.spines['top'].set_visible(False) # 网格线 ax.set_axisbelow(True) ax.yaxis.grid(color='gray', linestyle='dashed', alpha=0.7) ax.xaxis.grid(color='gray', linestyle='dashed', alpha=0.7) # 保存图片 filename = f'images/frame_{index}_{i}.png' filenames.append(filename) if (i == n_frames): for i in range(5): filenames.append(filename) # 保存 plt.savefig(filename, dpi=96, facecolor=bg_color) plt.close()print('保存图表n')# 生成GIFprint('生成GIFn')with imageio.get_writer(f'{gif_name}.gif', mode='I') as writer: for filename in filenames: image = imageio.imread(filename) writer.append_data(image)print('保存GIFn')print('删除图片n')# 删除图片for filename in set(filenames): os.remove(filename)print('完成')
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 音视频算法在淘宝中的应用
- 李隆基之子谁当皇帝,李隆基的哪个儿子继位了
- 卫子夫是谁的皇后,卫子夫做了多少年皇后
- 戴什么耳机损伤最小?耳机科学使用指南来了
- 快手小店微信小商店等电商平台如何使用菜鸟打印电子面单
- 氟轻松软膏的作用与功效,醋酸氟轻松软膏的功效作用有哪些
- 5G工业路由器在工业物联网场景的通信应用
- 肝不好喝菊花枸杞茶有用吗,黄芪菊花枸杞茶的功效
- 菊花茶喝多了会怎么样,藏红花泡水放多了会怎么样
- 可以祛痘的茶,喝茶可以排毒祛痘