Matplotlib 軸標簽和標題
我們可以使用 xlabel() 和 ylabel() 方法來設置 x 軸和 y 軸的標簽。
實例
import numpy as np import matplotlib.pyplot as plt x = np.array([1, 2, 3, 4]) y = np.array([1, 4, 9, 16]) plt.plot(x, y) plt.xlabel("x - label") plt.ylabel("y - label") plt.show()
顯示結果如下:
標題
我們可以使用 title() 方法來設置標題。
實例
import numpy as np import matplotlib.pyplot as plt x = np.array([1, 2, 3, 4]) y = np.array([1, 4, 9, 16]) plt.plot(x, y) plt.title("TEST TITLE") plt.xlabel("x - label") plt.ylabel("y - label") plt.show()
顯示結果如下:
圖形中文顯示
Matplotlib 默認情況不支持中文,我們可以使用以下簡單的方法來解決。
這里我們使用思源黑體,思源黑體是 Adobe 與 Google 推出的一款開源字體。
官網:https://source.typekit.com/source-han-serif/cn/
GitHub 地址:https://github.com/adobe-fonts/source-han-sans/tree/release/OTF/SimplifiedChinese
打開鏈接后,在里面選一個就好了:
你也可以在網盤下載: https://pan.baidu.com/s/10-w1JbXZSnx3Tm6uGpPGOw,提取碼:yxqu。
可以下載個 OTF 字體,比如 SourceHanSansSC-Bold.otf,將該文件文件放在當前執行的代碼文件中:
SourceHanSansSC-Bold.otf 文件放在當前執行的代碼文件中:
實例
import numpy as np from matplotlib import pyplot as plt import matplotlib # fname 為 你下載的字體庫路徑,注意 SourceHanSansSC-Bold.otf 字體的路徑 zhfont1 = matplotlib.font_manager.FontProperties(fname="SourceHanSansSC-Bold.otf") x = np.arange(1,11) y = 2 * x + 5 plt.title("教程 - 測試", fontproperties=zhfont1) # fontproperties 設置中文顯示,fontsize 設置字體大小 plt.xlabel("x 軸", fontproperties=zhfont1) plt.ylabel("y 軸", fontproperties=zhfont1) plt.plot(x,y) plt.show()
執行輸出結果如下圖:
此外,我們還可以使用系統的字體:
from matplotlib import pyplot as plt import matplotlib a=sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist]) for i in a: print(i)
打印出你的 font_manager 的 ttflist 中所有注冊的名字,找一個看中文字體例如:STFangsong(仿宋),然后添加以下代碼即可:
plt.rcParams['font.family']=['STFangsong']
此外我們還可以自定義字體的樣式:
實例
import numpy as np from matplotlib import pyplot as plt import matplotlib # fname 為 你下載的字體庫路徑,注意 SourceHanSansSC-Bold.otf 字體的路徑,size 參數設置字體大小 zhfont1 = matplotlib.font_manager.FontProperties(fname="SourceHanSansSC-Bold.otf", size=18) font1 = {'color':'blue','size':20} font2 = {'color':'darkred','size':15} x = np.arange(1,11) y = 2 * x + 5 # fontdict 可以使用 css 來設置字體樣式 plt.title("教程 - 測試", fontproperties=zhfont1, fontdict = font1) # fontproperties 設置中文顯示,fontsize 設置字體大小 plt.xlabel("x 軸", fontproperties=zhfont1) plt.ylabel("y 軸", fontproperties=zhfont1) plt.plot(x,y) plt.show()
輸出結果如下:
標題與標簽的定位
title() 方法提供了 loc 參數來設置標題顯示的位置,可以設置為: 'left', 'right', 和 'center', 默認值為 'center'。
xlabel() 方法提供了 loc 參數來設置 x 軸顯示的位置,可以設置為: 'left', 'right', 和 'center', 默認值為 'center'。
ylabel() 方法提供了 loc 參數來設置 y 軸顯示的位置,可以設置為: 'bottom', 'top', 和 'center', 默認值為 'center'。
實例
import numpy as np from matplotlib import pyplot as plt import matplotlib # fname 為 你下載的字體庫路徑,注意 SourceHanSansSC-Bold.otf 字體的路徑,size 參數設置字體大小 zhfont1 = matplotlib.font_manager.FontProperties(fname="SourceHanSansSC-Bold.otf", size=18) font1 = {'color':'blue','size':20} font2 = {'color':'darkred','size':15} x = np.arange(1,11) y = 2 * x + 5 # fontdict 可以使用 css 來設置字體樣式 plt.title("教程 - 測試", fontproperties=zhfont1, fontdict = font1, loc="left") # fontproperties 設置中文顯示,fontsize 設置字體大小 plt.xlabel("x 軸", fontproperties=zhfont1, loc="left") plt.ylabel("y 軸", fontproperties=zhfont1, loc="top") plt.plot(x,y) plt.show()
輸出結果如下:
REF
https://www.runoob.com/matplotlib/matplotlib-label.html