diff --git a/examples/ticks_and_spines/multiple_yaxis_with_spines.py b/examples/ticks_and_spines/multiple_yaxis_with_spines.py index 1ba7a6757434..6cd49f35432f 100644 --- a/examples/ticks_and_spines/multiple_yaxis_with_spines.py +++ b/examples/ticks_and_spines/multiple_yaxis_with_spines.py @@ -12,58 +12,44 @@ axes is shown in the :doc:`/gallery/axisartist/demo_parasite_axes` and :doc:`/gallery/axisartist/demo_parasite_axes2` examples. """ -import matplotlib.pyplot as plt - -def make_patch_spines_invisible(ax): - ax.set_frame_on(True) - ax.patch.set_visible(False) - for sp in ax.spines.values(): - sp.set_visible(False) +import matplotlib.pyplot as plt -fig, host = plt.subplots() +fig, ax = plt.subplots() fig.subplots_adjust(right=0.75) -par1 = host.twinx() -par2 = host.twinx() +twin1 = ax.twinx() +twin2 = ax.twinx() -# Offset the right spine of par2. The ticks and label have already been +# Offset the right spine of twin2. The ticks and label have already been # placed on the right by twinx above. -par2.spines["right"].set_position(("axes", 1.2)) -# Having been created by twinx, par2 has its frame off, so the line of its -# detached spine is invisible. First, activate the frame but make the patch -# and spines invisible. -make_patch_spines_invisible(par2) -# Second, show the right spine. -par2.spines["right"].set_visible(True) +twin2.spines["right"].set_position(("axes", 1.2)) -p1, = host.plot([0, 1, 2], [0, 1, 2], "b-", label="Density") -p2, = par1.plot([0, 1, 2], [0, 3, 2], "r-", label="Temperature") -p3, = par2.plot([0, 1, 2], [50, 30, 15], "g-", label="Velocity") +p1, = ax.plot([0, 1, 2], [0, 1, 2], "b-", label="Density") +p2, = twin1.plot([0, 1, 2], [0, 3, 2], "r-", label="Temperature") +p3, = twin2.plot([0, 1, 2], [50, 30, 15], "g-", label="Velocity") -host.set_xlim(0, 2) -host.set_ylim(0, 2) -par1.set_ylim(0, 4) -par2.set_ylim(1, 65) +ax.set_xlim(0, 2) +ax.set_ylim(0, 2) +twin1.set_ylim(0, 4) +twin2.set_ylim(1, 65) -host.set_xlabel("Distance") -host.set_ylabel("Density") -par1.set_ylabel("Temperature") -par2.set_ylabel("Velocity") +ax.set_xlabel("Distance") +ax.set_ylabel("Density") +twin1.set_ylabel("Temperature") +twin2.set_ylabel("Velocity") -host.yaxis.label.set_color(p1.get_color()) -par1.yaxis.label.set_color(p2.get_color()) -par2.yaxis.label.set_color(p3.get_color()) +ax.yaxis.label.set_color(p1.get_color()) +twin1.yaxis.label.set_color(p2.get_color()) +twin2.yaxis.label.set_color(p3.get_color()) tkw = dict(size=4, width=1.5) -host.tick_params(axis='y', colors=p1.get_color(), **tkw) -par1.tick_params(axis='y', colors=p2.get_color(), **tkw) -par2.tick_params(axis='y', colors=p3.get_color(), **tkw) -host.tick_params(axis='x', **tkw) - -lines = [p1, p2, p3] +ax.tick_params(axis='y', colors=p1.get_color(), **tkw) +twin1.tick_params(axis='y', colors=p2.get_color(), **tkw) +twin2.tick_params(axis='y', colors=p3.get_color(), **tkw) +ax.tick_params(axis='x', **tkw) -host.legend(lines, [l.get_label() for l in lines]) +ax.legend(handles=[p1, p2, p3]) plt.show()