Я хотел бы иметь 3D-сюжет с matplotlib.
Данные следующие: у меня есть матрица, каждая строка которой содержит координаты Y для трехмерного графика. Первые элементы каждой строки представляют собой координаты X для трехмерного графика. Наконец, вторая матрица содержит максимум для каждой точки в позиции X, Y. Таким образом, эта вторая матрица содержит мои координаты Z. Обе матрицы представляют собой массивы массивов с Python. Я хотел бы знать, как преобразовать данные, чтобы получить:
- график каждого сигнала 1d, соответствующего X, как это (фото доступно в Интернете)
- каркасный график для тех же данных, например
Я написал вспомогательную функцию для работы с каркасом,
######## HELPER FOR PLOT 3-D
def plot_3d(name,X,Y,Z):
fig = plt.figure(name)
ax = fig.gca(projection='3d')
X = np.array(X)
Y = np.array(Y)
Z = np.array(Z)
ax.plot_wireframe(X,Y,Z,rstride=10,cstride=10)
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
plt.show()
но я не знаю, как преобразовать данные X, Y, Z, чтобы они соответствовали требованиям для функции matplotlib, которой нужны 2D-списки для X, Y, Z.
Для первого графика я прочитал справку и хочу использовать 2D-график в 3D. Пример исходного кода дает:
x = np.linspace(0, 1, 100)
y = np.sin(x * 2 * np.pi) / 2 + 0.5
ax.plot(x, y, zs=0, zdir='z', label='zs=0, zdir=z')
где z — постоянная координата. В моем случае x - постоянная координата. я адаптируюсь с
fig = plt.figure('2d profiles')
ax = fig.gca(projection='3d')
for i in range(10):
x = pt ## this is a scalar
y = np.array(y)
z = np.array(z)
ax.plot(xs = x, y, z, xdir='x')
plt.show()
но есть предупреждение: non-keyword arg after keyword arg
. Как исправить?
Спасибо и привет
ax.plot(xs = x, y, z, xdir='x')
наax.plot(xs = x, ys-y, zs=z, xdir='x')
- person pelson   schedule 01.08.2012