Избавление от артефактов / линий сетки при построении трехмерных поверхностей - PullRequest
4 голосов
/ 08 июня 2011

При построении поверхностей с использованием mpl_toolkits.mplot3d.Axes3D.plot_surface() появляются линии, которые, кажется, следуют кривой поверхностей, нанесенных на график.Например:

X, Y = numpy.meshgrid(numpy.arange(some_range), numpy.arange(some_other_range))
Z1, Z2 = numpy.array(getRate()) 
#getRate is a function that returns an array of shape (len(some_range), len(some_other_range)  

fig = pyplot.figure()
ax = mplot3d.Axes3D(fig)

ax.plot_surface(X, Y, Z1, color='w', alpha=0.2)
ax.plot_surface(X, Y, Z2, color='b', alpha=0.2)

pyplot.show()

Есть ли способ избавиться от кровавых вещей, чтобы у вас была гладкая поверхность?Я приложил изображение, чтобы показать, что я имею в виду.enter image description here

1 Ответ

6 голосов
/ 08 июня 2011

Попробуйте

ax.plot_surface(X, Y, Z1, color='w', alpha=0.2, linewidth=0)
ax.plot_surface(X, Y, Z2, color='b', alpha=0.2, linewidth=0)

Возможно, вы захотите немного увеличить свои альфа-значения, хотя, если удаление линий делает части поверхностей слишком трудно различимыми.

...