Multiple y-scales, but only one for panning and zooming

Consider the following python code to build a matplotlib shape:

import matplotlib.pylab as pp import numpy as np alpha = np.linspace(0, 2 * np.pi, 400) sig1 = np.sin(alpha) sig2 = np.sin(2 * alpha) + 2 * (alpha > np.pi) ax1 = pp.subplot(111) ax2 = ax1.twinx() ax1.plot(alpha, sig1, color='b') ax2.plot(alpha, sig2, color='r') ax1.set_ylabel('sig1 value', color='b') ax2.set_ylabel('sig2 value', color='r') pp.grid() pp.show() 

Give me a good plot

enter image description here

I would like to learn how to disable one of the axes for pan / zoom, so when I use the pan / zoom tool, only ax2 will scale, for example. Is there any way to do this? I want to do this programmatically.

+4
source share
1 answer

You can do this using ax2.set_navigate(False) :

 from matplotlib.pyplot import * import numpy as np fig,ax1 = subplots(1,1) ax2 = ax1.twinx() ax2.set_navigate(False) x = np.linspace(0,2*np.pi,100) ax1.plot(x,np.sin(x),'b') ax1.set_xlabel('Scaleable axis') ax1.set_ylabel('Scaleable axis') ax2.plot(x,np.sin(x+1),'r') ax2.set_ylabel('Static axis',weight='bold') 
+3
source

All Articles