以後嘗試將筆記搬到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 計算單重積分,引數分...