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

Skip to content

Commit 9dbcbe2

Browse files
authored
Merge pull request #24377 from timhoffm/doc-spine-positions
DOC: Cleanup Spine placement example
2 parents 701f59e + 78758e9 commit 9dbcbe2

File tree

2 files changed

+32
-36
lines changed

2 files changed

+32
-36
lines changed

examples/spines/spine_placement_demo.py

Lines changed: 26 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
"""
22
===============
3-
Spine Placement
3+
Spine placement
44
===============
55
6-
Adjusting the location and appearance of axis spines.
6+
The position of the axis spines can be influenced using `~.Spine.set_position`.
77
88
Note: If you want to obtain arrow heads at the ends of the axes, also check
99
out the :doc:`/gallery/spines/centered_spines_with_arrows` example.
@@ -14,49 +14,41 @@
1414

1515
###############################################################################
1616

17-
fig = plt.figure()
18-
x = np.linspace(-np.pi, np.pi, 100)
17+
x = np.linspace(0, 2*np.pi, 100)
1918
y = 2 * np.sin(x)
2019

21-
ax = fig.add_subplot(2, 2, 1)
22-
ax.set_title('centered spines')
20+
fig, ax_dict = plt.subplot_mosaic(
21+
[['center', 'zero'],
22+
['axes', 'data']]
23+
)
24+
fig.suptitle('Spine positions')
25+
26+
27+
ax = ax_dict['center']
28+
ax.set_title("'center'")
2329
ax.plot(x, y)
24-
ax.spines.left.set_position('center')
25-
ax.spines.right.set_color('none')
26-
ax.spines.bottom.set_position('center')
27-
ax.spines.top.set_color('none')
28-
ax.xaxis.set_ticks_position('bottom')
29-
ax.yaxis.set_ticks_position('left')
30+
ax.spines[['left', 'bottom']].set_position('center')
31+
ax.spines[['top', 'right']].set_visible(False)
3032

31-
ax = fig.add_subplot(2, 2, 2)
32-
ax.set_title('zeroed spines')
33+
ax = ax_dict['zero']
34+
ax.set_title("'zero'")
3335
ax.plot(x, y)
34-
ax.spines.left.set_position('zero')
35-
ax.spines.right.set_color('none')
36-
ax.spines.bottom.set_position('zero')
37-
ax.spines.top.set_color('none')
38-
ax.xaxis.set_ticks_position('bottom')
39-
ax.yaxis.set_ticks_position('left')
36+
ax.spines[['left', 'bottom']].set_position('zero')
37+
ax.spines[['top', 'right']].set_visible(False)
4038

41-
ax = fig.add_subplot(2, 2, 3)
42-
ax.set_title('spines at axes (0.6, 0.1)')
39+
ax = ax_dict['axes']
40+
ax.set_title("'axes' (0.2, 0.2)")
4341
ax.plot(x, y)
44-
ax.spines.left.set_position(('axes', 0.6))
45-
ax.spines.right.set_color('none')
46-
ax.spines.bottom.set_position(('axes', 0.1))
47-
ax.spines.top.set_color('none')
48-
ax.xaxis.set_ticks_position('bottom')
49-
ax.yaxis.set_ticks_position('left')
42+
ax.spines.left.set_position(('axes', 0.2))
43+
ax.spines.bottom.set_position(('axes', 0.2))
44+
ax.spines[['top', 'right']].set_visible(False)
5045

51-
ax = fig.add_subplot(2, 2, 4)
52-
ax.set_title('spines at data (1, 2)')
46+
ax = ax_dict['data']
47+
ax.set_title("'data' (1, 2)")
5348
ax.plot(x, y)
5449
ax.spines.left.set_position(('data', 1))
55-
ax.spines.right.set_color('none')
5650
ax.spines.bottom.set_position(('data', 2))
57-
ax.spines.top.set_color('none')
58-
ax.xaxis.set_ticks_position('bottom')
59-
ax.yaxis.set_ticks_position('left')
51+
ax.spines[['top', 'right']].set_visible(False)
6052

6153
###############################################################################
6254
# Define a method that adjusts the location of the axis spines

lib/matplotlib/spines.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -302,8 +302,12 @@ def set_position(self, position):
302302
303303
Additionally, shorthand notations define a special positions:
304304
305-
* 'center' -> ('axes', 0.5)
306-
* 'zero' -> ('data', 0.0)
305+
* 'center' -> ``('axes', 0.5)``
306+
* 'zero' -> ``('data', 0.0)``
307+
308+
Examples
309+
--------
310+
:doc:`/gallery/spines/spine_placement_demo`
307311
"""
308312
if position in ('center', 'zero'): # special positions
309313
pass

0 commit comments

Comments
 (0)