使用 Matplotlib 在 Python 中繪製非結構化三角網格線或標記
Python 是一種廣泛使用的程式語言。它提供了各種工具和庫,可用於解決不同的問題,其中之一是 Matplotlib。此庫提供了各種用於資料視覺化和建立不同圖表的功能。在本文中,我們將使用 Matplotlib 在 Python 中繪製非結構化三角網格線或標記。
什麼是 Matplotlib 以及如何安裝它?
Matplotlib 是 Python 的庫之一。此庫是用於繪製圖形以視覺化資料的非常強大的工具。它有一個名為“pyplot”的模組,透過提供控制線型、字型屬性、格式化軸等功能,使繪圖變得容易。它還可以與其他庫(例如 numpy,這是一個用於 Python 數值計算的庫)整合。
您可以透過在命令提示符中輸入命令“pip install matplotlib”來在您的系統上安裝此庫。
在您的系統中安裝該庫後,您可以將其匯入到您的程式碼中以使用提供的功能。由於我們必須繪製非結構化三角網格,matplotlib 為此提供了多個函式,例如 triplot() 和 plot_trisurf() 等。
什麼是非結構化三角網格?
非結構化三角網格廣泛用於理解不同的系統,例如計算建模、模擬,其中資料複雜且需要解決以理解潛在的概念。
因此,非結構化三角網格本身就是一種將歐幾里得平面劃分為不同形狀(例如三角形和四面體)的方法,而不遵循規則模式。因此,您可以使用它來視覺化複雜資料。
現在,這裡所說的線或標記是什麼意思?線或標記是其中的一部分,它們顯示了網格在圖表中的表示方式。線連線網格中三角形的頂點,因此提供了網格中三角形邊界的視覺表示,而標記則表示網格中三角形的頂點。
示例
讓我們使用 Python 中的 matplotlib 繪製非結構化三角網格。
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.tri as tri
# for generating random points
ran_points = 80
x = np.random.rand(ran_points)
y = np.random.rand(ran_points)
# triangulation of the points
triangle_point = tri.Triangulation(x, y)
# Plot the triangulation with markers
plt.triplot(triangle_point, 'bo-', lw=1)
plt.title('Unstructured Triangular Grid')
plt.show()
輸出

示例
在這裡,我們匯入了三個庫,程式碼保持不變。您可以更改三角網格。
在繪製三角網格的最後一行中,我們使用了“plt.tricontourf(tri, values)”來建立填充等高線圖。
tricontourf() 函式使用線性估計值來計算每個三角形的頂點,然後用相應值的顏色填充三角形。
然後,使用“plt.triplot(tri, marker='2', markersize=3, linestyle='-', color='k')”函式,它使用 triplot 將三角網格覆蓋在等高線圖之上,顯示為黑色線條。
import numpy as np import matplotlib.pyplot as plt import matplotlib.tri as mtri # for generating random points ranpoints = 30 x = np.random.rand(ranpoints) y = np.random.rand(ranpoints) tri = mtri.Triangulation(x, y) # Generate random values to color the triangles values = np.random.rand(ranpoints) # Plot the triangular grid plt.tricontourf(tri, values) plt.triplot(tri, marker='2', markersize=3, linestyle='-', color='k') plt.show()
輸出

常見錯誤
在使用 matplotlib 繪製非結構化三角網格時,您可能會遇到一些常見錯誤。讓我們來看一些錯誤以及每個錯誤的解決方案。
ValueError: 如果傳遞給三角剖分建構函式的 x 和 y 陣列的長度不相等,則可能會遇到此錯誤。要解決此錯誤,請嘗試為每個陣列設定相同數量的元素。
AttributeError: 當在沒有設定掩碼的三角剖分物件上使用 get_masked_triangles 時,可能會發生此錯誤。要解決此錯誤,您必須使用 triang.set_mask 方法為三角剖分物件設定掩碼。
TypeError: 如果嘗試使用下標表示法訪問浮點物件的元素。為避免這種情況,您應該確保訪問的變數是陣列或列表。
ValueError: 第三個引數必須是格式字串——當傳遞給 triplot() 函式的格式字串無效時,可能會發生此錯誤。為避免此錯誤,格式字串應為有效的 matplotlib 線型格式。
結論
在本文中,我們使用 matplotlib 繪製了不同的非結構化三角網格作為標記或線條。我們從基礎開始,解釋了什麼是 matplotlib 以及將用於繪製非結構化三角網格的函式。
簡要解釋了非結構化三角網格及其用途。使用 Matplotlib 庫的不同函式,我們繪製了網格。這表明 Python 庫對於使用資料視覺化簡化複雜資料是多麼強大和有用。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP