python資料視覺化神庫:Matplotlib快速入門

cishi發表於2023-04-27

Matplotlib易於使用,是Python中了不起的視覺化庫。它建立在NumPy陣列的基礎上,旨在與更廣泛的SciPy堆疊一起工作,並由幾個圖組成:線圖、條形圖、散點圖、直方圖等。

快速入門

import matplotlib.pyplot as plt# initializing the datax = [10, 20, 30, 40]
y = [20, 30, 40, 50]# plotting the dataplt.plot(x, y)# Adding the titleplt.title("Simple Plot")# Adding the labelsplt.ylabel("y-axis")
plt.xlabel("x-axis")
plt.show()

在上面的例子中,X和Y的元素提供了X軸和Y軸的座標,並根據這些座標繪製了一條直線。

Pyplot

Pyplot是一個Matplotlib模組,它提供了一個類似MATLAB的介面。Pyplot提供了與圖形互動的函式,即建立圖形,用標籤裝飾繪圖,並在圖形中建立繪圖區。

語法:

matplotlib.pyplot.plot(*args, scalex=True, scaley=True, data=None, **kwargs)
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.axis([0, 6, 0, 20])
plt.show()

Matplotlib負責建立內建的預設值,如圖(Figure)和軸(Axes)。

  • Figure
    這個類是所有繪圖的頂層容器,意味著它是整個視窗或頁面,所有東西都在上面繪製。圖形物件可以被認為是類似盒子的容器,可以容納一個或多個軸。

  • Axes

該類是建立子圖的最基本和最靈活的元件。你可能會把軸混淆為軸的複數,但它是一個單獨的情節或圖形。給定的圖可以包含許多軸,但給定的軸只能在一個圖中出現。

Figure類

圖類是包含一個或多個軸的頂層容器。它是整體的視窗或頁面,所有的東西都在上面繪製。

語法:

class matplotlib.figure.Figure(figsize=None, dpi=None, facecolor=None, edgecolor=None, lineewidth=0.0, frameon=None, subplotpars=None, tight_layout=None, constrained_layout=None)

例1:

import matplotlib.pyplot as pltfrom matplotlib.figure import Figure 
# Creating a new figure with width = 5 inches# and height = 4 inchesfig = plt.figure(figsize =(5, 4))# 座標預設左下角是0,0,[left, bottom, width, height]  # 1表示畫布的寬度或高度,會自動摺疊空白部分。# Creating first axes for the figureax1 = fig.add_axes([0, 0, 1, 1]) 
# Creating second axes for the figureax2 = fig.add_axes([1, 0, 0.5, 0.5]) 
# Adding the data to be plottedax1.plot([2, 3, 4, 5, 5, 6, 6],
         [5, 7, 1, 3, 4, 6 ,8])
ax2.plot([1, 2, 3, 4, 5],
         [2, 3, 4, 5, 6])
 
plt.show()

  • 例2 多plot
import matplotlib.pyplot as pltfrom matplotlib.figure import Figure 
# Creating a new figure with width = 5 inches# and height = 4 inchesfig = plt.figure(figsize =(5, 4)) 
# Creating first axes for the figureax1 = fig.add_axes([1, 1, 1, 1]) 
# Creating second axes for the figureax2 = fig.add_axes([1, 0.5, 0.5, 0.5]) 
# Adding the data to be plottedax1.plot([2, 3, 4, 5, 5, 6, 6],
         [5, 7, 1, 3, 4, 6 ,8])
ax2.plot([1, 2, 3, 4, 5],
         [2, 3, 4, 5, 6])
 
plt.show()

image

參考資料

  •  謝謝點贊! 
  •  

Axes 類

軸類是建立子圖的最基本和最靈活的單元。給定的圖可以包含許多軸,但給定的軸只能出現在一個圖中。axes()函式建立軸物件。讓我們看看下面的例子。

語法:

matplotlib.pyplot.axis(*args, emit=True, **kwargs)

例1:

import matplotlib.pyplot as pltfrom matplotlib.figure import Figure# Creating the axes object with argument as# [left, bottom, width, height]ax = plt.axes([1, 1, 1, 1])

輸出:

image

例2:

import matplotlib.pyplot as pltfrom matplotlib.figure import Figure
fig = plt.figure(figsize = (5, 4)) 
# Adding the axes to the figureax = fig.add_axes([1, 1, 1, 1]) 
# plotting 1st dataset to the figureax1 = ax.plot([1, 2, 3, 4], [1, 2, 3, 4]) 
# plotting 2nd dataset to the figureax2 = ax.plot([1, 2, 3, 4], [2, 3, 4, 5])
plt.show()

輸出:

image

  • 三維圖
    Matplotlib在推出時,考慮到的只是二維繪圖。但是在1.0版本釋出的時候,三維工具是在二維的基礎上開發的,因此,我們今天有一個三維資料的實現。

例子:

import matplotlib.pyplot as plt# Creating the figure objectfig = plt.figure() 
# keeping the projection = 3d# creates the 3d plotax = plt.axes(projection = '3d')

上面的程式碼讓我們在Matplotlib中建立了一個三維圖。我們可以建立不同型別的3D圖,如散點圖、等高線圖、曲面圖等。讓我們來建立一個簡單的三維線圖。

例子:

import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
z = [1, 8, 27, 64, 125]# Creating the figure objectfig = plt.figure()# keeping the projection = 3d# creates the 3d plotax = plt.axes(projection = '3d')
ax.plot3D(z, y, x)

輸出:

處理圖片

使用影像工作
matplotlib庫中的影像模組是用來在Python中處理影像的。影像模組還包括兩個有用的方法,即用於讀取影像的imread和用於顯示影像的imshow。

例子:

# importing required librariesimport matplotlib.pyplot as pltimport matplotlib.image as img# reading the imagetestImage = img.imread('test.png')# displaying the imageplt.imshow(testImage)


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70029427/viewspace-2949108/,如需轉載,請註明出處,否則將追究法律責任。

相關文章