Python資料分析之matplotlib中文顯示

2021-10-04 18:34:01 字數 2903 閱讀 1710

以後嘗試將筆記搬到csdn上,希望能幫到有需要的人。

matplotlib的中文顯示問題網上有很多答案,但自己在使用的時候,就算是參考了其他人的答案,也出了一些問題,特此記錄一篇。

**可以在jupyter notebook中執行

import random

import matplotlib.pyplot as plt

%matplotlib inline

# 生成繪圖資料

# x1表示9.1-9.30;x2表示10.1-10.31

# y1表示9月份每天的平均氣溫;y2表示10月份每天的平均氣溫

x1 =

range(30

)x2 =

range(31

)y1 =

[float

(format

(random.uniform(20,

30),'.1f'))

for i in

range(30

)]y2 =

[float

(format

(random.uniform(18,

25),'.1f'))

for i in

range(31

)]plt.plot(x1, y1, label=

'9月'

)plt.plot(x2, y2, label=

'10月'

)plt.title(

'9、10月的平均氣溫變化'

)plt.xlabel(

'日期'

)plt.ylabel(

'溫度'

)plt.legend(title=

'月份'

)

生成:

此時會發現,中所有的中文都無法正常顯示。一般可以採用兩類方法:

方法一:匯入font_manager,自定義myfont,然後在需要中文顯示的語句中,將myfont傳入即可。注意plt.legend()中引數和別的不同。

from matplotlib import font_manager

myfont = font_manager.fontproperties(fname=

'e:/python資料分析/fonts/msyhl.ttc'

)plt.plot(x1, y1, label=

'9月'

)plt.plot(x2, y2, label=

'10月'

)plt.title(

'9、10月的平均氣溫變化'

, fontproperties=myfont)

plt.xlabel(

'日期'

, fontproperties=myfont)

plt.ylabel(

'溫度'

, fontproperties=myfont)

plt.legend(title=

'月份'

, prop=myfont)

方法二:設定font,將font傳入matplotlib.rc()中

import matplotlib

font =

#font中還可以新增引數'weight':'bold', 'size':10

matplotlib.rc(

'font'

,**font)

plt.plot(x1, y1, label=

'9月'

)plt.plot(x2, y2, label=

'10月'

)plt.title(

'9、10月的平均氣溫變化'

)plt.xlabel(

'日期'

)plt.ylabel(

'溫度'

)plt.legend(title=

'月份'

方法二優點:

只需要在開頭設定好,**中不需要設定其他引數;

所有的中文都可以顯示。

方法二缺點:

'family』後的字型名字一定要寫對,否則也是不顯示中文滴。

方法二也可以如下:為表述清晰,稱為方法三

# 顯示中文sans-serif為matplotlib預設的字型,不支援中文

plt.rcparams[

'font.sans-serif']=

['simhei'

]# 正常顯示負號

plt.rcparams[

'axes.unicode_minus']=

false

plt.plot(x1, y1, label=

'9月'

)plt.plot(x2, y2, label=

'10月'

)plt.title(

'9、10月的平均氣溫變化'

)plt.xlabel(

'日期'

)plt.ylabel(

'溫度'

)plt.legend(title=

'月份'

方法二設定成功後,jupyter notebook中的所有程式,中文都可以正常顯示,需要重啟一下,驗證方法三,所以最後一張圖的資料和其他的不同。

plt.legend()中的loc引數表示圖例的位置,不設定時,會自動選擇最好的位置。因此兩張中,圖例的位置也不同。

Python之資料分析(寶可夢資料分析)

在此感謝阿里雲天池平台提供的學習平台,並提供相應的教程供小白們學習資料分析。seaborn庫 seaborn 是基於 python 且非常受歡迎的圖形視覺化庫,在 matplotlib 的基礎上,進行了更高階的封裝,使得作圖更加方便快捷。即便是沒有什麼基礎的人,也能通過極簡的 做出具有分析價值而又十...

python資料分析之Numpy

numpy系統是python的一種開源的數值計算擴充套件 ndarray 多維陣列 所有元素必須是相同型別 ndim屬性,維度個數 shape屬性,各維度大小 dtype屬性,資料型別 coding utf 8 import numpy as np 生成指定維度的隨機多維資料 data np.ran...

Python 資料分析之scipy

scipy是一組專門解決科學計算中各種標準問題域的包的集合,主要包括下面這些包 匯入積分模組 import numpy as np 匯入numpy庫 from scipy import integrate 匯入定積分模組scipy.integrate.quad func,a,b 計算單重積分,引數分...