From 77c8cf3bc0940949eace94f20850bd4b3fa94295 Mon Sep 17 00:00:00 2001 From: Tim Hoffmann <2836374+timhoffm@users.noreply.github.com> Date: Fri, 21 Mar 2025 08:24:14 +0100 Subject: [PATCH] Backport PR #29755: DOC: Simplify annotation arrow style reference --- .../fancyarrow_demo.py | 28 ++++++++----------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/galleries/examples/text_labels_and_annotations/fancyarrow_demo.py b/galleries/examples/text_labels_and_annotations/fancyarrow_demo.py index 8d0027831e4a..4f45a9a72a47 100644 --- a/galleries/examples/text_labels_and_annotations/fancyarrow_demo.py +++ b/galleries/examples/text_labels_and_annotations/fancyarrow_demo.py @@ -19,35 +19,31 @@ nrow = (len(styles) + 1) // ncol axs = (plt.figure(figsize=(4 * ncol, 1 + nrow)) .add_gridspec(1 + nrow, ncol, - wspace=.7, left=.1, right=.9, bottom=0, top=1).subplots()) + wspace=0, hspace=0, left=0, right=1, bottom=0, top=1).subplots()) for ax in axs.flat: + ax.set_xlim(-0.5, 4) ax.set_axis_off() for ax in axs[0, :]: - ax.text(0, .5, "arrowstyle", - transform=ax.transAxes, size="large", color="tab:blue", - horizontalalignment="center", verticalalignment="center") - ax.text(.35, .5, "default parameters", - transform=ax.transAxes, - horizontalalignment="left", verticalalignment="center") + ax.text(-0.25, 0.5, "arrowstyle", size="large", color="tab:blue") + ax.text(1.25, .5, "default parameters", size="large") for ax, (stylename, stylecls) in zip(axs[1:, :].T.flat, styles.items()): - l, = ax.plot(.25, .5, "ok", transform=ax.transAxes) - ax.annotate(stylename, (.25, .5), (-0.1, .5), - xycoords="axes fraction", textcoords="axes fraction", - size="large", color="tab:blue", - horizontalalignment="center", verticalalignment="center", + # draw dot and annotation with arrowstyle + l, = ax.plot(1, 0, "o", color="grey") + ax.annotate(stylename, (1, 0), (0, 0), + size="large", color="tab:blue", ha="center", va="center", arrowprops=dict( arrowstyle=stylename, connectionstyle="arc3,rad=-0.05", color="k", shrinkA=5, shrinkB=5, patchB=l, ), - bbox=dict(boxstyle="square", fc="w")) + bbox=dict(boxstyle="square", fc="w", ec="grey")) + # draw default parameters # wrap at every nth comma (n = 1 or 2, depending on text length) s = str(inspect.signature(stylecls))[1:-1] n = 2 if s.count(',') > 3 else 1 - ax.text(.35, .5, + ax.text(1.25, 0, re.sub(', ', lambda m, c=itertools.count(1): m.group() if next(c) % n else '\n', s), - transform=ax.transAxes, - horizontalalignment="left", verticalalignment="center") + verticalalignment="center") plt.show()
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: