如何在不使用网格的情况下绘制曲面

use*_*882 2 python matplotlib

如何绘制下面表格中的数据表面。

第 1 列 - X;第 2 栏 - Y;第 3 列 - Z;

在下面的示例中,X 有 4 个独特点,Y 有 3 个独特点,但我无法预测这一点,而且我每次都必须分析数据以确定如何将列重塑为网格。我可以按原样绘制点吗?(坐标列表。)

[[0.         0.         0.        ]
 [0.         0.5        0.6989218 ]
 [0.         1.         0.87790919]
 [0.25       0.         0.0505097 ]
 [0.25       0.5        0.7494315 ]
 [0.25       1.         0.92841889]
 [0.5        0.         0.09192357]
 [0.5        0.5        0.79084537]
 [0.5        1.         0.96983276]
 [0.75       0.         0.10310818]
 [0.75       0.5        0.80202997]
 [0.75       1.         0.98101736]
 [1.         0.         0.12209081]
 [1.         0.5        0.82101261]
 [1.         1.         1.        ]]
Run Code Online (Sandbox Code Playgroud)

She*_*ore 7

如果我正确理解你的评论,你基本上是在寻找plot_trisurf。这data是您的数据矩阵,其中我分别将第一、第二和第三列作为 x、y、z 数据。

您不需要为此进行任何重塑。的输入plot_trisurf是一维数组。

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

# data = # your matrix here

fig = plt.figure(figsize=(8, 6))
ax = fig.add_subplot(111, projection="3d")

x = data[:, 0]
y = data[:, 1]
z = data[:, 2]

ax.plot_trisurf(x,y,z)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述