Revision: 8740 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8740&view=rev Author: leejjoon Date: 2010-10-11 04:50:58 +0000 (Mon, 11 Oct 2010)
Log Message: ----------- revise multiple_yaxis_with_spines.py as suggested by Stan West Modified Paths: -------------- trunk/matplotlib/examples/pylab_examples/multiple_yaxis_with_spines.py Modified: trunk/matplotlib/examples/pylab_examples/multiple_yaxis_with_spines.py =================================================================== --- trunk/matplotlib/examples/pylab_examples/multiple_yaxis_with_spines.py 2010-10-10 20:30:37 UTC (rev 8739) +++ trunk/matplotlib/examples/pylab_examples/multiple_yaxis_with_spines.py 2010-10-11 04:50:58 UTC (rev 8740) @@ -1,66 +1,54 @@ import matplotlib.pyplot as plt def make_patch_spines_invisible(ax): - par2.set_frame_on(True) - par2.patch.set_visible(False) - for sp in par2.spines.itervalues(): + ax.set_frame_on(True) + ax.patch.set_visible(False) + for sp in ax.spines.itervalues(): sp.set_visible(False) -def make_spine_invisible(ax, direction): - if direction in ["right", "left"]: - ax.yaxis.set_ticks_position(direction) - ax.yaxis.set_label_position(direction) - elif direction in ["top", "bottom"]: - ax.xaxis.set_ticks_position(direction) - ax.xaxis.set_label_position(direction) - else: - raise ValueError("Unknown Direction : %s" % (direction,)) +fig = plt.figure() +fig.subplots_adjust(right=0.75) - ax.spines[direction].set_visible(True) +host = fig.add_subplot(111) +par1 = host.twinx() +par2 = host.twinx() +# Offset the right spine of par2. 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) -if 1: - fig = plt.figure(1) +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") - host = fig.add_subplot(111) +host.set_xlim(0, 2) +host.set_ylim(0, 2) +par1.set_ylim(0, 4) +par2.set_ylim(1, 65) - host.set_xlabel("Distance") +host.set_xlabel("Distance") +host.set_ylabel("Density") +par1.set_ylabel("Temperature") +par2.set_ylabel("Velocity") - par1 = host.twinx() - par2 = host.twinx() +host.yaxis.label.set_color(p1.get_color()) +par1.yaxis.label.set_color(p2.get_color()) +par2.yaxis.label.set_color(p3.get_color()) - par2.spines["right"].set_position(("axes", 1.2)) - make_patch_spines_invisible(par2) - make_spine_invisible(par2, "right") +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) - plt.subplots_adjust(right=0.75) +lines = [p1, p2, p3] +host.legend(lines, [l.get_label() for l in lines]) - 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") - - host.set_xlim(0, 2) - host.set_ylim(0, 2) - par1.set_ylim(0, 4) - par2.set_ylim(1, 65) - - host.set_xlabel("Distance") - host.set_ylabel("Density") - par1.set_ylabel("Temperature") - par2.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()) - - 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] - host.legend(lines, [l.get_label() for l in lines]) - plt.show() - +plt.show() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ Beautiful is writing same markup. Internet Explorer 9 supports standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3. Spend less time writing and rewriting code and more time creating great experiences on the web. Be a part of the beta today. http://p.sf.net/sfu/beautyoftheweb _______________________________________________ Matplotlib-checkins mailing list Matplotlib-checkins@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins