Python matplotlib繪製圖形例項(包括點,曲線,註釋和箭頭)
Python的matplotlib模組繪製圖形功能很強大,今天就用pyplot繪製一個簡單的圖形,圖形中包括曲線、曲線上的點、註釋和指向點的箭頭。
1. 結果預覽:
2. 程式碼如下:
from matplotlib import pyplot as plt import numpy as np # 繪製曲線 x = np.linspace(2,21,20) # 取閉區間[2,21]之間的等差數列,列表長度20 y = np.log10(x) + 0.5 plt.figure() # 新增一個視窗。如果只顯示一個視窗,可以省略該句。 plt.plot(x,y) # plot在一個figure視窗中新增一個圖,繪製曲線,預設顏色 # 繪製離散點 plt.plot(x,y,'.y') # 繪製黃色的點,為了和曲線顏色不一樣 x0,y0 = 15,np.log10(15) + 0.5 plt.annotate('Interpolation point',xy=(x0,y0),xytext=(x0,y0 - 1),arrowprops=dict(arrowstyle='->')) # 添加註釋 for x0,y0 in zip(x,y): plt.quiver(x0,y0 - 0.3,1,color='g',width=0.005) # 繪製箭頭 x = range(2,5) y = np.log10(x) + 0.5 plt.plot(x,'om') # 繪製紫紅色的圓形的點 x0,y0 = 7,np.log10(7) + 0.5 plt.annotate('Original point',arrowprops=dict(arrowstyle='->')) for x0,y0 + 0.3,-1,width=0.005) # 繪製箭頭 # 設定座標範圍 plt.xlim(2,21) # 設定x軸範圍 plt.xticks(range(0,23,2)) # 設定X軸座標點的值,為[0, 22]之間的以2為差值的等差陣列 plt.ylim(0,3) # 設定y軸範圍 # 顯示圖形 plt.show() # 顯示繪製出的圖
3. 解析
1)匯入matplotlib模組的pyplot類,這裡主要用了pyplot裡的一些方法。匯入numpy用於生成一些數列。分別給pyplot和numpy記個簡潔的別名plt和np,方便使用。
2)np.linspace(start,stop,num),可生成閉區間[stop,stop]裡的陣列長度為num的等差數列。本例子中想作為插值點顯示出來。
3)plt.figure()用於新增視窗。如果把所有圖形繪製在一個窗口裡,該句可以省略,因為figure(1)會被預設建立。
如果想新增視窗,就再新增一句plt.figure(),plt.figure(num)的視窗序號num自動自增。
4)plt.plot()向窗口裡繪製曲線,傳遞x,y引數,分別為橫軸和縱軸。
本例中所有圖形繪製在一個繪圖區域裡。如果想新增2個繪圖區域呢?如下列程式碼:
x = np.linspace(2,20) y1 = np.log10(x) + 0.5 y2 = np.log10(x) + 1 plt.subplot(211) plt.plot(x,y1) plt.subplot(212) plt.plot(x,y2) plt.show()
plt.subplot(rows,cols,figurenum)新增子繪圖區域,引數分別為:把視窗劃分為rows行cols列繪圖區域,figurenum表示第幾個繪圖區域。plt.subplot(211)=plt.subplot(2,1),繪圖區域數小於10時可省略逗號。建立的圖形為:
5) plt.plot(x,'.y') # 多寫該句為了顯示點和曲線的顏色不一樣。'.y'表示只把繪製曲線的點表示出來,顏色為黃色。
6)plt.annotate(s,xy,xytext) # 添加註釋,除s、xy外其餘還有若干可選引數。
s:註釋文字,
xy:指定要註釋的(x,y)座標點,
xytext:可選,指定要放置文字的(x,y)座標點。如果沒有,則預設為xy註釋點。
arrowprops:可選,字典形式,用於在xy座標和xytext間繪製一個指定形狀的箭頭,本例中指定一個'->'型別的箭頭,箭頭頭部寬和高為0.2/0.4。
7)plt.quiver(X,Y,U,V,C,**kw) # 繪製一個二維的箭頭,X,C可以缺失。
X,Y:箭頭的位置,
U,V:表示箭頭的方向,
C:設定箭頭的顏色,
**kw裡還有一系列引數可以設定,包括單位、箭頭角度、箭頭的頭部寬高設定等,這裡設定了顏色color和箭頭的軸寬度width。
如果設定了C,再設定color將不生效。
有C為啥還有color可選設定呢?疑問暫留,沒找到結果。
8)plt.xlim(min,max) / plt.ylim(min,max) 設定x軸/y軸的範圍。
9)plt.xticks() 設定x軸座標點的值。如果plt.xlim和plt.xticks設定的範圍不一致,怎麼顯示?以最後設定的範圍為準。
10)plt.show() # 最後呼叫此句,顯示出繪製的圖形。
以上這篇Python matplotlib繪製圖形例項(包括點,註釋和箭頭)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。