Как построить трехмерный граф поверхности для кортежа внутри списка в Python?

У меня есть набор данных, как показано ниже. Мне нужно иметь график поверхности со значениями 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()

# https://stackoverflow.com/questions/21161884/plotting-a-3d-surface-from -a-лист-из-кортежей-в-Matplotlib

0
задан 26 June 2019 в 12:06

0 ответов

Другие вопросы по тегам:

Похожие вопросы: