Python常見庫matplotlib學(xué)習(xí)筆記之畫圖文字的中文顯示_第1頁
Python常見庫matplotlib學(xué)習(xí)筆記之畫圖文字的中文顯示_第2頁
Python常見庫matplotlib學(xué)習(xí)筆記之畫圖文字的中文顯示_第3頁
Python常見庫matplotlib學(xué)習(xí)筆記之畫圖文字的中文顯示_第4頁
Python常見庫matplotlib學(xué)習(xí)筆記之畫圖文字的中文顯示_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