日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python bashplotlib_Matplotlib 中文用户指南 7.2 Python shell 中使用 Matplotlib

發(fā)布時間:2025/3/19 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python bashplotlib_Matplotlib 中文用户指南 7.2 Python shell 中使用 Matplotlib 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在 Python shell 中使用 Matplotlib

譯者:飛龍

警告

該頁面的內(nèi)容已嚴(yán)重過時。

默認(rèn)情況下,matplotlib 將繪圖延遲到腳本結(jié)束,因?yàn)槔L圖可能是開銷大的操作,并且你可能不想在每次更改單個屬性時更新繪圖,而是只在所有屬性更改后更新一次。

但是在 python shell 中工作時,通常需要用每個命令更新繪圖,例如,在更改xlabel()或一行的標(biāo)記樣式之后。 雖然這在概念上很簡單,但在實(shí)踐中它可能很棘手,因?yàn)?matplotlib 在底層是一個圖形用戶界面應(yīng)用程序,并擁有一些技巧,使應(yīng)用程序在一個 python shell 正常工作。

使用 IPython 解決

注意

這里描述的模式出于歷史原因仍然存在,但強(qiáng)烈建議不要使用。它污染函數(shù)的命名空間,會影響 python 內(nèi)建設(shè)施,并可能導(dǎo)致錯誤難以跟蹤。 要獲得 IPython 集成而無需導(dǎo)入,使用%matplotlib魔術(shù)命令是首個選擇。 參見 ipython 文檔。

幸運(yùn)的是,一個增強(qiáng)的交互式 python shell,ipython 已經(jīng)找出了所有這些技巧,并且可被 matplotlib 感知,所以當(dāng)你在 pylab 模式下啟動 ipython。

johnh@flag:~> ipython

Python 2.4.5 (#4, Apr 12 2008, 09:09:16)

IPython 0.9.0 -- An enhanced Interactive Python.

In [1]: %pylab

Welcome to pylab, a matplotlib-based Python environment.

For more information, type 'help(pylab)'.

In [2]: x = randn(10000)

In [3]: hist(x, 100)

它為你設(shè)置一切使交互式繪圖工作,就像你期望的那樣。 調(diào)用figure()并彈出圖形窗口,調(diào)用plot()使你的數(shù)據(jù)出現(xiàn)在圖形窗口中。

注意在上面的例子中,我們沒有導(dǎo)入任何 matplotlib 名稱,因?yàn)樵?pylab 模式下,ipython 將自動導(dǎo)入它們。 ipython 還為你啟用交互模式,這會導(dǎo)致每個 pyplot 命令觸發(fā)圖形更新,并且還提供了一個 matplotlib 感知的運(yùn)行命令,來高效運(yùn)行 matplotlib 腳本。 ipython 在運(yùn)行命令期間關(guān)閉交互模式,然后在運(yùn)行結(jié)束時恢復(fù)交互狀態(tài),以便你可以手動繼續(xù)調(diào)整圖形。

ipython 已經(jīng)嵌入了很多最近的作品,從 pylab 支持,到各種 GUI 應(yīng)用程序,所以請檢查 ipython 郵件列表的最新狀態(tài)。

其它 Python 解釋器

如果你不能使用 ipython,并且仍然想在交互式 python shell 使用 matplotlib/pylab,例如,plain-ole 標(biāo)準(zhǔn)的 python 交互式解釋器,你將需要了解什么是 matplotlib 后端 。

有了 TkAgg 后端,它使用 Tkinter 用戶界面工具包,你可以從任意的非 gui python shell 使用 matplotlib。 只需在你的matplotlibrc文件中設(shè)置backend : TkAgg和interactive : True(請參閱自定義 matplotlib)并啟動 python。 然后:

>>> from pylab import *

>>> plot([1,2,3])

>>> xlabel('hi mom')

應(yīng)該能夠開箱即用。 這也可能適用于最新版本的 qt4agg 和 gtkagg 后端,以及 Macintosh 上的 macosx 后端。 注意,在批處理模式下,即從腳本制作圖形時,交互模式可能很慢,因?yàn)樗妹總€命令重繪圖形。 因此,你可能需要仔細(xì)考慮,然后通過matplotlibrc文件而不是使用下一節(jié)中列出的函數(shù),使其作為默認(rèn)行為。

Gui shell 問題最多,因?yàn)樗鼈儽仨氝\(yùn)行主循環(huán),但是交互式繪圖也涉及主循環(huán)。 Ipython 已經(jīng)為 matplotlib 主后端解決了這一切問題。 可能有其他 shell 和 IDE 也可以在交互模式下使用 matplotlib,但一個明顯的候選項(xiàng)不會:python IDLE IDE 是一個不支持 pylab 交互模式的 Tkinter gui 應(yīng)用程序,無論后端是什么。

控制交互式更新

pyplot接口的interactive屬性控制是否在每個pyplot命令上繪制圖畫布。 如果interactive是False,那么每個plot命令都會更新圖形狀態(tài),但只會在顯式調(diào)用draw()時繪制。 當(dāng)interactive為True時,每個pyplot命令都會觸發(fā)繪制。

pyplot接口提供了 4 個有助于交互式控制的命令。

isinteractive()

返回交互式設(shè)置。True|False。

ion()

將交互式模式打開。

ioff()

將交互式模式關(guān)閉。

draw()

強(qiáng)制圖形重新繪制。

當(dāng)處理繪圖開銷很大的大型圖形時,你可能希望臨時關(guān)閉 matplotlib 的交互式設(shè)置來避免性能損失:

>>> #create big-expensive-figure

>>> ioff() # turn updates off

>>> title('now how much would you pay?')

>>> xticklabels(fontsize=20, color='green')

>>> draw() # force a draw

>>> savefig('alldone', dpi=300)

>>> close()

>>> ion() # turn updating back on

>>> plot(rand(20), mfc='g', mec='r', ms=40, mew=4, ls='--', lw=3)

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的python bashplotlib_Matplotlib 中文用户指南 7.2 Python shell 中使用 Matplotlib的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。