Подтвердить что ты не робот

Как скрыть оси в matplotlib 3d?

Как я могу сделать 3D-график, не показывая оси?

При построении 3D-графика Matplotlib не только рисует оси x, y и z, он рисует светло-серые сетки на плоскостях x-y, y-z и x-z. Я хотел бы нарисовать "свободно плавающий" 3D-график, без которого не было ни одного из этих элементов.

Материал, который я пробовал:

# Doesn't work; this hides the plot, not the axes
my_3d_axes.set_visible(False)

# Doesn't do anything. Also, there no get_zaxis() function.
my_3d_axes.get_xaxis().set_visible(False)
my_3d_axes.get_yaxis().set_visible(False)
4b9b3361

Ответ 1

Ben Root предоставил патч, который исправляет это для 1.0.1. Его можно найти в приложении к последнему электронному письму этой темы. Процитировать Бен:

Хорошо, похоже, что скрытие трехмерных осей было добавлено после версии v1.0 (но до того, как я начал работать над mplot3d). Этот патч должен включать базовую функцию без вмешательства в существующие функции. Чтобы скрыть оси, вам нужно установить для частного пользователя "_axis3don" значение "False", например:

ax = plt.gca(projection = '3d') ax._axis3don = False

Если вы сделаете это так, то вы получите то, что хотите сейчас, и ваш код по-прежнему будет совместим с mplot3d при обновлении (хотя предпочтительным методом было бы вызвать set_axis_on() или set_axis_off()).

Я надеюсь, что это поможет!

Бен Рут