要在Python中画三维图像,可以使用Matplotlib库中的mplot3d模块。它提供了曲面绘制、散点绘制、线框绘制、多个数据集合并绘制、等值曲面绘制等功能。以下是Python 画三维图像 曲面图和散点图的示例攻略。
1. 曲面绘制
1.1 数据准备
首先我们需要准备三元数据,即 x, y, z。在这个示例中,我们准备了以下数据。
import numpy as np
x = np.arange(-5, 5, 0.25)
y = np.arange(-5, 5, 0.25)
x, y = np.meshgrid(x, y)
r = np.sqrt(x ** 2 + y ** 2)
z = np.sin(r)
1.2 绘制曲面图
接下来,我们使用matplotlib库中的mplot3d模块,调用其中的Axes3D类,创建一个3D坐标轴,并通过plot_surface()绘制曲面图。
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
fig = plt.figure()
ax = Axes3D(fig)
ax.plot_surface(x, y, z, rstride=1, cstride=1, cmap='rainbow')
plt.show()
1.3 结果呈现
执行上述程序后,我们可以得到一个三维曲面图。其中,X轴和Y轴的值代表曲面图上的所有点,而Z轴的值则代表该点处的高度。颜色的浓淡程度用于表示高度值的大小,越深的颜色表示越低的高度。
2. 散点绘制
2.1 数据准备
同样,我们需要准备三元数据,即 x, y, z。在这个示例中,我们准备了以下数据。
import matplotlib.pyplot as plt
import numpy as np
np.random.seed(19680801)
def randrange(n, vmin, vmax):
return (vmax - vmin) * np.random.rand(n) + vmin
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
n = 100
x = randrange(n, 23, 32)
y = randrange(n, 0, 100)
z = randrange(n, -50, -25)
2.2 绘制散点图
接下来,我们使用matplotlib库中的mplot3d模块,调用其中的Axes3D类,创建一个3D坐标轴,并通过scatter()绘制散点图。
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
fig = plt.figure()
ax = Axes3D(fig)
ax.scatter(x, y, z)
plt.show()
2.3 结果呈现
执行上述程序后,我们可以得到一个三维散点图。其中,每个数据点的x、y、z三个维度分别代表了三个不同的属性,表达了数据的三维特征,而不同颜色和大小的散点则是代表不同的数据状态。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 画三维图像 曲面图和散点图的示例 - Python技术站