1. 程式人生 > 程式設計 >Python matplotlib繪製圖形例項(包括點,曲線,註釋和箭頭)

Python matplotlib繪製圖形例項(包括點,曲線,註釋和箭頭)

Python的matplotlib模組繪製圖形功能很強大,今天就用pyplot繪製一個簡單的圖形,圖形中包括曲線、曲線上的點、註釋和指向點的箭頭。

1. 結果預覽:

Python matplotlib繪製圖形例項(包括點,曲線,註釋和箭頭)

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時可省略逗號。建立的圖形為:

Python matplotlib繪製圖形例項(包括點,註釋和箭頭)

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繪製圖形例項(包括點,註釋和箭頭)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。