matplotlib 中文顯示解決方案

2021-09-29 15:37:23 字數 2019 閱讀 3739

【方式一】fontproperties

import matplotlib.pyplot as plt

from matplotlib.font_manager import fontproperties # 步驟一

font = fontproperties(fname=r"c:\windows\fonts\simsun.ttc", size=14) # 步驟二

plt.xlabel("x軸", fontproperties=font) # 步驟三

plt.ylabel("y軸", fontproperties=font)

plt.title("標題", fontproperties=font)

plt.show()

總的來說,很醜陋。

【方式二】 fontproperties

import matplotlib.pyplot as plt

plt.xlabel("x軸")

plt.ylabel("y軸", fontproperties="simsun") # 步驟一 (宋體)

plt.title("標題", fontproperties="simhei") # (黑體)

plt.show()

靈活,另乙個優點:不汙染全域性字型設定

【方式三】rcparams

import matplotlib.pyplot as plt

plt.rcparams['font.sans-serif'] = ['simhei'] # 步驟一(替換sans-serif字型)

plt.rcparams['axes.unicode_minus'] = false # 步驟二(解決座標軸負數的負號顯示問題)

plt.xlabel("x軸")

plt.ylabel("y軸")

plt.title("標題")

plt.show()

簡潔的用法。缺點:汙染全域性字型設定。(所以需要第二步驟)

【方式四】rc

import matplotlib.pyplot as plt

font =

plt.rc('font', **font) # 步驟一(設定字型的更多屬性)

plt.rc('axes', unicode_minus=false) # 步驟二(解決座標軸負數的負號顯示問題)

plt.xlabel("x軸")

plt.ylabel("y軸")

plt.title("標題")

plt.show()

靈活的用法。缺點:影響全域性字型(所以需要第二步驟)

【總結】

方式二用時才設定,且不會汙染全域性字型設定,更靈活

方式三、方式四不需要對字型路徑硬編碼,而且一次設定,多次使用,更方便。

中文字型的英文名

宋體     simsun

黑體 simhei

微軟雅黑 microsoft yahei

微軟正黑體 microsoft jhenghei

新宋體 nsimsun

新細明體 pmingliu

細明體 mingliu

標楷體 dfkai-sb

仿宋 fangsong

楷體 kaiti

隸書:lisu

幼圓:youyuan

華文細黑:stxihei

華文楷體:stkaiti

華文宋體:stsong

華文中宋:stzhongsong

華文仿宋:stfangsong

方正舒體:fzshuti

方正姚體:fzyaoti

華文彩雲:stcaiyun

華文琥珀:sthupo

華文隸書:stliti

華文行楷:stxingkai

華文新魏:stxinwei

matplotlib顯示中文

大致就是matplotlib庫中沒有中文字型。1 我安裝的anaconda,這是對應的matplotlib的字型所在資料夾 怎麼找到matplotlib配置資料夾所在,下面解決方案會敘述,easy man c anaconda64 lib site packages matplotlib mpl d...

matplotlib顯示中文

import matplotlib import matplotlib.pyplot as plt 首先看有哪些字型可選 for i in sorted f.name for f in matplotlib.font manager.fontmanager.ttflist print i 從這裡面選...

matplotlib顯示中文

注意 import matplotlib.pyplot as plt import pylab as plt 效果圖 方式一 fontproperties import matplotlib.pyplot as plt from matplotlib.font manager import font...