現在我們添加圖后,沒有指定x軸代表什么,y軸代表什么,以及這個圖的標題是什么。因此以下我們通過一些屬性來設置一下。
設置線條樣式:
- 使用plot方法:plot方法就是用來繪制線條的,因此可以在繪制的時候就把線條相關的樣式通過參數傳進去。示例代碼如下:
plt.plot(x,y,linewidth=2)
- 通過Line2D對象來設置:plot方法會返回一個裝有Line2D對象的列表,比如lines=plt.plot(x1,y1,x2,y2)因為繪制了兩根線條,因此lines中會有兩個2D對象。而如果plot只繪制一根線條,那么lines中就只有一Line2D對象。拿到這個Line2D對象后就可以通過set_屬性名設置線條的樣式了:
lines = plt.plot(x,y) line = lines[0] line.set_aa(False) #關掉反鋸齒 line.set_alpha(0.5) #設置0.5的透明度
- 使用plt.setp來設置:setp的好處是一次性可以設置多根線條的樣式。示例代碼如下:
lines = plt.plot(x,y)
plt.setp(lines,linewidth=10,alpha=0.5)
-
更多Line2D屬性:
設置軸和標題:
- 設置軸名稱:可以通過
plt.xlabel
和plt.ylabel
來設置x
軸和y
軸的的名稱。示例代碼如下:
plt.plot(x,y,linewidth=10,color='red') plt.xlabel("x軸") plt.ylabel("y軸")
默認情況下是顯示不了中文的。需要設置字體。可以通過以下代碼來實現:
# 加載字體 from matplotlib import font_manager font = font_manager.FontProperties(fname="C:\Windows\Fonts\msyh.ttc") plt.plot(x,y,linewidth=10,color='red') plt.xlabel("x軸",fontproperties=font) plt.ylabel("y軸",fontproperties=font)
加載字體的時候,可以到C:\Windows\Fonts中找你喜歡的並且可以顯示中文的字體。找到字體后,還需要找到字體的真實名稱。方法是右鍵->屬性->安全->對象名稱:

- 設置標題:可以通過plt.title方法來實現。示例代碼如下:
font = font_manager.FontProperties(fname="C:\Windows\Fonts\msyh.ttc") plt.title("sin函數",fontproperties=font)
- 設置x軸和y軸的刻度:之前我們畫的圖,x軸和y軸的刻度都是matplotlib自動生成的。如果想要在生成圖的時候手動的指定,那么可以通過plt.xticks和plt.yticks來實現:
plt.xticks(range(0,20,2)) #在x軸上的刻度是0,2,4,6...20
以上會把那個刻度顯示在x軸上。如果想要顯示字符串類型,那么可以再構造一個數組,這個數組的長度必須和x軸刻度的長度保持一致。然后傳給xticks的第二個參數。示例代碼如下:
_x = range(0,20,2) _xticks = ["%d坐標"%i for i in _x] plt.xticks(_x,_xticks,fontproperties=font) #在x軸上的刻度是0坐標,2坐標...20坐標

同樣y軸的刻度設置也是一樣的。示例代碼如下:
_y = np.arange(-1,1,0.25) _yticks = ["%.2f點"%i for i in _y] plt.yticks(_y,_yticks,fontproperties=font)
效果圖如下:

復仇者聯盟電影票房案例:
avenger = [17974.4,50918.4,30033.0,40329.1,52330.2,19833.3,11902.0,24322.6,47521.8,32262.0,22841.9,12938.7,4835.1,3118.1,2570.9,2267.9,1902.8,2548.9,5046.6,3600.8] plt.figure(figsize=(15,5)) plt.plot(avenger,marker="o") font.set_size(10) plt.xticks(range(20),["第%d天"%x for x in range(1,21)],fontproperties=font) plt.xlabel("天數",fontproperties=font) plt.ylabel("票房數(萬)",fontproperties=font) plt.grid()

設置marker:
有時候,我們想要在一些關鍵點上重點標記出來。那么我們可以通過設置marker來實現。示例代碼如下:
x = np.linspace(0,20) y = np.sin(x) plt.plot(x,y,marker="o")

我們設置了marker為o,這樣就是會在(x,y)的坐標點上顯示出來,並且顯示的是圓點。其中o跟之前的線條樣式的簡寫是一樣的。另外,還可以通過markerfacecolor屬性和markersize來指定標記點的顏色和大小。示例代碼如下:
### 以下設置標記點的顏色為黑色,尺寸為10 plt.plot(x,y,marker="o",markerfacecolor='k',markersize=10)
設置注釋文本:
有時候需要在圖形中的某個點標記或者注釋一下。那么我們可以使用plt.annotate(text,xy,xytext,arrowprops={})來實現,其中text是注釋的文本,xy是需要注釋的點的坐標,xytext是注釋文本的坐標,arrowprops是箭頭的樣式屬性。
示例代碼如下:
ax = plt.subplot(111) x = np.arange(0.0, 5.0, 0.01) y = np.cos(2*np.pi*t) line, = plt.plot(x, y,linewidth=2) plt.annotate('local max', xy=(2, 1), xytext=(3, 1.5), arrowprops=dict(facecolor='black',shrink=0.05), ) plt.ylim(-2, 2) plt.show()
設置圖形樣式:
如果想要調整圖片的大小和像素,可以通過plt.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)來實現。 其中num是圖的編號,figsize的單位是英寸,dpi是每英寸的像素點,facecolor是圖片背景顏色,edgecolor是邊框顏色,frameon代表是否繪制畫板。
示例代碼如下:
plt.figure(figsize=(20,8),dpi=80) ### 其他的繪制圖形的代碼
我們也可以使用grid方法,來顯示圖片的網格:
plt.plot(x,y,color="r") plt.grid()

保存圖片:
可以調用plt.savefig(path)來保存當前的圖片。
示例代碼如下:
plt.savefig("./abc.png")