Python 繪圖
Python 可以使用 matplotlib 庫建立圖表。它擁有眾多包和函式,可以生成各種各樣的圖表和繪圖。它也很容易使用。它與 numpy 和其他 Python 內建函式一起實現目標。在本文中,我們將瞭解它可以生成的一些不同型別的圖表。
簡單圖表
這裡我們使用數學函式來生成圖表的 x 和 y 座標。然後我們使用 matplotlib 為該函式繪製圖表。在這裡,我們可以應用標籤並顯示圖表的標題,如下所示。我們正在為三角函式 - tan 繪製圖表。
示例
from matplotlib import pyplot as plt import numpy as np import math #needed for definition of pi x = np.arange(0, math.pi*2, 0.05) y = np.tan(x) plt.plot(x,y) plt.xlabel("angle") plt.ylabel("Tan value") plt.title('Tan wave') plt.show()
輸出
執行以上程式碼將得到以下結果:
多圖
透過建立多個座標軸並在程式中使用它們,我們可以在單個畫布上繪製兩個或多個圖表。
示例
import matplotlib.pyplot as plt import numpy as np import math x = np.arange(0, math.pi*2, 0.05) fig=plt.figure() axes1 = fig.add_axes([0.1, 0.1, 0.8, 0.8]) # main axes axes2 = fig.add_axes([0.55, 0.55, 0.3, 0.3]) # inset axes axes3 = fig.add_axes([0.2, 0.3, 0.2, 0.3]) # inset axes axes1.plot(x, np.sin(x), 'b') axes2.plot(x,np.cos(x),'r') axes3.plot(x,np.tan(x),'g') axes1.set_title('sine') axes2.set_title("cosine") axes3.set_title("tangent") plt.show()
輸出
執行以上程式碼將得到以下結果:
子圖網格
我們還可以建立一個包含不同圖表的網格,每個圖表都是一個子圖。為此,我們使用函式 subplot2grid。在這裡,我們必須仔細選擇座標軸,以便所有子圖都能適應網格。可能需要一些嘗試。
示例
import matplotlib.pyplot as plt a1 = plt.subplot2grid((3,3),(0,0),colspan = 2) a2 = plt.subplot2grid((3,3),(0,2), rowspan = 3) a3 = plt.subplot2grid((3,3),(1,0),rowspan = 2, colspan = 2) import numpy as np x = np.arange(1,10) a2.plot(x, x*x,'r') a2.set_title('square') a1.plot(x, np.exp(x),'b') a1.set_title('exp') a3.plot(x, np.log(x),'g') a3.set_title('log') plt.tight_layout() plt.show()
輸出
執行以上程式碼將得到以下結果:
等值線圖
等值線圖(有時稱為等高線圖)是一種在二維平面上顯示三維表面的方法。它在 y 軸上繪製兩個預測變數 X Y 和一個響應變數 Z 作為等值線。Matplotlib 包含 contour() 和 contourf() 函式,分別用於繪製等值線和填充等值線。
示例
import numpy as np import matplotlib.pyplot as plt xlist = np.linspace(-3.0, 3.0, 100) ylist = np.linspace(-3.0, 3.0, 100) X, Y = np.meshgrid(xlist, ylist) Z = np.sqrt(X**2 + Y**2) fig,ax=plt.subplots(1,1) cp = ax.contourf(X, Y, Z) fig.colorbar(cp) # Add a colorbar to a plot ax.set_title('Filled Contours Plot') #ax.set_xlabel('x (cm)') ax.set_ylabel('y (cm)') plt.show()
輸出
執行以上程式碼將得到以下結果:
廣告