今天打算通過繪制正弦和余弦函數,從默認的設置開始,一步一步地調整改進,讓它變得好看,變成我們初高中學習過的圖象那樣。通過這個過程來學習如何進行對圖表的一些元素的進行調整。
01. 簡單繪圖
matplotlib有一套允許定制各種屬性的默認設置。你可以幾乎控制matplotlib中的每一個默認屬性:圖像大小,每英寸點數,線寬,色彩和樣式,子圖(axes),坐標軸和網格屬性,文字和字體屬性,等等。
安裝
pip install matplotlib
雖然matplotlib的默認設置在大多數情況下相當好,你卻可能想要在一些特別的情形下更改一些屬性。
from pylab import *x = np.linspace(-np.pi, np.pi, 256,endpoint=True)C,S = np.cos(x), np.sin(x)plot(x,C)plot(x,S)show()
show image
02. 設置基本元素
這邊的基本元素主要有幾下幾點:
線的顏色,粗細,和線型 刻度和標簽 還有圖例
代碼比較簡單,基本上在我的第一講內容里都講過了。
import numpy as npfrom matplotlib import pyplot as pltplt.figure(figsize=(10,6), dpi=80)x = np.linspace(-np.pi, np.pi, 256,endpoint=True)C,S = np.cos(x), np.sin(x)# 設置線的顏色,粗細,和線型plt.plot(x, C, color="blue", linewidth=2.5, linestyle="-", label=r'$sin(x)$')plt.plot(x, S, color="red", linewidth=2.5, linestyle="-", label=r'$cos(x)$')# 如果覺得線條離邊界太近了,可以加大距離plt.xlim(x.min()*1.2, x.max()*1.2)plt.ylim(C.min()*1.2, C.max()*1.2)# 當前的刻度并不清晰,需要重新設定,并加上更直觀的標簽plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi], [r'$-/pi$', r'$-/pi/2$', r'$0$', r'$+/pi/2$', r'$+/pi$'])plt.yticks([-1,0,1], [r'$-1$', r'$0$', r'$1$'])# 添加圖例plt.legend()plt.show()
show image
03. 移動軸線
還記得我們在初高中學習的三角函數圖象,可不是這樣,它應該是有四個象限的。而這里卻是一個四四方方的圖表。
所以接下來,我們要做的就是移動軸線,讓它變成我們熟悉的樣子。
我們只需要兩軸線(x和y軸),所以我們需要將頂部和右邊的軸線給隱藏起來(顏色設置為None即可)。
# plt.gca(),全稱是get current axisax = plt.gca()ax.spines['right'].set_color('none')ax.spines['top'].set_color('none')# 由于我們移動的是左邊和底部的軸,所以不用設置這兩個也可以ax.xaxis.set_ticks_position('bottom')ax.yaxis.set_ticks_position('left')# 指定data類型,就是移動到指定數值ax.spines['bottom'].set_position(('data',0))ax.spines['left'].set_position(('data',0))
新聞熱點
疑難解答