У меня есть набор данных, как показано ниже. Мне нужно иметь график поверхности со значениями x, y и z (j нужно игнорировать). Каждый кортеж в списке данных должен представлять точку на графике поверхности.
Например, при построении Python должен принять значение (-1.0, -5.0, 0.0, 128.05219942419836)
и построить его, а затем перейти к следующему кортежу и так далее. Я получаю график с моей попыткой, но он кажется неверным.
Может ли кто-нибудь помочь мне найти ошибку?
import matplotlib.pyplot as plt
import numpy as np
data_list = [(-1.0, -5.0, 0.0, 128.05219942419836), (-1.0, 5.0, -5.0, 1050.0514787687544), (-1.0, 5.0, 0.0, 787.8822046898542), (-1.0, 5.0, 5.0, 35.6
0, 22.371836318366924), (-6.0, -10.0, 5.0, 4.702288827001351), (4.0, -5.0, 0.0, 216.35187799230525), (4.0, 5.0, 0.0, 1970.733458386331)]
#My attempt
#zipping data
j, x, y, z = zip(*data_list)
z = tuple(map(float, z))
dim_of_z = np.shape(z)
X, Y = np.meshgrid(x, y)
Z = np.reshape(z,(1,(dim_of_z[0])))
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, linewidth=0.1)
plt.show()