はじめに
この実験では、Python Matplotlib でハッチを使用してグラフにテクスチャを追加する方法を学びます。ハッチは、グラフの領域を塗りつぶすために使用されるパターンです。ハッチを使用すると、グラフの異なる部分を区別したり、グラフに視覚的な興味を加えたりすることができます。
VM のヒント
VM の起動が完了したら、左上隅をクリックして ノートブック タブに切り替え、Jupyter Notebook を使用して練習します。
場合によっては、Jupyter Notebook が読み込み完了するまで数秒待つ必要があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。
学習中に問題に遭遇した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。そうすると、迅速に問題を解決します。
ライブラリのインポート
始めるには、必要なライブラリをインポートする必要があります。この場合、Matplotlib と NumPy を使用します。NumPy は、Python プログラミング言語用のライブラリで、大きな多次元配列や行列に対するサポートとともに、これらの配列を操作するための多数の高度な数学関数が用意されています。
import matplotlib.pyplot as plt
import numpy as np
データの作成
次に、グラフに使用するデータを作成する必要があります。この場合、NumPy ライブラリを使用して 2 つの配列を作成します。
x = np.arange(1, 5)
y1 = np.arange(1, 5)
y2 = np.ones(y1.shape) * 4
ハッチ付きの棒グラフを作成する
データがあるので、ハッチ付きの棒グラフを作成できます。ハッチを使って、グラフの棒にパターンを作成できます。この場合、棒にハッチを追加するために hatch パラメータを使用します。
plt.bar(x, y1, edgecolor='black', hatch="/")
plt.bar(x, y2, bottom=y1, edgecolor='black', hatch='//')
複数のハッチ付きの棒グラフを作成する
棒グラフでは複数のハッチを使うこともできます。この場合、ハッチの配列を使って棒に複数のハッチを作成します。
plt.bar(x, y1, edgecolor='black', hatch=['--', '+', 'x', '\\'])
plt.bar(x, y2, bottom=y1, edgecolor='black', hatch=['*', 'o', 'O', '.'])
ハッチ付きのパッチを持つプロットを作成する
プロットではパッチにハッチを使うこともできます。この場合、fill_between 関数を使ってハッチ付きのパッチを作成します。
x = np.arange(0, 40, 0.2)
plt.fill_between(x, np.sin(x) * 4 + 30, y2=0, hatch='///', zorder=2, fc='c')
ハッチ付きの楕円パッチを追加する
ハッチ付きのパッチをプロットに追加することもできます。この場合、add_patch 関数を使って楕円パッチをプロットに追加します。
plt.gca().add_patch(Ellipse((4, 50), 10, 10, fill=True, hatch='*', facecolor='y'))
ハッチ付きの多角形パッチを追加する
ハッチ付きの多角形パッチを追加することもできます。この場合、add_patch 関数を使って多角形パッチをプロットに追加します。
plt.gca().add_patch(Polygon([(10, 20), (30, 50), (50, 10)], hatch='\\/...', facecolor='g'))
プロットの範囲とアスペクト比を設定する
最後に、プロットの範囲とアスペクト比を設定して、望むような見た目にすることができます。
plt.xlim([0, 40])
plt.ylim([10, 60])
plt.gca().set_aspect(1)
まとめ
この実験では、Python の Matplotlib を使ってハッチを使ってプロットにテクスチャを追加する方法を学びました。ハッチ付きの棒グラフ、複数のハッチ付きの棒グラフ、ハッチ付きのパッチを持つプロット、ハッチ付きの楕円パッチ、ハッチ付きの多角形パッチを作成する方法、およびプロットの範囲とアスペクト比を設定する方法を学びました。