Я пытаюсь создать трехмерный график зависимости температуры от глубины и времени с большим набором данных .csv. Пример ниже создан в Matlab. Я хочу аналогичный вывод, используя Python 3.x с обратными шкалами на оси температуры и глубины.
Пример вывода с несколькими необходимыми модами
Я начал со следующего кода:
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
# Get the data (csv file is hosted on the web)
data = pd.read_csv('C;\\Path\\TestData_Temp-Time-Depth_3DPlot.csv')
# Transform it to a long format
df = data.unstack().reset_index()
df.columns = ["X", "Y", "Z"]
# And transform the old column name in something numeric
df['X'] = pd.Categorical(df['X'])
df['X'] = df['X'].cat.codes
# Make the plot
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.plot_trisurf(df['Y'], df['X'], df['Z'], cmap=plt.cm.jet, linewidth=0.2)
plt.show()
# to Add a color bar which maps values to colors.
surf = ax.plot_trisurf(df['Y'], df['X'], df['Z'], cmap=plt.cm.jet, linewidth=0.2)
fig.colorbar(surf, shrink=0.5, aspect=5)
plt.show()
# Rotate it
ax.view_init(30, 45)
plt.show()
# Other palette
ax.plot_trisurf(df['Y'], df['X'], df['Z'], cmap=plt.cm.jet, linewidth=0.01)
plt.show()
У меня проблемы с пониманием того, как присваивать значения из csv оси x, y, z.
Пример данных, которые я использую, отформатирован как:
структура данных CSV
Пример загрузки данных: Загрузить пример данных
Заранее спасибо.