1 環境:
python3.8 matplotlib deepin-linux深度操作系統。
2 方法一:rcParams法:(推薦級别:★☆☆☆☆)
===================
2.1 代碼:
#---第一步:導入模塊---
import matplotlib.pyplot as plt
import numpy as np
#---第二步:字體設置---
# 在notebook 裡,要設置下面A和B行才能顯示中文
plt.rcParams['font.family'] = ['sans-serif'] #A行,顯示中文
# 在 PyCharm 裡,隻要B行,上面的一行可以删除
plt.rcParams['font.sans-serif'] = ['SimHei'] #B行,顯示中文
# 用來顯示負号,額外設置
plt.rcParams['axes.unicode_minus'] = False #C行,顯示正負号,add
#---第三步:畫布定義---
# 設置一個畫布大小為:8 x 6, 分辨率為 80像素/每英寸
plt.figure(figsize=(8, 6), dpi=80)
# 1個子圖為1x1
plt.subplot(1, 1, 1)
#---第四步:數量---
# 柱子總數
N = 5
# 包含每個柱子對應值的序列
values = (24, 30, 36, 21, 44)
# 包含每個柱子下标的序列
index = np.arange(N)
# 柱子的寬度
width = 0.35
#---第五步:繪圖---
# 繪制柱狀圖, 每根柱子的顔色為粉色
plt.bar(index, values, width, label="2020年的5個月的銷售量", color="pink")
# 設置橫軸标簽
plt.xlabel('部門')
# 設置縱軸标簽
plt.ylabel('銷售量')
# 添加标題
plt.title('rcParams法顯示中文')
# 添加縱橫軸的刻度
plt.xticks(index, ('Jan', 'Fub', 'Mar', 'Apr', 'May'))
plt.yticks(np.arange(0, 81, 10))
# 添加圖例和位置設置
plt.legend(loc="upper right")
plt.show()
2.2 效果圖:
3 方法二:FontProperties法:(推薦級别:★★☆☆☆)
=====================
3.1 代碼:
#---第一步:導入模塊---
import matplotlib.pyplot as plt
import numpy as np
#---第二步:字體設置---
from matplotlib.font_manager import FontProperties
#自己指定字體:本機hwfs=hwfs,放在根目錄下
font = FontProperties(fname='hwfs.ttf', size=16)
#---第三步:畫布定義---
# 設置一個畫布大小為:8 x 6, 分辨率為 80像素/每英寸
plt.figure(figsize=(8, 6), dpi=80)
# 1個子圖為1x1
plt.subplot(1, 1, 1)
#---第四步:數量---
# 柱子總數
N = 5
# 包含每個柱子對應值的序列
values = (24, 30, 36, 21, 44)
# 包含每個柱子下标的序列
index = np.arange(N)
# 柱子的寬度
width = 0.35
#---第五步:繪圖---
# 繪制柱狀圖, 每根柱子的顔色為粉色,label是顯示在圖例裡的文字
plt.bar(index, values, width, label="2020年的5個月的銷售量", color="pink",)
# 設置橫軸标簽
plt.xlabel('部門',fontproperties=font) #add:fontproperties=font
# 設置縱軸标簽
plt.ylabel('銷售量',fontproperties=font) #add:fontproperties=font
# 添加标題
plt.title('FontProperties法顯示中文',fontproperties=font) #add:fontproperties=font
# 添加縱橫軸的刻度
plt.xticks(index, ('Jan', 'Fub', 'Mar', 'Apr', 'May'))
plt.yticks(np.arange(0, 81, 10))
# 添加圖例和位置設置
plt.legend(loc="upper right",prop=font) #注意:add:prop=font
plt.show()
4 方法三:終極法:(推薦指數:★★★★☆)
==============
4.1 也叫:一勞永逸法。
4.2 在site-packages/matplotlib/mpl-data/fonts/ttf包下
比如本機:root下進入
file:///usr/local/python3.8/lib/python3.8/site-packages/matplotlib/mpl-data/fonts/ttf
将自己的已經下載的中文字體:比如hwfs.ttf(華文仿宋字體==用來顯示中文的)放在ttf文件夾下。
4.3 因為matplotlib默認調用的為DejaVuSans.ttf字體文件,所以先将DejaVuSans.ttf複制一個,備份,取名為DejaVuSans_beifen.ttf。
4.4 然後将hwfs.ttf改名為DejaVuSans.ttf,就可以顯示中文了,超級簡單。
===一勞永逸法===
4.5 代碼:代碼超級簡潔。
#---第一步:導入模塊---
import matplotlib.pyplot as plt
import numpy as np
#---第二步:不需要---
#---第三步:畫布定義---
# 設置一個畫布大小為:8 x 6, 分辨率為 80像素/每英寸
plt.figure(figsize=(8, 6), dpi=80)
# 1個子圖為1x1
plt.subplot(1, 1, 1)
#---第四步:數量---
# 柱子總數
N = 5
# 包含每個柱子對應值的序列
values = (24, 30, 36, 21, 44)
# 包含每個柱子下标的序列
index = np.arange(N)
# 柱子的寬度
width = 0.35
#---第五步:繪圖---
# 繪制柱狀圖, 每根柱子的顔色為粉色,label是顯示在圖例裡的文字
plt.bar(index, values, width, label="2020年的5個月的銷售量", color="pink",)
# 設置橫軸标簽
plt.xlabel('部門')
# 設置縱軸标簽
plt.ylabel('銷售量')
# 添加标題
plt.title('終極法顯示中文')
# 添加縱橫軸的刻度
plt.xticks(index, ('Jan', 'Fub', 'Mar', 'Apr', 'May'))
plt.yticks(np.arange(0, 81, 10))
# 添加圖例和位置設置
plt.legend(loc="upper right")
plt.show()
4.6 圖:
5 小結:
3種方法python的matplotlib中文設置,最簡單當然是最後一種,強烈推薦,值得收藏。
===自己原創并分享===
喜歡的人,請點贊、關注、評論、轉發和收藏。
祝大家七夕快樂。
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!