Reputation: 475
I have 3d plot surface. And I want disable vertical camera rotation for this plot.
Upvotes: 3
Views: 1021
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
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