Как построить поверхность на каждом подграфике

Я хотел бы построить две поверхности на двух участках. Пока поверхности нарисованы хорошо, однако все они нанесены на первый подграфик.

Код выглядит следующим образом:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
from mpl_toolkits.mplot3d import Axes3D 

#...

fig = plt.figure()
ax = fig.add_subplot(121, projection='3d')

surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.winter,
                       linewidth=0, antialiased=False)
#ax.set_zlim(-1.01, 1.01)

ax.zaxis.set_major_locator(LinearLocator(10))
ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))
ax.set_xlabel(r'X')
ax.set_ylabel(r'Y')
ax.set_zlabel(r"Z-axis = weight $w(X,Y)$")

fig.colorbar(surf, shrink=0.5, aspect=5)

ax2 = fig.add_subplot(122, projection='3d')
surf2 = ax.plot_surface(X, Y, W, rstride=1, cstride=1, cmap=cm.winter,
                       linewidth=0, antialiased=False)
ax2.zaxis.set_major_locator(LinearLocator(10))
ax2.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))
ax2.set_xlabel(r'X')
ax2.set_ylabel(r'Y')
ax2.set_zlabel(r"Z-axis = approximated weight $w(X,Y)$")

fig.colorbar(surf2, shrink=0.5, aspect=5)

plt.show()

В результате правый подграфик пуст, а левый содержит две поверхности. Я хотел бы нарисовать каждую поверхность в отдельной области графика.

введите здесь описание изображения


person toom    schedule 06.07.2015    source источник


Ответы (1)


вам нужно построить surf2 на ax2 (в настоящее время вы рисуете его на ax)

surf2 = ax2.plot_surface(X, Y, W, rstride=1, cstride=1, cmap=cm.winter,
                         linewidth=0, antialiased=False)
person tmdavison    schedule 06.07.2015
comment
О, спасибо. Я полностью упустил из виду это. Типичная ошибка копирования и вставки :) - person toom; 06.07.2015