十分鍾快速學會Matplotlib基本圖形操作


在學習Python的各種工具包的時候,看網上的各種教程總是感覺各種方法很多很雜,參數的種類和個數也十分的多,理解起來需要花費不少的時間。

所以我在這里通過幾個例子,對方法和每個參數都進行詳細的解釋,這樣對於0基礎的人也可以快速的掌握Matplotlib基本圖形操作。

  • 首先導入numpy和matplotlib包
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline # 使圖形可以直接在notebook上顯示
  • 首先畫一個最基本的圖形
plt.plot([1,2,3,4,5],[1,4,9,16,25]) # plot方法是繪制圖形,第一個參數是x軸的值,第二個參數是對應的y軸的值
plt.xlabel('this is x-axis',fontsize = 16) #xlabel是指定x軸的名字 fontsize是指定字體的大小
plt.ylabel('this is y-axis',fontsize = 16)

  • 不同類型的線條的字符參數;不同顏色的字符參數

  • 給plot方法傳入指定的線條和顏色參數
plt.plot([1,2,3,4,5],[1,4,9,16,25],'gv') #其中‘gv’中的g代表green綠色,v代表下三角形
plt.xlabel('xlabel',fontsize = 16)
plt.ylabel('ylabel',fontsize = 16)

  •  除了上面這種給參數的方法外,還可以分開來給參數
plt.plot([1,2,3,4,5],[1,4,9,16,25],'+',color='r') # 其中的‘+’代表加號點,r代表red紅色
plt.xlabel('xlabel',fontsize = 16)
plt.ylabel('ylabel',fontsize = 16)

 

  • 下面我們來繪制多條線
tang_numpy = np.arange(0,10,0.5) # 生產從0到10間隔為0.5的等差序列
# 然后連續繪制三條線,調用三次plot方法
plt.plot(tang_numpy,tang_numpy,'r--') 
plt.plot(tang_numpy,tang_numpy*2,'bs')
plt.plot(tang_numpy,tang_numpy*3,'go')
  •  也可以只使用一次plot方法繪制三條線,得到的結果是一樣的
plt.plot(tang_numpy,tang_numpy,'r--',
        tang_numpy,tang_numpy*2,'bs',
        tang_numpy,tang_numpy*3,'go')

 

  • 接下來繪制一個余弦函數,給定比較多的參數,注釋會解釋每個參數的作用
x = np.linspace(-10,10) #線條的范圍
y = np.sin(x)
# linewidth參數是線條的寬度,color是顏色,linestype是線條的類型,marker是標記的類型,makercolor是標記的顏色,markersize是標記大小,alpha是透明度
plt.plot(x,y,linewidth=5, color='b',linestyle='-',marker = 'o',markerfacecolor='r',markersize = 8,alpha = 0.4)

  • 子圖,一個圖形中可以由多個子圖組合而成,可以吧一整個圖看成是一個矩陣,而其中的子圖是該矩陣的各個元素
# 211 表示一會要畫的圖是2行一列的 最后一個1表示的是子圖當中的第1個圖
plt.subplot(211)
plt.plot(x,y,color='r')

# 212 表示一會要畫的圖是2行一列的 最后一個1表示的是子圖當中的第2個圖
plt.subplot(212)
plt.plot(x,y,color='b')

 

# 211 表示一會要畫的圖是1行2列的 最后一個1表示的是子圖當中的第1個圖
plt.subplot(121)
plt.plot(x,y,color='r')

# 212 表示一會要畫的圖是1行2列的 最后一個1表示的是子圖當中的第2個圖
plt.subplot(122)
plt.plot(x,y,color='b')

 

# 321 表示一會要畫的圖是3行2列的 最后一個1表示的是子圖當中的第1個圖
plt.subplot(321) 
plt.plot(x,y,color='r')
# 321 表示一會要畫的圖是3行2列的 最后一個4表示的是子圖當中的第4個圖
plt.subplot(324) 
plt.plot(x,y,color='b')

  • 給圖加上一些文字注釋
plt.plot(x,y,color='b',linestyle=':',marker = 'o',markerfacecolor='r',markersize = 10)
plt.xlabel('x:---')
plt.ylabel('y:---')
plt.title('this is the title:---')
plt.text(0,0,'this is the text') #(0,0)是text的位置
plt.grid(True) #這個是網格
# xy是箭頭指向的位置,xytext是注釋的位置,arrowprops是指定箭頭的屬性
plt.annotate('tangyudi',xy=(-5,0),xytext=(-2,0.3),arrowprops = dict(facecolor='red',shrink=0.05,headlength= 20,headwidth = 20))

  • 設置圖片的風格

x = np.linspace(-10,10)
y = np.sin(x)
plt.style.use('dark_background') #給圖片指定風格
plt.plot(x,y)

  •  繪制柱狀圖
np.random.seed(0) #設置隨機數種子
x = np.arange(5)
y = np.random.randint(-5,5,5)
fig,axes = plt.subplots(ncols = 2) # 有兩列的子圖
v_bars = axes[0].bar(x,y,color='blue')  #axes[0]代表第一個子圖
h_bars = axes[1].barh(x,y,color='red')
axes[0].axhline(0,color='grey',linewidth=2) #加一條橫線
axes[1].axvline(0,color='grey',linewidth=2) #加一條豎線

fig,ax = plt.subplots()
v_bars = ax.bar(x,y,color='lightblue')
# 讓值小於0的柱狀顏色為green
for bar,height in zip(v_bars,y):   # bar,height為柱狀的高度值
    if height < 0:
        bar.set(edgecolor = 'darkred',color = 'green',linewidth = 3)
ax.axhline(0,color = 'red') # 0的地方加一條水平線

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM