Python資料分析入門(十六):設定視覺化圖表的資訊

松鼠愛出餅乾發表於2021-04-13

現在我們新增圖後,沒有指定x軸代表什麼,y軸代表什麼,以及這個圖的標題是什麼。因此以下我們通過一些屬性來設定一下。

設定線條樣式:

  1. 使用plot方法:plot方法就是用來繪製線條的,因此可以在繪製的時候就把線條相關的樣式通過引數傳進去。示例程式碼如下:
 plt.plot(x,y,linewidth=2)

 

  1. 通過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的透明度

 

  1. 使用plt.setp來設定:setp的好處是一次性可以設定多根線條的樣式。示例程式碼如下:
lines = plt.plot(x,y)
 plt.setp(lines,linewidth=10,alpha=0.5)

 

  1. 更多Line2D屬性:


    Python資料分析入門(十六):設定視覺化圖表的資訊

設定軸和標題:

  1. 設定軸名稱:可以通過plt.xlabelplt.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中找你喜歡的並且可以顯示中文的字型。找到字型後,還需要找到字型的真實名稱。方法是右鍵->屬性->安全->物件名稱:

 

Python資料分析入門(十六):設定視覺化圖表的資訊
  1. 設定標題:可以通過plt.title方法來實現。示例程式碼如下:
font = font_manager.FontProperties(fname="C:\Windows\Fonts\msyh.ttc")
plt.title("sin函式",fontproperties=font)

 

  1. 設定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座標

 

Python資料分析入門(十六):設定視覺化圖表的資訊

 

同樣y軸的刻度設定也是一樣的。示例程式碼如下:

_y = np.arange(-1,1,0.25)
_yticks = ["%.2f點"%i for i in _y]
plt.yticks(_y,_yticks,fontproperties=font)

 

效果圖如下:

 

Python資料分析入門(十六):設定視覺化圖表的資訊

 

復仇者聯盟電影票房案例:

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()

 

Python資料分析入門(十六):設定視覺化圖表的資訊

設定marker:

有時候,我們想要在一些關鍵點上重點標記出來。那麼我們可以通過設定marker來實現。示例程式碼如下:

x = np.linspace(0,20)
y = np.sin(x)
plt.plot(x,y,marker="o")

 

Python資料分析入門(十六):設定視覺化圖表的資訊

 

我們設定了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()

 

Python資料分析入門(十六):設定視覺化圖表的資訊

儲存圖片:

可以呼叫plt.savefig(path)來儲存當前的圖片。

示例程式碼如下:

plt.savefig("./abc.png")

 

相關文章