現在我們添加圖后,沒有指定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")
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/275671.html
標籤:Python
