深度學習pytorch入門之Matplotlib初步

Matplotlib是python的繪圖庫,用來數據可視化或者結果分析都具有很大的幫助

一、matplotlib安裝

如果在anaconda環境下可以直接用conda install matplotlib的命令安裝;

普通的pip環境可以通過pip install matplotlib進行安裝

安裝之後輸入python進入py環境後執行import matplotlib命令,如果沒有報錯,恭喜安裝成功

二、創建圖

1. 線型圖

import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
x=np.random.randn(30)
plt.plot(x,"r--o")

輸出如下圖
在這裏插入圖片描述

前兩行導入包,第三行設置直接在notebook中顯示(本人用的jupyter notebook),然後固定了隨機種子,方便對結果復現,然後生成了30個隨機值,最後通過核心代碼plt.plot(x,“r–o”)繪製,參數屬性如下:
第一個參數是線條顏色

  • b:藍色線條
  • g:綠色線條
  • r:紅色線條
  • c:藍綠色線條
  • m:洋紅色線條
  • y:黃色線條
  • k:黑色線條
  • w:白色線條

第二個參數是設置連線形態

  • -:實線
  • –:虛線
  • -.:點實線,-·-·-·-·-·-·這種
  • :(冒號):點虛線…這種

第三個參數是數據點形狀

  • o:圓形
  • *:星形
  • +:加號
  • x:x形
a=np.random.randn(35)
b=np.random.randn(35)
c=np.random.randn(25)
d=np.random.randn(40)
plt.title("TEST")
plt.xlabel("X")
plt.ylabel("Y")
A,=plt.plot(a,"r--o")
B,=plt.plot(b,"g-*")
C,=plt.plot(c,"k-.+")
D,=plt.plot(d,"y:x")
plt.legend([A,B,C,D],["A","B","C","D"])

xx

其中title方法是設置標題,xlabel,ylabel是設置橫軸縱軸標籤,通過legend傳入對應的兩個列表,匹配成圖例

2.子圖

設置多幅圖像同時顯示

%matplotlib inline
a=np.random.randn(35)
b=np.random.randn(35)
c=np.random.randn(25)
d=np.random.randn(40)
fig=plt.figure()

ax1=fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)
ax3=fig.add_subplot(2,2,3)
ax4=fig.add_subplot(2,2,4)
A,=ax1.plot(a,"r--o")
ax1.legend([A],["A"])
B,=ax2.plot(b,"b-*")
ax2.legend([B],["B"])
C,=ax3.plot(c,"k:x")
ax3.legend([C],["C"])
D,=ax4.plot(d,"y-.+")
ax4.legend([D],["D"])

xxx

首先通過plt的figure方法實例化一個子圖,然後通過add_subplot向fig實例中添加子圖,參數以(2,2,1)爲例,前兩個數代表劃分成2行2列展示4幅圖片,最後的1設置當前圖片爲第一幅

注意子圖裏沒有xlabel等屬性

3. 散點圖

%matplotlib inline
a=np.random.randn(35)
b=np.random.randn(35)
c=np.random.randn(25)
d=np.random.randn(40)
plt.scatter(b,a,c="r",marker="*",label="(X,Y)")
plt.title("TEST")
plt.xlabel("X")
plt.ylabel("Y")
plt.legend(loc=0)

plt.show()

xxx

核心代碼plt.scatter(x,y,c=“g”,marker=“o”,label="(X,Y)")這裏前兩個參數x,y必須是等維度的,隨後參數c指定顏色,參數列表同線型圖,marker指定點形狀,參數列表同線型圖,label指定圖例,
隨後的legend指定圖例位置,loc=0自動匹配最好的位置,1位於右上角,2位於左上角,3位於左下角等等等等各種位置

4.直方圖

%matplotlib inline
a=np.random.randn(35)
b=np.random.randn(35)
c=np.random.randn(25)
d=np.random.randn(40)
plt.hist(a,bins=30,color="b")
plt.title("TEST")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()

xxx

核心代碼plt.hist(a,bins=30,color=“b”)第一個參數指定數據來源,bins指定條紋數量,color指定顏色,參數列表同線型圖

5. 餅圖

labels=['you','me','him']
a=12.453
b=45.345
c=100-a-b
sizes=[a,b,c]
plt.pie(sizes,explode=(0,0,0.1),labels=labels,autopct='%1.2f%%',startangle=30)
plt.axis('equal')
plt.title("TEST")
plt.show

xxx

核心代碼plt.pie(sizes,explode=(0,0,0.1),label=labels,autopct=’%1.1f%%’,startangle=30)第一個參數sizes指定數據來源,分別佔的比例,explode指定間隔,示例中的前兩個是0,最後是0.1所以第三部分被突出顯示,labels指定圖例,autopct指定數據格式,startangle指定開始繪製時同x軸的夾角,默認0度(邊界水平)

plt.axis(“equal”)不可缺少,表示x,y軸刻度保持相同,這樣圖纔是圓形

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章