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()