Python Matplotlib繪圖基礎(chǔ)知識代碼解析
1.Figure和Subplot
import numpy as np import matplotlib.pyplot as plt #創(chuàng)建一個Figure fig = plt.figure() #不能通過空figure繪圖,必須使用add_subplot創(chuàng)建一個或多個subplot #圖像為2x2,第三個參數(shù)為當(dāng)前選中的第幾個 ax1 = fig.add_subplot(2, 2, 1) ax2 = fig.add_subplot(2, 2, 2) ax3 = fig.add_subplot(2, 2, 3) #默認(rèn)在最后一個subplot上繪制 #'k--'為線型選項,繪制黑色虛線 plt.plot(np.random.randn(50).cumsum(), 'k--') print(type(ax1))#<class 'matplotlib.axes._subplots.AxesSubplot'> #直接調(diào)用它們的實例方法就可以在其他格子繪圖 _ = ax1.hist(np.random.randn(100), bins=20, color='k', alpha=0.3) ax2.scatter(np.arange(30), np.arange(30) + 3 * np.random.randn(30)) plt.show()
fig, axes = plt.subplots(2, 2, sharex=True, sharey=True)#創(chuàng)建一個新的Figure,并返回一個已創(chuàng)建subplot對象的NumPy數(shù)組 #可以索引axes[0,1],axes[0][1] ''' plt.subplots的選項 nrows:subplot的行數(shù) ncols:subplot的列數(shù) sharex:所有subplot應(yīng)該使用相同的x軸刻度(調(diào)節(jié)xlim將會影響所有subplot) sharey:所有subplot應(yīng)該使用相同的y軸刻度(調(diào)節(jié)ylim將會影響所有subplot) subplot_kw:用于創(chuàng)建各subplot的關(guān)鍵字字典 **fig_kw:創(chuàng)建figure時其他關(guān)鍵字,如plt.subplots(2,2,figsize=(8,6)) ''' for i in range(2): for j in range(2): axes[i,j].hist(np.random.randn(500),bins=50, color='k',alpha=0.5) #調(diào)整subplot周圍間距 #plt.subplots_adjust(left=None,bottom=None,right=None,top=None,wspace=None,hspace=None) plt.subplots_adjust(wspace=0, hspace=0) plt.show()
2.顏色、標(biāo)記和線型
#ax.plot(x,y,'g--') #ax.plot(x, y, linestyle='--', color='g') #plt.plot(np.random.randn(30).cumsum(), 'ko--') #plt.plot(np.random.randn(30).cumsum(), color='k', linestyle='dashed', marker='o') #線型圖中,非實際數(shù)據(jù)點默認(rèn)是按線性方式插值的,可以通過drawstyle選項修改 data = np.random.randn(30).cumsum() plt.plot(data, 'k--', label='Defalt') plt.plot(data, 'k-', drawstyle='steps-post', label='steps-post') plt.legend(loc='best')
3.刻度、標(biāo)簽和圖例
xlim,xticks,xticklabels之類的方法。它們分別控制圖表的范圍、刻度位置、刻度標(biāo)簽等。
其使用方式有以下兩種:
- 調(diào)用時不帶參數(shù),則返回當(dāng)前參數(shù)值。plt.xlim()
- 調(diào)用時帶參數(shù),則設(shè)置參數(shù)值。plt.xlim([0,10])
這些方法對當(dāng)前或最近創(chuàng)建的AxesSubplot起作用
對應(yīng)在subplot對象上的兩個方法,如ax.get_xlim和ax.set_xlim
3.1.設(shè)置標(biāo)題、軸標(biāo)簽、刻度以及刻度標(biāo)簽
fig = plt.figure() ax = fig.add_subplot(1,1,1) ax.plot(np.random.randn(1000).cumsum()) #改變X軸的刻度,最簡單的方法是使用set_xticks和set_xticklabels。 #前者告訴刻度放在數(shù)據(jù)范圍中的哪些位置,默認(rèn)情況下,這些位置是刻度標(biāo)簽,可以用set_xticklabels設(shè)置。 a=ax.set_xticks([0,250,500,750,1000]) b=ax.set_xticklabels(['one','two','three','four','five'],rotation=30,fontsize='small') ax.set_xlabel('Stages') plt.show()
3.2.添加圖例(legend)、注解以及在Subplot上繪圖
兩種方式,最簡單的是在添加subplot的時候傳入label參數(shù)
fig = plt.figure() ax = fig.add_subplot(1,1,1) ax.plot(np.random.randn(1000).cumsum(), 'k', label='one') ax.plot(np.random.randn(1000).cumsum(), 'k--', label='two') ax.plot(np.random.randn(1000).cumsum(), 'k.', label='three') ax.legend(loc='best') #loc表示將圖例放在哪 #從圖例中去除一個或多個元素,不傳入label或label='_nolegend_'即可 #注解以及在Subplot上繪圖 #注解可以通過text,arrow和annotate等函數(shù)進行添加。 #text可以將文本繪制在圖標(biāo)的指定坐標(biāo)(x,y),還可以加上一些自定義格式 #ax.text(x ,y, 'Hello world!',family='monosapce',fontsize=10) plt.show()
3.3.將圖表保存到文件
plt.savefig('filepath.svg')
plt.savefig('filepath.svg', dpi=400,bbox_inches='tight')
Figure.savefig參數(shù)
- fname:路徑,包含設(shè)置文件格式(如.pdf等)
- dpi:圖像分辨率,默認(rèn)100
- facecolor、edgecolor:圖像背景色,默認(rèn)為'w'(白色)
- format:顯示設(shè)置文件格式
- bbox_inches:圖像需要保存的部分。'tight',將嘗試剪除圖像周圍的空白部分
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 使用Python對Syslog信息進行分析并繪圖的實現(xiàn)
- 用Python的繪圖庫(matplotlib)繪制小波能量譜
- python matplotlib繪圖實現(xiàn)刪除重復(fù)冗余圖例的操作
- python 繪圖模塊matplotlib的使用簡介
- python之 matplotlib和pandas繪圖教程
- python繪圖模塊之利用turtle畫圖
- python繪圖pyecharts+pandas的使用詳解
- Python下使用Trackbar實現(xiàn)繪圖板
- Python數(shù)據(jù)可視化常用4大繪圖庫原理詳解
- Python三維繪圖之Matplotlib庫的使用方法
- Python繪圖之二維圖與三維圖詳解
- Python繪圖之柱形圖繪制詳解
- Python實現(xiàn)手繪圖效果實例分享
- Python實戰(zhàn)之畫哆啦A夢(超詳細(xì)步驟)
相關(guān)文章
Python基礎(chǔ)語法之變量與數(shù)據(jù)類型詳解
這篇文章主要為大家詳細(xì)介紹了Python基礎(chǔ)語法中變量與數(shù)據(jù)類型的用法,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Python有一定的幫助,感興趣的可以了解一下2022-07-07python3+selenium獲取頁面加載的所有靜態(tài)資源文件鏈接操作
這篇文章主要介紹了python3+selenium獲取頁面加載的所有靜態(tài)資源文件鏈接操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05Python3+selenium實現(xiàn)cookie免密登錄的示例代碼
這篇文章主要介紹了Python3+selenium實現(xiàn)cookie免密登錄的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03利用Python代碼實現(xiàn)模擬動態(tài)指針時鐘
這篇文章主要為大家詳細(xì)介紹了如何利用python和C++代碼實現(xiàn)模擬動態(tài)指針時鐘,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下2023-04-04python機器學(xué)習(xí)高數(shù)篇之泰勒公式
這篇文章主要介紹了python機器學(xué)習(xí)高數(shù)篇之函數(shù)極限和導(dǎo)數(shù),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-08-08跟老齊學(xué)Python之大話題小函數(shù)(2)
上篇文章我們講訴了map 和lambda函數(shù)的使用,本文我們繼續(xù)來看看reduce和filter函數(shù),有需要的朋友可以參考下2014-10-10pytest用例間參數(shù)傳遞的兩種實現(xiàn)方式示例
pytest提供了許多運行命令以供定制化運行某一類測試用例或者某個測試用例等,下面這篇文章主要給大家介紹了關(guān)于pytest用例間參數(shù)傳遞的兩種實現(xiàn)方式,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-12-12Python算法輸出1-9數(shù)組形成的結(jié)果為100的所有運算式
這篇文章主要介紹了Python算法輸出1-9數(shù)組形成的結(jié)果為100的所有運算式,然后介紹了另外一個相關(guān)實例,具體內(nèi)容請參閱正文,需要的朋友可以參考下。2017-11-11從0到1使用python開發(fā)一個半自動答題小程序的實現(xiàn)
這篇文章主要介紹了從0到1使用python開發(fā)一個半自動答題小程序的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05