Python實現(xiàn)matplotlib顯示中文的方法詳解
本文實例講述了Python實現(xiàn)matplotlib顯示中文的方法。分享給大家供大家參考,具體如下:
【注意】
可能與本文主題無關(guān),不過我還是想指出來:使用matplotlib庫時,下面兩種導(dǎo)入方式是等價的(我指的是等效,當(dāng)然這個說法可以商榷:)
import matplotlib.pyplot as plt
import pylab as plt
【效果圖】

【方式一】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("標(biāo)題", fontproperties=font)
plt.show()
總的來說,很丑陋。
【方式二】 fontproperties
import matplotlib.pyplot as plt
# ...
plt.xlabel("x軸")
plt.ylabel("y軸", fontproperties="SimSun") # 步驟一 (宋體)
plt.title("標(biāo)題", fontproperties="SimHei") # (黑體)
plt.show()
靈活,另一個優(yōu)點:不污染全局字體設(shè)置
【方式三】rcParams
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步驟一(替換sans-serif字體)
plt.rcParams['axes.unicode_minus'] = False # 步驟二(解決坐標(biāo)軸負(fù)數(shù)的負(fù)號顯示問題)
#...
plt.xlabel("x軸")
plt.ylabel("y軸")
plt.title("標(biāo)題")
plt.show()
簡潔的用法。缺點:污染全局字體設(shè)置。(所以需要第二步驟)
【方式四】rc
import matplotlib.pyplot as plt
font = {'family' : 'SimHei',
'weight' : 'bold',
'size' : '16'}
plt.rc('font', **font) # 步驟一(設(shè)置字體的更多屬性)
plt.rc('axes', unicode_minus=False) # 步驟二(解決坐標(biāo)軸負(fù)數(shù)的負(fù)號顯示問題)
#...
plt.xlabel("x軸")
plt.ylabel("y軸")
plt.title("標(biāo)題")
plt.show()
靈活的用法。缺點:影響全局字體(所以需要第二步驟)
【總結(jié)】
方式二用時才設(shè)置,且不會污染全局字體設(shè)置,更靈活
方式三、方式四不需要對字體路徑硬編碼,而且一次設(shè)置,多次使用,更方便。
【測試代碼】
import numpy as np
import matplotlib.pyplot as plt
font = {'family' : 'DFKai-SB',
'weight' : 'bold',
'size' : '16'}
plt.rc('font', **font) # pass in the font dict as kwargs
plt.rc('axes',unicode_minus=False)
x = np.linspace(0, 10, 1000)
y = np.sin(x)
z = np.cos(x**2)
plt.figure(figsize=(8,4))
plt.plot(x,y,label="$sin(x)$",color="red",linewidth=2)
plt.plot(x,z,"b--",label="$cos(x^2)$")
plt.xlabel("x軸")
plt.ylabel("y軸")
plt.title("標(biāo)題")
plt.ylim(-1.2,1.2)
plt.legend()
plt.show()
運行結(jié)果:

【附錄】
一些中文字體的英文名
| 宋體 | SimSun |
| 黑體 | SimHei |
| 微軟雅黑 | Microsoft YaHei |
| 微軟正黑體 | Microsoft JhengHei |
| 新宋體 | NSimSun |
| 新細明體 | PMingLiU |
| 細明體 | MingLiU |
| 標(biāo)楷體 | DFKai-SB |
| 仿宋 | FangSong |
| 楷體 | KaiTi |
| 隸書 | LiSu |
| 幼圓 | YouYuan |
| 華文細黑 | STXihei |
| 華文楷體 | STKaiti |
| 華文宋體 | STSong |
| 華文中宋 | STZhongsong |
| 華文仿宋 | STFangsong |
| 方正舒體 | FZShuTi |
| 方正姚體 | FZYaoti |
| 華文彩云 | STCaiyun |
| 華文琥珀 | STHupo |
| 華文隸書 | STLiti |
| 華文行楷 | STXingkai |
| 華文新魏 | STXinwei |
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python數(shù)學(xué)運算技巧總結(jié)》、《Python圖片操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進階經(jīng)典教程》
希望本文所述對大家Python程序設(shè)計有所幫助。
- Python使用Matplotlib模塊時坐標(biāo)軸標(biāo)題中文及各種特殊符號顯示方法
- Python使用matplotlib繪圖無法顯示中文問題的解決方法
- Python在Matplotlib圖中顯示中文字體的操作方法
- Python中matplotlib中文亂碼解決辦法
- 解決Linux系統(tǒng)中python matplotlib畫圖的中文顯示問題
- python設(shè)置 matplotlib 正確顯示中文的四種方式
- python matplotlib中文顯示參數(shù)設(shè)置解析
- Python matplotlib畫圖與中文設(shè)置操作實例分析
- 如何徹底解決Python中matplotlib不顯示中文的問題詳解(顯示方框)
相關(guān)文章
Pytorch中index_select() 函數(shù)的實現(xiàn)理解
這篇文章主要介紹了Pytorch中index_select() 函數(shù)的實現(xiàn)理解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
django將網(wǎng)絡(luò)中的圖片,保存成model中的ImageField的實例
今天小編就為大家分享一篇django將網(wǎng)絡(luò)中的圖片,保存成model中的ImageField的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08
Python報錯ModuleNotFoundError: No module named&
在嘗試導(dǎo)入TensorBoard模塊時,你可能會遇到ModuleNotFoundError: No module named 'tensorboard'的錯誤,下面我們來分析這個問題并提供解決方案,需要的朋友可以參考下2024-09-09

