Eternal03 发表于 2024-4-28 23:01:28

求助求助,已知三列数据怎么画出三维曲面图

求助各位大佬,第一列数据为X值,第二列数据为Y值,第三列数据有点特殊,是好几个Z值,不知道该怎么把相应的X值Y值和Z值对应上,类似于下面这个图

FishC 发表于 2024-4-28 23:01:49

哦,你的问题是如何使用已知的三列数据来绘制三维曲面图,对吗?

首先,我们需要导入绘图库matplotlib和numpy。然后,我们可以使用matplotlib中的`plot_surface`函数来绘制三维曲面图。

以下是一个示例代码,帮助你实现你的目标:

import matplotlib.pyplot as plt
import numpy as np

# 假设已有的三列数据分别为 x, y 和 z
x =
y =
z = [,    # 第1个点的多个Z值
   ,   # 第2个点的多个Z值
   ,
   ,
   ]


# 将列表转换为numpy数组
x = np.array(x)
y = np.array(y)
z = np.array(z)

# 创建一个3D图形对象
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

# 绘制三维曲面图
ax.plot_surface(x, y, z)

# 标题和轴标签
ax.set_title("3D Surface Plot")
ax.set_xlabel("X Label")
ax.set_ylabel("Y Label")
ax.set_zlabel("Z Label")

# 显示图形
plt.show()

在这个例子中,我们假设x、y和z分别是三列数据的变量。我们使用numpy库将它们转换为numpy数组,然后使用matplotlib库中的`plot_surface`函数绘制三维曲面图。

希望这可以帮助到你!如果还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

小甲鱼的二师兄 发表于 2024-4-29 05:35:05

是要这个效果不:



源代码:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# 数据准备
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
x, y = np.meshgrid(x, y)
z1 = np.sin(np.sqrt(x**2 + y**2))
z2 = np.cos(np.sqrt(x**2 + y**2))

# 绘制
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

# 绘制两个曲面
surf1 = ax.plot_surface(x, y, z1, cmap='viridis', alpha=0.5)
surf2 = ax.plot_surface(x, y, z2, cmap='plasma', alpha=0.5)

# 设置标签和标题
ax.set_xlabel('X Coordinates')
ax.set_ylabel('Y Coordinates')
ax.set_zlabel('Z Values')
ax.set_title('Multiple 3D Surface Plots')

# 显示图形
plt.show()

sunshine_8205 发表于 2024-4-29 10:53:07

{:5_106:}
页: [1]
查看完整版本: 求助求助,已知三列数据怎么画出三维曲面图