很多科研工作者熟悉matlab工具,用matlab來做仿真,畫圖,以及各種算法優(yōu)化,matlab的鬼斧神工以及效率性能得心應(yīng)手,令人愛不釋手。但是matlab畢竟那么大,處處用matlab來做畫圖形,明顯不科學(xué)。今天將的Python中的一個(gè)比較牛逼的畫圖庫,就是類似matlab的matplotlib庫,這是一個(gè)能畫2D平面圖的,各種統(tǒng)計(jì)圖都能畫的工具。
基本上matlab能畫的圖,在matplotlib上都能畫,如果有不會的可以直接來問我。畢竟那么多個(gè)方法,也不能都講述。我用到這個(gè)庫是因?yàn)榕龅揭粋€(gè)二維數(shù)組,要渲染出圖形。由于剛接觸深度圖這個(gè)概念,所以當(dāng)時(shí)很不能理解為什么一個(gè)二維數(shù)組就是一幅圖。
代碼也比較簡單,只要將二維數(shù)組加進(jìn)去即可
用這個(gè)庫來畫圖效果還是很不錯的,而且主要是依賴的運(yùn)行環(huán)境小,不需要大量的代碼。當(dāng)然如果你要修改坐標(biāo)軸的精度,或者添加標(biāo)簽legend,都是可以的。
這個(gè)畫圖工具也支持動態(tài)庫刷新,在交互方面也是相當(dāng)牛逼的。無論你是同時(shí)去刷新多張圖,還是同一張圖幀率提高,都是非??斓摹?/p>
pyplot.ion()是matplotlib的顯示模式轉(zhuǎn)換為交互模式。即使在腳本中遇到pyplot.show(),代碼還是會繼續(xù)執(zhí)行。如果你理解了同步和異步的話,那么會很容易理解交互模式和阻塞模式。
阻塞模式跟同步的概念一樣,打開一個(gè)窗口以后必須關(guān)掉才能打開下一個(gè)新的窗口。所以說阻塞模式你是無法同時(shí)畫出多個(gè)窗口的,pyplot.plot()或pyplot.imshow()是直接畫出圖像,需要show后才能顯示圖像。
交互模式和異步的概念一樣,可以同時(shí)顯示并刷新多個(gè)窗口。遇到pyplot.plot(x)或者 pyplot.imshow()是直接畫出圖像,不需要show()。需要特別注意的是,如果使用ion()命令開啟了交互模式,沒有使用ioff()關(guān)閉的話,則圖像會一閃而過,并不會常留。要想防止這種情況,需要在pyplot.show()之前加上ioff()命令。
兔云程序
致力于推廣編程教程,服務(wù)程序員
20篇原創(chuàng)內(nèi)容
公眾號