diff --git a/examples/api/two_scales.py b/examples/api/two_scales.py index a22f64bbbdc4..45b5fea722a6 100644 --- a/examples/api/two_scales.py +++ b/examples/api/two_scales.py @@ -3,21 +3,16 @@ Plots with different scales =========================== -Demonstrate how to do two plots on the same axes with different left +Demonstrate how to do two plots on the same axes with different left and right scales. +The trick is to use *two different axes* that share the same *x* axis. +You can use separate `matplotlib.ticker` formatters and locators as +desired since the two axes are independent. -The trick is to use *2 different axes*. Turn the axes rectangular -frame off on the 2nd axes to keep it from obscuring the first. -Manually set the tick locs and labels as desired. You can use -separate matplotlib.ticker formatters and locators as desired since -the two axes are independent. - -This is achieved in the following example by calling the Axes.twinx() -method, which performs this work. See the source of twinx() in -axes.py for an example of how to do it for different x scales. (Hint: -use the xaxis instance and call tick_bottom and tick_top in place of -tick_left and tick_right.) +Such axes are generated by calling the `Axes.twinx` method. Likewise, +`Axes.twiny` is available to generate axes that share a *y* axis but +have different top and bottom scales. The twinx and twiny methods are also exposed as pyplot functions. @@ -31,16 +26,15 @@ s1 = np.exp(t) ax1.plot(t, s1, 'b-') ax1.set_xlabel('time (s)') -# Make the y-axis label and tick labels match the line color. +# Make the y-axis label, ticks and tick labels match the line color. ax1.set_ylabel('exp', color='b') -for tl in ax1.get_yticklabels(): - tl.set_color('b') - +ax1.tick_params('y', colors='b') ax2 = ax1.twinx() -s2 = np.sin(2*np.pi*t) +s2 = np.sin(2 * np.pi * t) ax2.plot(t, s2, 'r.') ax2.set_ylabel('sin', color='r') -for tl in ax2.get_yticklabels(): - tl.set_color('r') +ax2.tick_params('y', colors='r') + +fig.tight_layout() plt.show()