pirr
pirr

Reputation: 475

How disable vertical camera rotation for 3d plot in Matplotlib?

I have 3d plot surface. And I want disable vertical camera rotation for this plot.

Upvotes: 3

Views: 1021

Answers (2)

pirr
pirr

Reputation: 475

My solution:

def disable_vert_rotation(event):
    azim = ax.azim
    ax.view_init(elev=0, azim=azim)


fig.canvas.mpl_connect('motion_notify_event', disable_vert_rotation)

Upvotes: 1

Serenity
Serenity

Reputation: 36715

By default you may only disable mouse for your plot:

from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
X, Y, Z = axes3d.get_test_data(0.1)
# disable mouse
ax.disable_mouse_rotation()
ax.plot_wireframe(X, Y, Z, rstride=5, cstride=5)
# set start rotation 
ax.view_init(30, 120)
plt.show()

Upvotes: 2

Related Questions