Matplotlib 線グラフのカスタマイズ

MatplotlibBeginner
オンラインで実践に進む

はじめに

Matplotlib は、静的、アニメーション、インタラクティブな可視化を作成するための強力な Python ライブラリです。基本的なプロットの作成は簡単ですが、データを明確、理解しやすく、視覚的に魅力的にするためには、カスタマイズが重要です。

この実験では、シンプルな線グラフから始め、段階的にカスタマイズしていきます。線の色を変更する方法、データポイントにマーカーを追加する方法、線のスタイルを変更する方法、プロットにタイトルを追加する方法、および軸の制限を調整する方法を学びます。

この実験環境では WebIDE を使用しているため、GUI ウィンドウでプロットを表示することはできません。代わりに、plt.savefig() を使用してすべてのプロットを画像ファイルとして保存します。生成された画像は、IDE 内で直接表示できます。

始めましょう!

plt.plot(color='red') を使用してカスタムカラーの線を描画する

このステップでは、プロットの線の色を変更する方法を学びます。デフォルトでは、Matplotlib は定義済みの色のセットを順番に使用します。しかし、plt.plot() 関数の color パラメータを使用すると、好きな色を簡単に指定できます。

まず、サイン波の基本的なプロットを作成しましょう。NumPy を使用してデータポイントを生成します。

左側のファイルエクスプローラーで ~/project ディレクトリにある main.py ファイルを開きます。その内容を以下のコードに置き換えてください。このコードはサイン波をプロットし、赤色で表示します。

import matplotlib.pyplot as plt
import numpy as np

## プロット用のデータを生成
x = np.arange(0, 10, 0.1)
y = np.sin(x)

## カスタムカラーでデータをプロット
plt.plot(x, y, color='red')

## プロットをファイルに保存
plt.savefig('/home/labex/project/plot_color.png')

print("Plot saved as plot_color.png")

main.py ファイルを更新したら、保存してください。次に、IDE の下部にあるターミナルからスクリプトを実行します。

python3 main.py

ターミナルに以下の出力が表示されるはずです。

Plot saved as plot_color.png

plot_color.png という名前の新しいファイルが ~/project ディレクトリに出現します。それをダブルクリックして開き、最初のカスタマイズされたプロットを表示してください。赤いサイン波が表示されます。

Plot color

plt.plot(marker='o') を使用してマーカーを追加する

このステップでは、データポイントにマーカーを追加します。マーカーは、線上の各データポイントの正確な位置を強調するのに役立ち、特にデータポイントが少ない場合に便利です。

plt.plot() 関数の marker パラメータを使用してマーカーを追加できます。マーカーには、円を表す 'o'、十字を表す 'x'、星を表す '*' など、多くのスタイルがあります。

main.py ファイルを変更して、プロットに円マーカーを追加しましょう。また、前のステップからの進捗を保持するために、出力ファイル名を plot_marker.png に変更します。

main.py ファイルを以下のコードで更新してください。

import matplotlib.pyplot as plt
import numpy as np

## プロット用のデータを生成
x = np.arange(0, 10, 0.1)
y = np.sin(x)

## カスタムカラーとマーカーでデータをプロット
plt.plot(x, y, color='red', marker='o')

## プロットを新しいファイルに保存
plt.savefig('/home/labex/project/plot_marker.png')

print("Plot saved as plot_marker.png")

ファイルを保存し、ターミナルでスクリプトを再度実行してください。

python3 main.py

ターミナルにはこの出力が表示されます。

Plot saved as plot_marker.png

ファイルエクスプローラーで新しいファイル plot_marker.png を見つけてダブルクリックしてください。赤い線に各データポイントに小さな円が表示されているのがわかります。

Plot marker

plt.plot(linestyle='--') を使用して線のスタイルを設定する

このステップでは、線のスタイル自体を変更する方法を学びます。デフォルトは実線ですが、破線、点線などに変更して、同じプロット上の複数の線を区別したり、単に見た目を良くしたりすることができます。

これは linestyle パラメータ(またはその短縮形 ls)を使用して行います。一般的なスタイルには、破線を表す '--'、点線を表す ':'、破線と点線が交互になるスタイルを表す '-.' などがあります。

プロットを破線に変更しましょう。main.py ファイルを以下のように変更してください。出力ファイル名も plot_linestyle.png に変更します。

import matplotlib.pyplot as plt
import numpy as np

