




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第Python基礎(chǔ)教程之Matplotlib圖形繪制詳解目錄1.引言2.繪制折線圖:3.繪制散點(diǎn)圖4.解決中文顯示問題5.劃分子圖6.總結(jié)
1.引言
以下是Matplotlib的一些主要特點(diǎn):
簡單易用:Matplotlib提供了簡單而直觀的API,使得繪圖變得容易上手和使用。多樣化的圖形:它支持各種常見的圖形類型,包括線圖、散點(diǎn)圖、柱狀圖、餅圖、等高線圖、3D圖等。你可以根據(jù)需求選擇合適的圖形進(jìn)行繪制。高度可定制性:Matplotlib提供了大量的參數(shù)選項(xiàng),你可以自定義圖形的各個(gè)方面,包括線型、顏色、標(biāo)簽、標(biāo)題、網(wǎng)格等,以滿足特定的需求。高質(zhì)量的輸出:Matplotlib能夠生成高質(zhì)量的圖形輸出,支持多種輸出格式,如PNG、JPEG、PDF等,方便在論文、報(bào)告和演示文稿中使用。與NumPy集成:Matplotlib與NumPy緊密集成,可以直接接收NumPy數(shù)組作為輸入數(shù)據(jù),并且能夠方便地處理和呈現(xiàn)這些數(shù)據(jù)。支持交互式繪圖:除了靜態(tài)圖形,Matplotlib還提供了交互式繪圖的功能,可以通過添加交互元素和事件處理來實(shí)現(xiàn)用戶與圖形的交互操作。
首先,確保你已經(jīng)安裝了matplotlib和NumPy模塊,可以通過以下命令來安裝它們:
pipinstallmatplotlibnumpy
接下來,導(dǎo)入需要的模塊:
importmatplotlib.pyplotasplt
importnumpyasnp
2.繪制折線圖:
x=np.linspace(0,2*np.pi,100)#在0到2π之間生成100個(gè)點(diǎn)作為x軸坐標(biāo)
y=np.sin(x)#通過sin函數(shù)生成對應(yīng)的y軸坐標(biāo)
plt.plot(x,y)#繪制折線圖
plt.xlabel('x')#設(shè)置x軸標(biāo)簽
plt.ylabel('y')#設(shè)置y軸標(biāo)簽
plt.title('SinFunction')#設(shè)置標(biāo)題
plt.show()#顯示圖形
3.繪制散點(diǎn)圖
x=np.random.rand(100)#生成100個(gè)隨機(jī)數(shù)作為x軸坐標(biāo)
y=np.random.rand(100)#生成100個(gè)隨機(jī)數(shù)作為y軸坐標(biāo)
plt.scatter(x,y)#繪制散點(diǎn)圖
plt.xlabel('x')#設(shè)置x軸標(biāo)簽
plt.ylabel('y')#設(shè)置y軸標(biāo)簽
plt.title('散點(diǎn)圖')#設(shè)置標(biāo)題
plt.show()#顯示圖形
繪制的圖形如下,我們可以看到,標(biāo)題本應(yīng)當(dāng)顯示散點(diǎn)圖,但實(shí)際上顯示的卻是三個(gè)小方格。為什么會(huì)這樣呢
原因在于matplotlib的作者在設(shè)計(jì)時(shí)并沒有直接支持中文,主要原因是中文字體渲染較為復(fù)雜,并且涉及到不同操作系統(tǒng)、字體庫和編程環(huán)境的差異。這使得在繪制中文時(shí)可能遇到各種字體顯示問題,例如亂碼、錯(cuò)位等。但是,我們可以通過一些方法來解決這個(gè)問題。
4.解決中文顯示問題
在使用matplotlib繪圖時(shí)出現(xiàn)中文顯示問題,可以按照以下步驟解決:
1、配置字體路徑
這種方法是墻裂不推薦的,原因是需要修改matplotlib本身的配置文件,同樣的代碼換個(gè)環(huán)境執(zhí)行,可能中文就顯示異常了,但也在這介紹一下。找到系統(tǒng)中已安裝的中文字體文件,通常位于Windows的C:\Windows\Fonts目錄下,或者其他操作系統(tǒng)中類似的位置。你也可以使用如下代碼查看:
importmatplotlib.font_managerasfm
#獲取系統(tǒng)中所有已安裝的字體信息
font_info=fm.findSystemFonts()
#輸出每個(gè)字體的名稱和路徑
forfont_pathinfont_info:
font_prop=fm.FontProperties(fname=font_path)
font_name=font_prop.get_name()
print(f"FontName:{font_name}")
print(f"FontPath:{font_path}\n")
將字體文件路徑添加到matplotlib的配置文件中。可以在Python中執(zhí)行以下代碼查看matplotlibrc配置文件的所在路徑。
importmatplotlib
print(matplotlib.matplotlib_fname())
找到下圖所示這幾行配置,這里我將sans-serif改成微軟雅黑字體:MicrosoftYaHei,并取消這幾行的注釋,運(yùn)行后可以看到中文正常顯示。
2.修改rcParams來達(dá)到效果,這種方法適合用于修改默認(rèn)字體、默認(rèn)樣式等,對于字體個(gè)性化需求較高的圖形,不建議使用此方法。
importmatplotlib.pyplotasplt
#####################################
frommatplotlibimportrcParams
rcParams['font.family']='MicrosoftYaHei'
3.設(shè)置FontProperties,推薦使用此方法來對字體進(jìn)行設(shè)置,比較靈活
importmatplotlib.pyplotasplt
importnumpyasnp
frommatplotlib.font_managerimportFontProperties
microsoft_yahei_font=FontProperties('MicrosoftYaHei')
fang_song_font=FontProperties(fname=r'C:\Windows\Fonts\simfang.ttf')
x=np.random.rand(100)#生成100個(gè)隨機(jī)數(shù)作為x軸坐標(biāo)
y=np.random.rand(100)#生成100個(gè)隨機(jī)數(shù)作為y軸坐標(biāo)
plt.scatter(x,y)#繪制散點(diǎn)圖
plt.xlabel('x軸')#設(shè)置x軸標(biāo)簽
plt.ylabel('y軸',fontproperties=microsoft_yahei_font)#設(shè)置y軸標(biāo)簽
plt.title('散點(diǎn)圖',fontproperties=fang_song_font)#設(shè)置標(biāo)題
plt.show()
繪制的圖形中,可以看到上述設(shè)置字體及未設(shè)置的區(qū)別,推薦使用此方法。
5.劃分子圖
在Matplotlib中,使用子圖(Subplot)可以在一個(gè)繪圖窗口中創(chuàng)建多個(gè)小的坐標(biāo)系,從而將多個(gè)圖形放置在同一個(gè)圖像中,并進(jìn)行靈活的布局。
importmatplotlib.pyplotasplt
frommatplotlib.font_managerimportFontProperties
importnumpyasnp
#設(shè)置字體為微軟雅黑
font=FontProperties('MicrosoftYaHei')
#生成隨機(jī)數(shù)據(jù)
categories=['A','B','C','D']
values=np.random.rand(len(categories))
#創(chuàng)建一個(gè)包含兩個(gè)子圖的畫布
fig,ax=plt.subplots(2,1)
#在第一個(gè)子圖上繪制柱狀圖
ax[0].bar(categories,values)
ax[0].set_title('柱狀圖',fontproperties=font)
#在第二個(gè)子圖上繪制另一個(gè)餅圖
#生成隨機(jī)數(shù)據(jù)
sizes=np.random.rand(len(categories))
ax[1].pie(sizes,labels=categories,autopct='%1.1f%%')
ax[1].set_title('帶百分比的餅圖',fontproperties=font)
#調(diào)整子圖之間的間距和布局
plt.tight_layout()
#顯示圖形
plt.show()
通過調(diào)整subplots()函數(shù)的參數(shù),你可以創(chuàng)建不同尺寸和布局的子圖,以滿足你的需求。同時(shí),你也可以使用其他的matplotlib繪圖函數(shù)在子圖中繪制各種類型的圖形。
6.總結(jié)
Python的Matplotlib是一個(gè)功能強(qiáng)大的數(shù)據(jù)可視化庫,可以用于創(chuàng)建各種類型的靜態(tài)、動(dòng)態(tài)和交互式圖形。它提供了廣泛的繪圖選項(xiàng)和配置參數(shù),使用戶能夠根據(jù)自己的需求定制圖形。常見的一些用法如下:
1、使用不同的matplotlib繪圖函數(shù)創(chuàng)建所需的圖形,如折線圖、散點(diǎn)圖、柱狀圖、餅圖等。常用的繪圖函數(shù)有plt.plot()、plt.scatter()、plt.bar()、plt.pie()等。
2、配置圖形屬性:可以使用各種屬性設(shè)置函數(shù)來自定義圖形,如標(biāo)題、坐標(biāo)軸標(biāo)簽、圖例、線型、顏色、標(biāo)記符號(hào)等。常用的屬性設(shè)置函數(shù)有plt.title()、plt.xlabel()、plt.ylabel()、plt.legend()、plt.grid()等。
3、顯示圖形:通過調(diào)用plt.show()函數(shù)顯示圖形。該函數(shù)可以在所有繪圖操作完成后調(diào)用,也可以在每次繪制完一個(gè)子圖后調(diào)用,以便逐個(gè)顯示子圖。
4、保存圖形:通過使用plt.savefig()函數(shù)將繪制的圖形保存為文件,常見的文件格式包括PNG、JPEG、PDF等。
5、繪制多個(gè)子圖:使用plt.subplots()函數(shù)可以創(chuàng)建一個(gè)包含多個(gè)子圖的畫布,然后在不同的子圖上繪制不同的圖形??梢允褂盟饕虿季謪?shù)來控制子圖的位置和排列方式。
Matplotlib提供了豐富的樣式選項(xiàng)和布局控制功能,可以幫助美化圖形和調(diào)整圖形的形狀、大小和比例。除了基本的Matplotlib庫外,還有一些擴(kuò)展庫可以進(jìn)一步增強(qiáng)Matplotlib的功能。例如,Seabor
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 機(jī)電工程職稱考試2025年必知策略及試題及答案
- 信息系統(tǒng)項(xiàng)目管理的跨文化溝通試題及答案
- 科技進(jìn)步下的2025年軟件設(shè)計(jì)師考試試題及答案
- 公共政策與民間組織合作試題及答案
- 西方政治制度變革中的歷史教訓(xùn)試題及答案
- 公共政策與環(huán)境保護(hù)的互動(dòng)試題及答案
- 機(jī)電工程消耗品管理試題及答案
- 家庭教育指導(dǎo)服務(wù)市場供需矛盾與行業(yè)規(guī)范化發(fā)展研究報(bào)告
- 2025年洗衣機(jī)電腦程控器項(xiàng)目合作計(jì)劃書
- 數(shù)字藝術(shù)作品版權(quán)交易2025年市場前景報(bào)告:創(chuàng)作與保護(hù)策略研究
- GMS基礎(chǔ)知識(shí)的教案
- 第5章 鋼梁計(jì)算原理
- GB/T 3452.4-2020液壓氣動(dòng)用O形橡膠密封圈第4部分:抗擠壓環(huán)(擋環(huán))
- 西南科技大學(xué)機(jī)械原理期末考試復(fù)習(xí)題及答案
- 讀后續(xù)寫:騎馬迷路 遇困難不放棄 課件 【知識(shí)建構(gòu)+點(diǎn)播拓展】高考英語作文備考
- 2023年宜興市云湖茶禪文旅發(fā)展有限公司招聘筆試題庫及答案解析
- Unit2Reading2知識(shí)點(diǎn)課件-高中英語牛津譯林版(2020)選擇性必修第一冊
- 交通協(xié)管員勞務(wù)外包服務(wù)方案
- 頂管工程頂進(jìn)記錄表
- 呼吸道病原體抗體檢測及臨床應(yīng)用課件
- 戰(zhàn)略管理教學(xué)ppt課件(完整版)
評(píng)論
0/150
提交評(píng)論