Python Matplotlib繪圖基礎(chǔ)知識(shí)代碼解析
1.Figure和Subplot
import numpy as npimport matplotlib.pyplot as plt#創(chuàng)建一個(gè)Figurefig = plt.figure()#不能通過(guò)空f(shuō)igure繪圖,必須使用add_subplot創(chuàng)建一個(gè)或多個(gè)subplot#圖像為2x2,第三個(gè)參數(shù)為當(dāng)前選中的第幾個(gè)ax1 = fig.add_subplot(2, 2, 1)ax2 = fig.add_subplot(2, 2, 2)ax3 = fig.add_subplot(2, 2, 3)#默認(rèn)在最后一個(gè)subplot上繪制#’k--’為線型選項(xiàng),繪制黑色虛線plt.plot(np.random.randn(50).cumsum(), ’k--’)print(type(ax1))#<class ’matplotlib.axes._subplots.AxesSubplot’>#直接調(diào)用它們的實(shí)例方法就可以在其他格子繪圖_ = 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)建一個(gè)新的Figure,并返回一個(gè)已創(chuàng)建subplot對(duì)象的NumPy數(shù)組#可以索引axes[0,1],axes[0][1]’’’plt.subplots的選項(xiàng) nrows:subplot的行數(shù)ncols:subplot的列數(shù)sharex:所有subplot應(yīng)該使用相同的x軸刻度(調(diào)節(jié)xlim將會(huì)影響所有subplot)sharey:所有subplot應(yīng)該使用相同的y軸刻度(調(diào)節(jié)ylim將會(huì)影響所有subplot)subplot_kw:用于創(chuàng)建各subplot的關(guān)鍵字字典**fig_kw:創(chuàng)建figure時(shí)其他關(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í)際數(shù)據(jù)點(diǎn)默認(rèn)是按線性方式插值的,可以通過(guò)drawstyle選項(xiàng)修改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í)不帶參數(shù),則返回當(dāng)前參數(shù)值。plt.xlim() 調(diào)用時(shí)帶參數(shù),則設(shè)置參數(shù)值。plt.xlim([0,10])這些方法對(duì)當(dāng)前或最近創(chuàng)建的AxesSubplot起作用
對(duì)應(yīng)在subplot對(duì)象上的兩個(gè)方法,如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軸的刻度,最簡(jiǎn)單的方法是使用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上繪圖
兩種方式,最簡(jiǎn)單的是在添加subplot的時(shí)候傳入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表示將圖例放在哪#從圖例中去除一個(gè)或多個(gè)元素,不傳入label或label=’_nolegend_’即可#注解以及在Subplot上繪圖#注解可以通過(guò)text,arrow和annotate等函數(shù)進(jìn)行添加。#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’,將嘗試剪除圖像周圍的空白部分以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. jsp文件下載功能實(shí)現(xiàn)代碼2. phpstudy apache開(kāi)啟ssi使用詳解3. jsp實(shí)現(xiàn)登錄驗(yàn)證的過(guò)濾器4. Xml簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理5. 詳解瀏覽器的緩存機(jī)制6. .Net加密神器Eazfuscator.NET?2023.2?最新版使用教程7. 如何在jsp界面中插入圖片8. JSP之表單提交get和post的區(qū)別詳解及實(shí)例9. ASP動(dòng)態(tài)網(wǎng)頁(yè)制作技術(shù)經(jīng)驗(yàn)分享10. .Net Core和RabbitMQ限制循環(huán)消費(fèi)的方法
