最近回顾学习排序,想用python实现,考虑可视化github上有一个python得https://github.com/ZQPei/Sorting_Visualization
还不错。
不过有用到opencv、pygame,我不太想用这个,看是否能直接用matplotlib画,有两种思路:①animation动画思路、②自己手动draw。
这一篇是自己探索的第②种,自己手动draw得方式
注意点:
①ipython中无法动态实时更新,python console中才可以,使过一直都是空白,等代码全都执行完毕,才会显示最后得一张图,坑掉我无数实践
②实时动态,使用plt.pause(seconds)方式非阻塞刷新draw;(资料说需要开启交互方式plt.ion() 用完需关闭plt.ioff(),但测试并不是)
③最后可用plt.show()来阻塞,防止运行玩自己关闭了。
自己draw动态更新
plt.bar柱状图,当排序交换数据时,将柱状图中的height数据进行交换,然后draw即可
源码:(一定是python console,不是ipython,否则会生成很多得图片输出)
# -*- coding: utf-8 -*-
"""
Created on Sun Jul 21 00:32:06 2019
pyplot_dynamic_draw_sample_01.py
在ipython中无法体现出动态效果,需要再window得cmd中启动pyton(linux也是一样console启动)&#