Поверхность построения без осей

Я хочу построить поверхность без плоскостей осей. Думаю, я лучше объясню с изображениями:

Я хочу получить вот это:

желаемый

Вместо этого я получаю это:

текущий


person nkint    schedule 27.02.2011    source источник


Ответы (3)


Этот отключает все материалы осей:

ax.grid(False)
for a in (ax.w_xaxis, ax.w_yaxis, ax.w_zaxis):
    for t in a.get_ticklines()+a.get_ticklabels():
        t.set_visible(False)
    a.line.set_visible(False)
    a.pane.set_visible(False)
person David    schedule 13.05.2011

После долгого биения головой о стену я смог придумать это:

ax.grid(False)
ax.w_xaxis._AXINFO['y']['color'] = (0.9, 0.9, 0.9, 0.0)
ax.w_xaxis._AXINFO['x']['color'] = (0.9, 0.9, 0.9, 0.0)
ax.w_xaxis._AXINFO['z']['color'] = (0.9, 0.9, 0.9, 0.0)

Далее, держу пари, вы захотите, чтобы галочки, метки и т. д. были отключены. Я не могу этого сделать!

Можно подумать, что ax.axis("off"), ax.xaxis.visible(False), ax.xaxis.set_alpha(0.0) сделают что-то заметное.

Я использую версию 1.0.1 и подозреваю, что в объекте axis3d все еще много ошибок. В последнее время он видел много изменений.

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

person Paul    schedule 28.02.2011
comment
Я также пробовал некоторые очевидные вещи, такие как ax.axis("off"), но безуспешно. Престижность за то, что вы так глубоко копаетесь в API, чтобы найти это, но я согласен, что 3D-библиотеки определенно не хватает. - person JoshAdel; 28.02.2011

Вам нужно ключевое слово grid (если я правильно понял вопрос):

fig=figure()
ax = fig.add_subplot(111,projection="3d")
ax.plot(X,Y,Z)
ax.grid(on=False)
show()

Было бы полезно посмотреть, как вы настраиваете свой сюжет, но, по крайней мере, для меня, возившегося в pylab, ax.grid(on=False) помогло. Это выключает сетку, спроецированную на стороны куба. Подробнее см. API mplot3d:

http://matplotlib.sourceforge.net/mpl_toolkits/mplot3d/api.html

person JoshAdel    schedule 27.02.2011
comment
это не только сетка.. я имею в виду также серую плоскость, которая делает связанный куб.. я хотел бы визуализировать только поверхность, например, визуализировать их в opengl - person nkint; 28.02.2011
comment
@nkint - Вы сами просматривали API? Я быстро просмотрел и не смог найти метод, который, казалось бы, удаляет плоскости серых осей. Было бы полезно, если бы вы (1) точно указали, чего вы пытаетесь достичь, и (2) что вы пробовали самостоятельно. Кроме того, если вы выполнили поиск прошлых вопросов, вы найдете аналогичный вопрос, который остался без ответа: stackoverflow.com/questions/3732787/ - person JoshAdel; 28.02.2011