Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 14d4327

Browse files
committed
Add a test for #1957
1 parent 377facb commit 14d4327

File tree

2 files changed

+47
-0
lines changed

2 files changed

+47
-0
lines changed

lib/matplotlib/tests/test_axes.py

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1090,3 +1090,50 @@ def test_mixed_collection():
10901090

10911091
ax.set_xlim(0, 16)
10921092
ax.set_ylim(0, 16)
1093+
1094+
1095+
@image_comparison(baseline_images=['twin_spines'], remove_text=True,
1096+
extensions=['png'])
1097+
def test_twin_spines():
1098+
1099+
def make_patch_spines_invisible(ax):
1100+
ax.set_frame_on(True)
1101+
ax.patch.set_visible(False)
1102+
for sp in ax.spines.itervalues():
1103+
sp.set_visible(False)
1104+
1105+
fig = plt.figure(figsize=(4, 3))
1106+
fig.subplots_adjust(right=0.75)
1107+
1108+
host = fig.add_subplot(111)
1109+
par1 = host.twinx()
1110+
par2 = host.twinx()
1111+
1112+
# Offset the right spine of par2. The ticks and label have already been
1113+
# placed on the right by twinx above.
1114+
par2.spines["right"].set_position(("axes", 1.2))
1115+
# Having been created by twinx, par2 has its frame off, so the line of its
1116+
# detached spine is invisible. First, activate the frame but make the patch
1117+
# and spines invisible.
1118+
make_patch_spines_invisible(par2)
1119+
# Second, show the right spine.
1120+
par2.spines["right"].set_visible(True)
1121+
1122+
p1, = host.plot([0, 1, 2], [0, 1, 2], "b-")
1123+
p2, = par1.plot([0, 1, 2], [0, 3, 2], "r-")
1124+
p3, = par2.plot([0, 1, 2], [50, 30, 15], "g-")
1125+
1126+
host.set_xlim(0, 2)
1127+
host.set_ylim(0, 2)
1128+
par1.set_ylim(0, 4)
1129+
par2.set_ylim(1, 65)
1130+
1131+
host.yaxis.label.set_color(p1.get_color())
1132+
par1.yaxis.label.set_color(p2.get_color())
1133+
par2.yaxis.label.set_color(p3.get_color())
1134+
1135+
tkw = dict(size=4, width=1.5)
1136+
host.tick_params(axis='y', colors=p1.get_color(), **tkw)
1137+
par1.tick_params(axis='y', colors=p2.get_color(), **tkw)
1138+
par2.tick_params(axis='y', colors=p3.get_color(), **tkw)
1139+
host.tick_params(axis='x', **tkw)

0 commit comments

Comments
 (0)