版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第Python常見庫matplotlib學(xué)習(xí)筆記之畫圖文字的中文顯示目錄系列文章目錄前言一、matplotlib是什么?二、使用方法1.尋找所需要的字體(1)下載字體(2)放置到合適路徑(3)刷新字體緩存(4)確認(rèn)字體文件是否已經(jīng)安裝2.設(shè)置字體(1)全局設(shè)置字體(2)局部設(shè)置字體(強(qiáng)烈推薦)總結(jié)
系列文章目錄
第一章Python常見庫matplotlib之畫圖文字的中文顯示第二章Python常見庫matplotlib之畫圖中各個(gè)模塊的含義及修改方式第三章Python常見庫matplotlib之多個(gè)子圖繪圖
前言
在數(shù)據(jù)可視化時(shí),常常需要使用圖例來解釋圖中不同元素的含義。在論文寫作時(shí)尤其是畢業(yè)論文寫作時(shí),需要圖中文字都顯示中文,數(shù)字都用新羅馬體。然而,matplotlib庫默認(rèn)是不支持中文顯示的,因此在繪制圖例時(shí),需要進(jìn)行一些設(shè)置才能顯示中文。本篇文章將介紹如何使用matplotlib庫繪制中文圖例。
一、matplotlib是什么?
Matplotlib是一個(gè)用于創(chuàng)建可視化圖表的Python庫,它支持多種圖表類型,包括線圖、散點(diǎn)圖、條形圖、餅圖、3D圖等,是數(shù)據(jù)分析、科學(xué)計(jì)算和工程應(yīng)用中最常用的可視化工具之一。Matplotlib庫廣泛用于Python的數(shù)據(jù)分析、機(jī)器學(xué)習(xí)、科學(xué)計(jì)算等領(lǐng)域,以及研究、教育和工業(yè)生產(chǎn)中。它是一個(gè)開源軟件,可以在Python的多個(gè)版本中使用。
matplotlib庫的安裝很簡單
pipinstallmatplotlib
本文使用的matplotlib版本為3.6.2??梢暂斎胂旅娴拿钪苯影惭b該版本。
pipinstallmatplotlib==3.6.2
二、使用方法
以下面一段簡單代碼為示例,來講述如何改變繪圖中的文字。
importnumpyasnp
importmatplotlib.pyplotasplt
#繪制曲線
x=np.linspace(0,2*np.pi,100)
y1=np.sin(x)
y2=np.cos(x)
plt.plot(x,y1,label=u'正弦曲線')
plt.plot(x,y2,label=u'余弦曲線')
plt.xlabel('橫軸')
plt.ylabel('縱軸')
plt.title('函數(shù)')
#添加圖例
plt.legend(loc='upperright')
#顯示圖像
plt.show()
上面這段代碼實(shí)現(xiàn)了繪制正弦和余弦曲線在同一幅圖上,其顯示結(jié)果是下圖這樣的
可見如果不添加字體設(shè)置,橫縱坐標(biāo)及圖例的中文都是方框。
1.尋找所需要的字體
(1)下載字體
linux一般是不會自帶微軟雅黑、宋體、新羅馬這樣的字體的。我們需要去找。如果你身邊有windows系統(tǒng)的電腦,可以去下面幾個(gè)路徑下去拷貝
字體名稱路徑微軟雅黑C:\Windows\Fonts\msyh.ttc宋體C:\Windows\Fonts\simsun.ttc新羅馬C:\Windows\Fonts\TIMES.TTF
懶得話也可以下載我上傳的字體包
字體文件
提取碼:ehtw
(2)放置到合適路徑
linuxmint下的字體文件一般放在/usr/share/fonts/truetype,如果該目錄不存在,則可以手動創(chuàng)建。一般字體文件都會在truetype文件夾下還有一層文件夾,才到字體文件。
以dejavu為例,就是這樣的。
所以我們也可以創(chuàng)建一個(gè)yahei的文件夾放置其字體文件
#創(chuàng)建yahei文件夾
sudomkdir/usr/share/fonts/truetype/yahei
#拷貝字體文件到該文件夾下
sudocpmsyh.ttc/usr/share/fonts/truetype/yahei/
(3)刷新字體緩存
sudofc-cache-f-v
(4)確認(rèn)字體文件是否已經(jīng)安裝
在終端輸入下面的代碼,可以看到微軟雅黑的安裝路徑
fc-list|grep-iyahei
同理,可以查看新羅馬的
fc-list|grepTIMES
查看宋體的
fc-list|grepSUN
(5)刪除matplotlib的緩存
這一步非常重要,有很多人都會忘記
rmrf~/.cache/matplotlib
2.設(shè)置字體
(1)全局設(shè)置字體
將下面代碼加在之前的代碼前面即可。
#設(shè)置字體
plt.rcParams['font.family']='MicrosoftYaHei'
最終代碼如下:
importnumpyasnp
importmatplotlib.pyplotasplt
#設(shè)置字體
plt.rcParams['font.family']='MicrosoftYaHei'
#plt.rcParams['font.family']='SimSun'
#plt.rcParams['font.family']='TimesNewRoman'
#繪制曲線
x=np.linspace(0,2*np.pi,100)
y1=np.sin(x)
y2=np.cos(x)
plt.plot(x,y1,label=u'正弦曲線')
plt.plot(x,y2,label=u'余弦曲線')
plt.xlabel('橫軸')
plt.ylabel('縱軸')
plt.title('函數(shù)')
#添加圖例
plt.legend(loc='upperright')
#顯示圖像
plt.show()
運(yùn)行代碼,看到繪圖出現(xiàn)中文了。
把plt.rcParams[font.family]=MicrosoftYaHei這行注釋,替換成plt.rcParams[font.family]=SimSun便會顯示宋體。
如果開啟plt.rcParams[font.family]=TimesNewRoman。我們發(fā)現(xiàn)又出現(xiàn)框框了,顯然新羅馬不支持中文顯示,只有數(shù)字變成新羅馬體了。
對不同位置的目標(biāo),設(shè)置不同的字體,可以如下代碼修改
importnumpyasnp
importmatplotlib.pyplotasplt
#設(shè)置字體
plt.rcParams['font.family']='SimSun'
plt.rcParams['font.family']='TimesNewRoman'
#繪制曲線
x=np.linspace(0,2*np.pi,100)
y1=np.sin(x)
y2=np.cos(x)
plt.plot(x,y1,label=u'正弦曲線')
plt.plot(x,y2,label=u'余弦曲線')
#設(shè)置橫軸字體
plt.xlabel('橫軸',fontfamily='SimSun')
#設(shè)置縱軸字體
plt.ylabel('縱軸',fontfamily='SimSun')
#設(shè)置標(biāo)題字體
plt.title('函數(shù)',fontfamily='SimSun')
#設(shè)置刻度字體
plt.xticks(fontfamily='TimesNewRoman')
plt.yticks(fontfamily='TimesNewRoman')
#設(shè)置圖例字體
plt.legend(loc='upperright',fontsize=12,edgecolor='black',fancybox=False,framealpha=1,prop={'family':'SimSun'})
#顯示圖像
plt.show()
最終顯示結(jié)果
(2)局部設(shè)置字體(強(qiáng)烈推薦)
以上的設(shè)置到一臺新機(jī)器上就得重新拷貝或者下載字體文件,似乎有點(diǎn)麻煩?,F(xiàn)在介紹第二種方法,直接把自己放在運(yùn)行程序或者腳本的同級目錄下。這樣字體跟著代碼走,到一個(gè)新環(huán)境下只要安裝了matplotlib就可以直接運(yùn)行。
importnumpyasnp
importmatplotlib.pyplotasplt
importmatplotlib.font_managerasfm
#指定字體
font_path='SIMSUN.TTC'#這里也可以填其他字體的絕對路徑,只填名稱表示本程序與該字體在同一級目錄下
font_prop=fm.FontProperties(fname=font_path,size=12)
en_font_path='TIMES.TTF'#這里也可以填其他字體的絕對路徑,只填名稱表示本程序與該字體在同一級目錄下
en_font_prop=fm.FontProperties(fname=en_font_path,size=12)
x=np.linspace(0,2*np.pi,100)
y1=np.sin(x)
y2=np.cos(x)
plt.plot(x,y1,label=u'正弦曲線')
plt.plot(x,y2,label=u'余弦曲線')
plt.xlabel('橫軸',fontproperties=font_prop)
plt.ylabel('縱軸',fontproperties=font_prop)
plt.title('函數(shù)',fontproperties=font_prop)
plt.xticks(fontproperties=en_font_prop)
plt.yticks(fontpro
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 養(yǎng)老院入住老人衣物洗滌與保養(yǎng)制度
- 2026年永康市信訪局工作人員招聘備考題庫及參考答案詳解1套
- 2026年紹興市外服派駐越城機(jī)關(guān)單位景點(diǎn)講解員招聘備考題庫完整答案詳解
- 2026年漯河市郾城區(qū)事業(yè)單位人才引進(jìn)備考題庫及1套參考答案詳解
- 2026年泉州市醫(yī)學(xué)會招聘工作人員的備考題庫附答案詳解
- 公共交通行業(yè)服務(wù)質(zhì)量評價(jià)制度
- 中國礦業(yè)大學(xué)(北京)2026年度校聘非教師崗位招聘備考題庫完整答案詳解
- 2026年漯河市氣象局人才引進(jìn)備考題庫及完整答案詳解一套
- 中國熱帶農(nóng)業(yè)科學(xué)院湛江實(shí)驗(yàn)站2026年第一批公開招聘工作人員備考題庫完整參考答案詳解
- 企業(yè)員工招聘錄用管理制度
- 當(dāng)兵心理測試試題及答案
- 2025年湖南省公務(wù)員錄用考試《行測》試題及答案解析
- 廈門市人教版八年級上冊期末生物期末試卷
- 2026中國鋼研鋼研納克校園招聘備考考試題庫附答案解析
- 冷庫消防安全培訓(xùn)課件
- 普陀區(qū)一模高三數(shù)學(xué)試卷
- 光熱儲能電站發(fā)電項(xiàng)目項(xiàng)目管理各階段主要任務(wù)
- 2026年中考語文復(fù)習(xí):非連續(xù)性文本閱讀 中考真題練習(xí)題匯編(含答案解析)
- 醫(yī)療工作者榜樣學(xué)習(xí)心得體會
- 部隊(duì)安全駕駛課件
-
評論
0/150
提交評論