## プロット用のデータを生成
x = np.arange(0, 10, 0.1)
y = np.sin(x)

## カスタムカラー、マーカー、線のスタイルでデータをプロット
plt.plot(x, y, color='red', marker='o', linestyle='--')

## プロットを新しいファイルに保存
plt.savefig('/home/labex/project/plot_linestyle.png')

print("Plot saved as plot_linestyle.png")

変更を保存し、ターミナルでスクリプトを実行してください。

python3 main.py

確認メッセージが表示されます。

Plot saved as plot_linestyle.png

新しく作成された plot_linestyle.png ファイルを開いてください。マーカーを結ぶ線が、実線ではなく破線になっていることに気づくでしょう。

Plot linestyle

plt.title() を使用してタイトルを追加する

タイトルがないプロットは曖昧になる可能性があります。視聴者がプロットが何を表しているかをすぐに理解できるように、説明的なタイトルを付けることが重要です。Matplotlib では、plt.title() 関数を使用してタイトルを追加できます。

このステップでは、プロットに「Sine Wave」というタイトルを追加します。この関数は、図を保存する前に呼び出されます。

main.py ファイルを変更して plt.title() の呼び出しを含めてください。新しい出力ファイルは plot_title.png になります。

import matplotlib.pyplot as plt
import numpy as np

## プロット用のデータを生成
x = np.arange(0, 10, 0.1)
y = np.sin(x)

## カスタマイズを加えてデータをプロット
plt.plot(x, y, color='red', marker='o', linestyle='--')

## プロットにタイトルを追加
plt.title('Sine Wave')

## プロットを新しいファイルに保存
plt.savefig('/home/labex/project/plot_title.png')

print("Plot saved as plot_title.png")

ファイルを保存してスクリプトを実行してください。

python3 main.py

出力は次のようになります。

Plot saved as plot_title.png

plot_title.png を開いてプロットを確認してください。一番上に「Sine Wave」というタイトルが表示されているはずです。

Plot title

plt.xlim() および plt.ylim() を使用して軸の範囲を調整する

プロットの特定の部分に焦点を当てたい場合や、データ周りに余白を追加したい場合があります。x 軸と y 軸の範囲は、それぞれ plt.xlim() および plt.ylim() 関数を使用して制御できます。

この最後のステップでは、サイン波の一部に「ズームイン」するように軸を調整します。x 軸の範囲を 0 から 5 に、y 軸の範囲を -1.5 から 1.5 に設定します。これにより、プロットに垂直方向の余白ができます。

main.py ファイルをコードの最終バージョンに更新してください。出力は plot_final.png に保存されます。

import matplotlib.pyplot as plt
import numpy as np

## プロット用のデータを生成
x = np.arange(0, 10, 0.1)
y = np.sin(x)

## カスタマイズを加えてデータをプロット
plt.plot(x, y, color='red', marker='o', linestyle='--')

## タイトルを追加
plt.title('Sine Wave')

## 軸の範囲を調整
plt.xlim(0, 5)
plt.ylim(-1.5, 1.5)

## 最終的なプロットをファイルに保存
plt.savefig('/home/labex/project/plot_final.png')

print("Plot saved as plot_final.png")

ファイルを保存して、今回で最後のスクリプトを実行してください。

python3 main.py

最終確認メッセージが表示されます。

Plot saved as plot_final.png

これで、plot_final.png を開いてください。以前のプロットと比較してください。x 軸が 5 で終わり、新しい y 軸の範囲によりサイン波の上部と下部に余白ができていることがわかります。

Plot final

まとめ

この実験を完了した皆さん、おめでとうございます!Matplotlib の基本的な線グラフを、より情報豊かで視覚的に魅力的なものにするためのカスタマイズ方法を習得しました。

この実験では、以下のことを練習しました。

  • plt.plot()color パラメータを使用して線の色を変更する。
  • marker パラメータでデータポイントのマーカーを追加する。
  • linestyle パラメータを使用して線のスタイルを設定する。
  • plt.title() 関数で説明的なタイトルを追加する。
  • plt.xlim() および plt.ylim() で軸の範囲を調整する。

これらは、データ分析やプレゼンテーションのためのプロフェッショナルな品質のプロットを作成するための基本的なスキルです。plt.xlabel() および plt.ylabel() を使用して x 軸と y 軸にラベルを追加したり、さまざまな色、マーカー、線のスタイルを試したりして、さらに実験してみてください。