Matplotlib の固定方向矢印

Beginner

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

はじめに

この実験では、Matplotlib で固定方向矢印を作成する方法を学びます。固定方向矢印は、特定の方向を指し、プロットに固定された矢印です。これらの矢印は、プロット内の特定の方向や向きを示すのに役立ちます。簡単な矢印や、高コントラストで回転させた矢印の作成方法を学びます。

VM のヒント

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

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

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

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

まず、Matplotlib、NumPy、Matplotlib フォントマネージャ、および mpl_toolkits.axes_grid1 からの AnchoredDirectionArrows などの必要なライブラリをインポートする必要があります。これらのライブラリを使用して固定方向矢印を作成します。

import matplotlib.pyplot as plt
import numpy as np

import matplotlib.font_manager as fm
from mpl_toolkits.axes_grid1.anchored_artists import AnchoredDirectionArrows

プロットを作成する

次に、NumPy を使って簡単なプロットを作成します。このプロットは、固定方向矢印の背景として機能します。

## Fixing random state for reproducibility
np.random.seed(19680801)

fig, ax = plt.subplots()
ax.imshow(np.random.random((10, 10)))

簡単な矢印を作成する

次に、AnchoredDirectionArrows クラスを使って簡単な固定方向矢印を作成します。この矢印は、プロット内の X 方向と Y 方向を示します。

## Simple example
simple_arrow = AnchoredDirectionArrows(ax.transAxes, 'X', 'Y')
ax.add_artist(simple_arrow)

高コントラストの矢印を作成する

次に、高コントラストの固定方向矢印を作成します。この矢印は、白い輪郭と黒い塗りつぶしを持ちます。

high_contrast_part_1 = AnchoredDirectionArrows(
                            ax.transAxes,
                            '111', r'11$\overline{2}$',
                            loc='upper right',
                            arrow_props={'ec': 'w', 'fc': 'none', 'alpha': 1,
                                         'lw': 2}
                            )
ax.add_artist(high_contrast_part_1)

high_contrast_part_2 = AnchoredDirectionArrows(
                            ax.transAxes,
                            '111', r'11$\overline{2}$',
                            loc='upper right',
                            arrow_props={'ec': 'none', 'fc': 'k'},
                            text_props={'ec': 'w', 'fc': 'k', 'lw': 0.4}
                            )
ax.add_artist(high_contrast_part_2)

回転させた矢印を作成する

このステップでは、回転させた固定方向矢印を作成します。この矢印は 30 度回転させ、明朝体のフォントを持ちます。

fontprops = fm.FontProperties(family='serif')

rotated_arrow = AnchoredDirectionArrows(
                    ax.transAxes,
                    '30', '120',
                    loc='center',
                    color='w',
                    angle=30,
                    fontproperties=fontprops
                    )
ax.add_artist(rotated_arrow)

矢印の方向を変更する

このステップでは、異なる方向を向く 3 つの固定方向矢印を作成します。これらの矢印は、異なる長さとアスペクト比を持ちます。

a1 = AnchoredDirectionArrows(
        ax.transAxes, 'A', 'B', loc='lower center',
        length=-0.15,
        sep_x=0.03, sep_y=0.03,
        color='r'
    )
ax.add_artist(a1)

a2 = AnchoredDirectionArrows(
        ax.transAxes, 'A', ' B', loc='lower left',
        aspect_ratio=-1,
        sep_x=0.01, sep_y=-0.02,
        color='orange'
        )
ax.add_artist(a2)


a3 = AnchoredDirectionArrows(
        ax.transAxes, ' A', 'B', loc='lower right',
        length=-0.15,
        aspect_ratio=-1,
        sep_y=-0.1, sep_x=0.04,
        color='cyan'
        )
ax.add_artist(a3)

プロットを表示する

最後に、すべての固定方向矢印付きのプロットを表示します。

plt.show()

まとめ

この実験では、Matplotlib で固定方向矢印を作成する方法を学びました。シンプルな矢印や、高コントラストと回転させた矢印を作成しました。また、矢印の方向やアスペクト比を変更する方法も学びました。固定方向矢印は、プロット内の特定の方向や向きを示すのに役立ちます。