Matplotlib是Python中一個(gè)非常流行的數(shù)據(jù)可視化庫(kù),但是在使用過程中,可能會(huì)出現(xiàn)中文亂碼的問題,這是因?yàn)镸atplotlib默認(rèn)使用的字體不支持中文字符。本文將介紹三種解決方案。
在Matplotlib中,可以通過修改默認(rèn)字體的方式解決中文亂碼的問題。具體步驟如下:
導(dǎo)入Matplotlib庫(kù)和rcParams模塊:
python
import matplotlib.pyplot as plt
from matplotlib import rcParams
修改rcParams字典中的font.family
參數(shù),將其設(shè)置為支持中文的字體,例如SimHei或者M(jìn)icrosoft YaHei:
python
rcParams['font.family'] = 'SimHei'
下面是一個(gè)使用方案一的示例:
import matplotlib.pyplot as plt from matplotlib import rcParams rcParams['font.family'] = 'SimHei' plt.plot([1, 2, 3], [4, 5, 6]) plt.title("中文標(biāo)題") plt.xlabel("橫軸") plt.ylabel("縱軸") plt.show()
除了修改默認(rèn)字體,還可以使用自定義的字體文件來解決中文亂碼的問題。具體步驟如下:
導(dǎo)入FontProperties模塊:
python
from matplotlib.font_manager import FontProperties
創(chuàng)建一個(gè)FontProperties對(duì)象,并指定字體文件的路徑:
python
font = FontProperties(fname=r'/path/to/font_file.ttf')
在繪圖時(shí),將需要顯示中文的地方傳入FontProperties對(duì)象即可:
python
plt.title("中文標(biāo)題", fontproperties=font)
plt.xlabel("橫軸", fontproperties=font)
plt.ylabel("縱軸", fontproperties=font)
下面是一個(gè)使用方案二的示例:
import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties font = FontProperties(fname=r'/path/to/font_file.ttf') plt.plot([1, 2, 3], [4, 5, 6]) plt.title("中文標(biāo)題", fontproperties=font) plt.xlabel("橫軸", fontproperties=font) plt.ylabel("縱軸", fontproperties=font) plt.show()
Seaborn是一個(gè)基于Matplotlib的高級(jí)數(shù)據(jù)可視化庫(kù),它默認(rèn)支持中文,因此使用Seaborn也是解決中文亂碼問題的一種簡(jiǎn)單方法。具體步驟如下:
導(dǎo)入Seaborn庫(kù):
python
import seaborn as sns
使用Seaborn提供的繪圖函數(shù)繪制圖形即可:
python
sns.lineplot([1, 2, 3], [4, 5, 6])
plt.title("中文標(biāo)題")
plt.xlabel("橫軸")
plt.ylabel("縱軸")
plt.show()
下面是一個(gè)使用方案三的示例:
import seaborn as sns import matplotlib.pyplot as plt sns.lineplot([1, 2, 3], [4, 5, 6]) plt.title("中文標(biāo)題") plt.xlabel("橫軸") plt.ylabel("縱軸") plt.show()
以上是解決Matplotlib中文亂碼問題的三種方案。
本站文章如無特殊說明,均為本站原創(chuàng),如若轉(zhuǎn)載,請(qǐng)注明出處:Matplotlib中文亂碼的3種解決方案 - Python技術(shù)站
聯(lián)系客服