1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| import matplotlib.patches as mpatches import matplotlib.pyplot as plt
styles = mpatches.ArrowStyle.get_styles()
ncol = 2 nrow = (len(styles) + 1) // ncol figheight = (nrow + 0.5) fig1 = plt.figure(1, (4 * ncol / 1.5, figheight / 1.5)) fontsize = 0.2 * 70
ax = fig1.add_axes([0, 0, 1, 1], frameon=False, aspect=1.)
ax.set_xlim(0, 4 * ncol) ax.set_ylim(0, figheight)
def to_texstring(s): s = s.replace("<", r"$<$") s = s.replace(">", r"$>$") s = s.replace("|", r"$|$") return s
for i, (stylename, styleclass) in enumerate(sorted(styles.items())): x = 3.2 + (i // nrow) * 4 y = (figheight - 0.7 - i % nrow) p = mpatches.Circle((x, y), 0.2) ax.add_patch(p)
ax.annotate(to_texstring(stylename), (x, y), (x - 1.2, y), ha="right", va="center", size=fontsize, arrowprops=dict(arrowstyle=stylename, patchB=p, shrinkA=5, shrinkB=5, fc="k", ec="k", connectionstyle="arc3,rad=-0.05", ), bbox=dict(boxstyle="square", fc="w"))
ax.xaxis.set_visible(False) ax.yaxis.set_visible(False)
plt.show()
|