Python實(shí)現(xiàn)matplotlib顯示中文的方法詳解
本文實(shí)例講述了Python實(shí)現(xiàn)matplotlib顯示中文的方法。分享給大家供大家參考,具體如下:
【注意】
可能與本文主題無關(guān),不過我還是想指出來:使用matplotlib庫時(shí),下面兩種導(dǎo)入方式是等價(jià)的(我指的是等效,當(dāng)然這個(gè)說法可以商榷:)
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()
靈活,另一個(gè)優(yōu)點(diǎn):不污染全局字體設(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ù)號(hào)顯示問題)
#...
plt.xlabel("x軸")
plt.ylabel("y軸")
plt.title("標(biāo)題")
plt.show()
簡(jiǎn)潔的用法。缺點(diǎn):污染全局字體設(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ù)號(hào)顯示問題)
#...
plt.xlabel("x軸")
plt.ylabel("y軸")
plt.title("標(biāo)題")
plt.show()
靈活的用法。缺點(diǎn):影響全局字體(所以需要第二步驟)
【總結(jié)】
方式二用時(shí)才設(shè)置,且不會(huì)污染全局字體設(shè)置,更靈活
方式三、方式四不需要對(duì)字體路徑硬編碼,而且一次設(shè)置,多次使用,更方便。
【測(cè)試代碼】
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()
運(yùn)行結(jié)果:

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

