Python數據分析入門(十六):設置可視化圖表的信息

如今咱們添加圖後,沒有指定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屬性:安全


設置軸和標題:

  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中找你喜歡的而且能夠顯示中文的字體。找到字體後,還須要找到字體的真實名稱。方法是右鍵->屬性->安全->對象名稱:字體

 

  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的第二個參數。示例代碼以下:spa

_x = range(0,20,2)
_xticks = ["%d座標"%i for i in _x]
plt.xticks(_x,_xticks,fontproperties=font) #在x軸上的刻度是0座標,2座標...20座標

 

 

一樣y軸的刻度設置也是同樣的。示例代碼以下:3d

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

 

效果圖以下:code

 

 

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

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來實現。示例代碼以下:blog

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")
相關文章
相關標籤/搜索