不同版本中Python matplotlib.pyplot.draw()界面繪制異常問(wèn)題的解決
前言
本文主要給大家介紹了關(guān)于不同版本中Python matplotlib.pyplot.draw()界面繪制異常的相關(guān)內(nèi)容,分享出來(lái)供大家參考學(xué)習(xí),下面話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧。
在 Ubuntu系統(tǒng)上進(jìn)行如下配置:
$ sudo apt-get update $ sudo apt-get upgrade $ sudo apt-get install python-dev $ sudo apt-get install python-pip $ sudo pip install --upgrade pip $ sudo pip install --upgrade urllib3 $ sudo pip install numpy $ sudo pip install matplotlib
之后執(zhí)行如下測(cè)試代碼:
import sys import numpy as np import matplotlib.pyplot as plt plt.ion() (fig, axis) = plt.subplots() bar_plot = axis.barh(0, 8,linewidth = 0) bar_plot.color= '#ffff00' for i in range(20): axis.set_xlim(xmax = max(i + 1, 10)) plt.draw() if sys.version_info < (3, 0): raw_input("Press Enter to continue...") else: input("Press Enter to continue...")
上面的測(cè)試代碼在 Ubuntu 14.04.5版本上是可以正常執(zhí)行的,對(duì)應(yīng)的 matplotlib的版本是 matplotlib 1.3.1,但是放到 Ubuntu 16.04.2系統(tǒng)上則是無(wú)法正常顯示的,對(duì)應(yīng)的 matplotlib的版本是 matplotlib 1.5.1。
造成這個(gè)問(wèn)題的原因在于 matplotlib.pyplot.draw()
,這個(gè)函數(shù)行為的改變,早期這個(gè)函數(shù)是同步更新界面的,后來(lái)的版本卻變成了空閑異步更新界面,只有當(dāng) matplotlib.pyplot.pause(interval)
被調(diào)用的時(shí)候才會(huì)刷新界面。
所以只需要上面的代碼修改成如下即可在不同版本之間兼容:
import sys import numpy as np import matplotlib.pyplot as plt plt.ion() (fig, axis) = plt.subplots() bar_plot = axis.barh(0, 8,linewidth = 0) bar_plot.color= '#ffff00' for i in range(20): axis.set_xlim(xmax = max(i + 1, 10)) plt.draw() plt.pause(0.00001) if sys.version_info < (3, 0): raw_input("Press Enter to continue...") else: input("Press Enter to continue...")
注意:我們?cè)?matplotlib.pyplot.draw()
調(diào)用后面增加了 matplotlib.pyplot.pause(interval)
的調(diào)用。
查看 matplotlib的版本使用如下代碼:
import matplotlib as mpl print mpl.__version__
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
參考鏈接
相關(guān)文章
Python標(biāo)準(zhǔn)庫(kù)shutil模塊使用方法解析
這篇文章主要介紹了Python標(biāo)準(zhǔn)庫(kù)shutil模塊使用方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03python如何獲取Prometheus監(jiān)控?cái)?shù)據(jù)
這篇文章主要介紹了python如何獲取Prometheus監(jiān)控?cái)?shù)據(jù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05如何使用 Python 讀取文件和照片的創(chuàng)建日期
這篇文章主要介紹了如何使用 Python 讀取文件和照片的創(chuàng)建日期,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09python多進(jìn)程并發(fā)的實(shí)現(xiàn)示例
python中的多線程無(wú)法利用多核優(yōu)勢(shì),如果想要充分地使用多核CPU的資源,在python中大部分情況需要使用多進(jìn)程,本文主要介紹了python多進(jìn)程并發(fā)的實(shí)現(xiàn)示例,感興趣的可以了解一下2024-02-02Python深度學(xué)習(xí)實(shí)戰(zhàn)PyQt5安裝與環(huán)境配置過(guò)程詳解
本系列面向 Python 小白,從零開(kāi)始實(shí)戰(zhàn)解說(shuō)應(yīng)用 QtDesigner 進(jìn)行 PyQt5 的項(xiàng)目實(shí)戰(zhàn)。什么叫從零開(kāi)始?從軟件安裝、環(huán)境配置開(kāi)始。不跳過(guò)一個(gè)細(xì)節(jié),不漏掉一行代碼,不省略一個(gè)例圖2021-10-10Django如何簡(jiǎn)單快速實(shí)現(xiàn)PUT、DELETE方法
這篇文章主要介紹了Django如何簡(jiǎn)單快速實(shí)現(xiàn)PUT、DELETE方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07