|
2 | 2 |
|
3 | 3 | import numpy as np
|
4 | 4 | import matplotlib.pyplot as plt
|
5 |
| -from matplotlib.patches import Circle |
6 | 5 | from matplotlib.ticker import MultipleLocator, FuncFormatter
|
7 | 6 |
|
8 | 7 | np.random.seed(123)
|
|
12 | 11 | Y2 = 1+np.cos(1+X/0.75)/2
|
13 | 12 | Y3 = np.random.uniform(Y1, Y2, len(X))
|
14 | 13 |
|
15 |
| -plt.figure(figsize=(8, 8), facecolor="w") |
16 |
| -ax = plt.subplot(1, 1, 1, aspect=1) |
| 14 | +fig = plt.figure(figsize=(8, 8), facecolor="w") |
| 15 | +ax = fig.add_subplot(1, 1, 1, aspect=1) |
17 | 16 |
|
18 | 17 |
|
19 | 18 | def minor_tick(x, pos):
|
20 | 19 | if not x % 1.0:
|
21 | 20 | return ""
|
22 | 21 | return "%.2f" % x
|
23 | 22 |
|
24 |
| -plt.axes().xaxis.set_major_locator(MultipleLocator(1.000)) |
25 |
| -plt.axes().xaxis.set_minor_locator(MultipleLocator(0.250)) |
26 |
| -plt.axes().yaxis.set_major_locator(MultipleLocator(1.000)) |
27 |
| -plt.axes().yaxis.set_minor_locator(MultipleLocator(0.250)) |
28 |
| -plt.axes().xaxis.set_minor_formatter(FuncFormatter(minor_tick)) |
| 23 | +ax.xaxis.set_major_locator(MultipleLocator(1.000)) |
| 24 | +ax.xaxis.set_minor_locator(MultipleLocator(0.250)) |
| 25 | +ax.yaxis.set_major_locator(MultipleLocator(1.000)) |
| 26 | +ax.yaxis.set_minor_locator(MultipleLocator(0.250)) |
| 27 | +ax.xaxis.set_minor_formatter(FuncFormatter(minor_tick)) |
29 | 28 |
|
30 |
| -plt.xlim(0, 4) |
31 |
| -plt.ylim(0, 4) |
| 29 | +ax.set_xlim(0, 4) |
| 30 | +ax.set_ylim(0, 4) |
32 | 31 |
|
33 |
| -plt.tick_params(which='major', width=1.0) |
34 |
| -plt.tick_params(which='major', length=10) |
35 |
| -plt.tick_params(which='minor', width=1.0, labelsize=10) |
36 |
| -plt.tick_params(which='minor', length=5, labelsize=10, labelcolor='0.25') |
| 32 | +ax.tick_params(which='major', width=1.0) |
| 33 | +ax.tick_params(which='major', length=10) |
| 34 | +ax.tick_params(which='minor', width=1.0, labelsize=10) |
| 35 | +ax.tick_params(which='minor', length=5, labelsize=10, labelcolor='0.25') |
37 | 36 |
|
38 |
| -plt.grid(linestyle="--", linewidth=0.5, color='.25', zorder=-10) |
| 37 | +ax.grid(linestyle="--", linewidth=0.5, color='.25', zorder=-10) |
39 | 38 |
|
40 |
| -plt.plot(X, Y1, c=(0.25, 0.25, 1.00), lw=2, label="Blue signal", zorder=10) |
41 |
| -plt.plot(X, Y2, c=(1.00, 0.25, 0.25), lw=2, label="Red signal") |
42 |
| -plt.scatter(X, Y3, c='w') |
| 39 | +ax.plot(X, Y1, c=(0.25, 0.25, 1.00), lw=2, label="Blue signal", zorder=10) |
| 40 | +ax.plot(X, Y2, c=(1.00, 0.25, 0.25), lw=2, label="Red signal") |
| 41 | +ax.scatter(X, Y3, c='w') |
43 | 42 |
|
44 |
| -plt.title("Anatomy of a figure", fontsize=20) |
45 |
| -plt.xlabel("X axis label") |
46 |
| -plt.ylabel("Y axis label") |
| 43 | +ax.set_title("Anatomy of a figure", fontsize=20) |
| 44 | +ax.set_xlabel("X axis label") |
| 45 | +ax.set_ylabel("Y axis label") |
47 | 46 |
|
48 |
| -plt.legend(frameon=False) |
| 47 | +ax.legend(frameon=False) |
49 | 48 |
|
50 | 49 |
|
51 | 50 | def circle(x, y, radius=0.15):
|
52 |
| - center = x, y |
53 |
| - circle = Circle(center, radius, clip_on=False, zorder=10, |
54 |
| - edgecolor='white', facecolor='none', linewidth=5.0) |
55 |
| - plt.axes().add_artist(circle) |
56 |
| - circle = Circle(center, radius, clip_on=False, zorder=20, |
57 |
| - edgecolor='none', facecolor='black', alpha=.025) |
58 |
| - plt.axes().add_artist(circle) |
59 |
| - circle = Circle(center, radius, clip_on=False, zorder=30, |
60 |
| - edgecolor='black', facecolor='none', linewidth=1.0) |
61 |
| - plt.axes().add_artist(circle) |
| 51 | + from matplotlib.patches import Circle |
| 52 | + from matplotlib.patheffects import withStroke |
| 53 | + circle = Circle((x, y), radius, clip_on=False, zorder=10, linewidth=1, |
| 54 | + edgecolor='black', facecolor=(0, 0, 0, .0125), |
| 55 | + path_effects=[withStroke(linewidth=5, foreground='w')]) |
| 56 | + ax.add_artist(circle) |
62 | 57 |
|
63 | 58 |
|
64 | 59 | def text(x, y, text):
|
65 |
| - plt.text(x, y, text, backgroundcolor="white", |
66 |
| - ha='center', va='top', weight='bold', color='blue') |
| 60 | + ax.text(x, y, text, backgroundcolor="white", |
| 61 | + ha='center', va='top', weight='bold', color='blue') |
67 | 62 |
|
68 | 63 |
|
69 | 64 | # Minor tick
|
@@ -123,21 +118,21 @@ def text(x, y, text):
|
123 | 118 | text(-0.3, 0.45, "Figure")
|
124 | 119 |
|
125 | 120 | color = 'blue'
|
126 |
| -plt.annotate('Spines', xy=(4.0, 0.35), xycoords='data', |
127 |
| - xytext=(3.3, 0.5), textcoords='data', |
128 |
| - weight='bold', color=color, |
129 |
| - arrowprops=dict(arrowstyle='->', |
130 |
| - connectionstyle="arc3", |
131 |
| - color=color)) |
132 |
| - |
133 |
| -plt.annotate('', xy=(3.15, 0.0), xycoords='data', |
134 |
| - xytext=(3.45, 0.45), textcoords='data', |
135 |
| - weight='bold', color=color, |
136 |
| - arrowprops=dict(arrowstyle='->', |
137 |
| - connectionstyle="arc3", |
138 |
| - color=color)) |
139 |
| - |
140 |
| -plt.text(4.0, -0.4, "Made with http://matplotlib.org", |
141 |
| - fontsize=10, ha="right", color='.5') |
| 121 | +ax.annotate('Spines', xy=(4.0, 0.35), xycoords='data', |
| 122 | + xytext=(3.3, 0.5), textcoords='data', |
| 123 | + weight='bold', color=color, |
| 124 | + arrowprops=dict(arrowstyle='->', |
| 125 | + connectionstyle="arc3", |
| 126 | + color=color)) |
| 127 | + |
| 128 | +ax.annotate('', xy=(3.15, 0.0), xycoords='data', |
| 129 | + xytext=(3.45, 0.45), textcoords='data', |
| 130 | + weight='bold', color=color, |
| 131 | + arrowprops=dict(arrowstyle='->', |
| 132 | + connectionstyle="arc3", |
| 133 | + color=color)) |
| 134 | + |
| 135 | +ax.text(4.0, -0.4, "Made with http://matplotlib.org", |
| 136 | + fontsize=10, ha="right", color='.5') |
142 | 137 |
|
143 | 138 | plt.show()
|
0 commit comments