python matplotlib排序画图初探之简单bar实时动态更新(非animation、非opencv)

本文探讨如何使用Python的matplotlib库实现排序算法的动态可视化,避免使用opencv和pygame。作者分享了通过手动draw而非animation的方式更新bar图的过程,强调在Python console而非ipython环境中运行才能看到动态效果,并提供了相关代码示例。

最近回顾学习排序,想用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启动),然后输入下面得文件就能看到效果
@author: Sudaxia
"""
#matplotline   #jupyter ipython中别加inline就能画图出来
import matplotlib.pyplot as plt
imp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值