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 线图
此示例演示如何使用多种颜色的 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()
输出:
单击此处阅读有关 3D 绘图的详细文档。
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