Matplotlib を使って矢印参照チャートを作成する

PythonPythonBeginner
今すぐ練習

This tutorial is from open-source community. Access the source code

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

このチュートリアルでは、Python の Matplotlib を使って矢印スタイルの参照チャートを作成するプロセスを案内します。このチャートは、~.Axes.annotate に利用可能なさまざまな矢印スタイルを表示します。

VM のヒント

VM の起動が完了したら、左上隅をクリックして ノートブック タブに切り替え、Jupyter Notebook を使って練習しましょう。

Jupyter Notebook の読み込みには数秒かかる場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。

学習中に問題が発生した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。

必要なライブラリをインポートする

矢印スタイルの参照チャートを作成するために必要なライブラリをインポートします。

import inspect
import itertools
import re

import matplotlib.pyplot as plt

import matplotlib.patches as mpatches

矢印スタイルを取得する

mpatches.ArrowStyle.get_styles() を使って、~.Axes.annotate に利用可能なすべての矢印スタイルを取得します。

styles = mpatches.ArrowStyle.get_styles()

グラフを設定する

plt.figure()add_gridspec() を使ってグラフを設定します。グラフは2列とn行のグリッドになっており、nは矢印スタイルの数です。グリッドの各セルには矢印スタイルとその既定のパラメータが含まれます。

ncol = 2
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())
for ax in axs.flat:
    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.annotate() を使って、矢印スタイル名とその既定のパラメータをセルに追加します。

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",
                arrowprops=dict(
                    arrowstyle=stylename, connectionstyle="arc3,rad=-0.05",
                    color="k", shrinkA=5, shrinkB=5, patchB=l,
                ),
                bbox=dict(boxstyle="square", fc="w"))
    ## 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,
            re.sub(', ', lambda m, c=itertools.count(1): m.group()
                   if next(c) % n else '\n', s),
            transform=ax.transAxes,
            horizontalalignment="left", verticalalignment="center")

チャートを表示する

plt.show() を使って矢印スタイルの参照チャートを表示します。

plt.show()

まとめ

このチュートリアルでは、PythonのMatplotlibを使って矢印スタイルの参照チャートを作成する方法を学びました。mpatches.ArrowStyle.get_styles() を使って、~.Axes.annotate に利用可能なすべての矢印スタイルを取得し、plt.figure()add_gridspec() を使ってグラフを設定し、グリッドの各セルに各矢印スタイルを描画し、plt.show() を使ってチャートを表示しました。