Matplotlib 3D 線圖

Salman Mehmood 2023年1月30日 2022年5月11日
  1. 在 Matplotlib 中建立 3D 線圖
  2. 在 Matplotlib 中建立多色 3D 線圖
Matplotlib 3D 線圖

本教程演示了在 Matplotlib 中建立 3D 繪圖以及如何在 Matplotlib 中使用多種顏色建立它。

在 Matplotlib 中建立 3D 線圖

三維繪圖的概念無處不在。流經水、油、汽油或任何我們管道的管道是具有長度、寬度和高度的三維。

因此,我們還可以使用 mpl_toolkits 工具建立圖形或繪圖,這使得在 Matplotlib 中建立 3D 繪圖變得更加容易。

讓我們從匯入以下模組開始。

import numpy as np
import matplotlib.pyplot as plot
from mpl_toolkits import mplot3d

現在我們必須指定座標,但是在我們開始繪製三維空間之前,我們需要建立一個軸,並且這個軸必須有一個 3D projection 引數。我們有不同的預測。

我們不僅有 3D 投影。我們可以使用大量不同的投影,所以如果我們想建立一個新的軸,我們需要呼叫 axes() 方法。

要建立 3D 繪圖,我們可以傳遞一個 projection 引數並將值設定為 "3d"

axes=plot.axes(projection="3d")

我們使用 arange() numpy 方法建立三個維度的資料。arange() 是你選擇起點、終點和步長。

我們對 y_data 做同樣的事情。我們在 z 座標上使用了一些數學函式,以便在我們的繪圖中獲得更好的結果。

axes=plot.axes(projection="3d")
x_data=np.arange(0,50,0.1)
y_data=np.arange(0,50,0.1)
z_data=np.sin(x_data) * np.cos(y_data)

完整程式碼示例:

import numpy as np
import matplotlib.pyplot as plot
from mpl_toolkits import mplot3d

axes=plot.axes(projection="3d")
x_data=np.arange(0,50,0.1)
y_data=np.arange(0,50,0.1)
z_data=np.sin(x_data) * np.cos(y_data)

axes.plot(x_data,y_data,z_data)
plot.show()

輸出:

在 Matplotlib 中建立 3D 線圖

在 Matplotlib 中建立多色 3D 線圖

此示例演示如何使用多種顏色的 3D 線圖。在下面的程式碼中,我們只是分離每個線段並在六種預定義顏色上迭代迴圈。

colors = 'rgbcmy'
for i in range(len(x_data)-1):
    axes.plot(x_data[i:i+2], y_data[i:i+2], z_data[i:i+2], color=colors[i%6] )
    # ax.plot(x[i:i+2], y[i:i+2], z[i:i+2], color=cols[i%6])

完整程式碼示例:

import numpy as np
import matplotlib.pyplot as plot
from mpl_toolkits import mplot3d

axes=plot.axes(projection="3d")
x_data=np.arange(0,50,0.1)
y_data=np.arange(0,50,0.1)
z_data=np.sin(x_data) * np.cos(y_data)

colors = 'rgbcmy'
for i in range(len(x_data)-1):
    axes.plot(x_data[i:i+2], y_data[i:i+2], z_data[i:i+2], color=colors[i%6] )
    # ax.plot(x[i:i+2], y[i:i+2], z[i:i+2], color=cols[i%6])

plot.show()

輸出:

Matplotlib 中的多色 3D 線圖

單擊此處閱讀有關 3D 繪圖的詳細文件。

Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn