Измеренные данные 3D-графика из Excel XLSX в 3D-график

Я пытаюсь преобразовать значения XYZ в сетку или построить их напрямую с помощью функции.

У меня есть таблица с измеренными значениями. Расход компонента измерялся при различных давлениях. Итак, есть следующие измеренные значения:

  • Давление 1: Ось X: Значения положения Ось Y: Значения расхода

  • Давление 2: Ось X: Значения положения Ось Y: Значения расхода

  • ....

С 8 различными давлениями у меня всего 16 столбцов со значениями XY.

На самом деле, я не думаю, что это так сложно. Если вы разрежете ось Z (глубину) на 8 слоев, у вас будут координаты XY для каждого слоя. Таким образом, программе достаточно было бы соединить их линейно или со сплайном на графике.

Есть ли функция, которой я назначаю столбец XY для каждого значения Z, и это можно вывести как график поверхности?

Чтобы было понятнее, я создал небольшой пример фиктивной таблицы со значениями:

Значения XYZ

2 ответа

Это не совсем ответ, потому что я хочу импортировать DataFrame из таблицы Excel. В таблице Excel значения вводятся как на картинке из моего последнего письма. Я хотел бы изобразить их в 3D.

Я импортировал данные следующим образом

from mpl_toolkits.mplot3d import Axes3D
import pandas as pd


fig = plt.figure()
ax = Axes3D(fig)

df=pd.read_excel('raw.xlsx')

Это то, что вы хотите?

import matplotlib.pyplot as plt 
import numpy as np 
 
# generate x, y 
x = np.linspace(0, 10, 51) 
w = np.linspace(0.5, 0.20, 10) 
y = np.array([np.sin(wi*x)/wi for wi in w]) # 10 rows, 51 cols
# and a very generic z 
z = np.linspace(1, 10, 10) 
 
# note that in a surface plot the indipendent variable is Z, 
# so IF our indipendent variable is y… 
X, Y = np.meshgrid(x, z) ; Z = y # X, Y have 10 rows, 51 cols too
 
# this stuff is pretty standard, you can find info everywhere
fig = plt.figure() ; ax = fig.gca(projection='3d') 
surf = ax.plot_surface(X, Y, Z, cmap='viridis') 
ax.set(xlabel='x', ylabel='z', zlabel='y') 
ax.view_init(elev=15, azim=-100) 
fig.colorbar(surf, shrink=0.67) # the 1st arg is the output of plot_surface

https://i.stack.imgur.com/qvS5i.png

Цветовая карта используется по умолчанию, вы можете выбрать другую по названию. Вы можете увидеть полный список названий цветовых карт, используяplt.colormaps().

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