MatplotlibでプロットのX軸目盛りラベルをシンプルな図形に置き換える方法
Matplotlibを使って、プロットのX軸目盛りラベル(xtick labels)を円や四角形といったシンプルな図形に置き換える方法を解説します。テキストの代わりに視覚的なマーカーを表示したい場合に便利なテクニックです。
実装手順
- 図(figure)のサイズを設定し、サブプロット間およびその周囲の余白を調整します。
- 描画する図形のY軸方向の位置を初期化します。
- figure()メソッドを使って、新しい図を作成するか、既存の図をアクティブにします。
- add_subplot()メソッドを使って、サブプロット配置の一部として'~.axes.Axes'を図に追加します。
- plot()メソッドで線グラフを描画します。
- set_ticks()メソッドでX軸の目盛りの位置を設定します。
- 目盛りラベルを空にして、通常のテキスト表示を消します。
- add_patch()メソッドで円や長方形のパッチを追加します。Circle()クラスとRectangle()クラスをインスタンス化して使用します。
- 図を表示するには、show()メソッドを使います。
コード例
import matplotlib.pyplot as plt
import matplotlib.patches as patches
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
y = -.75
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(range(10))
ax.get_xaxis().set_ticks([2, 4, 6, 8])
ax.get_xaxis().set_ticklabels([])
ax.add_patch(patches.Circle((2, y), radius=.2,
clip_on=False, facecolor='red'))
ax.add_patch(patches.Circle((4, y), radius=.2,
clip_on=False, facecolor='yellow'))
ax.add_patch(patches.Rectangle((6 - .1, y - .05), .2, .2,
clip_on=False, facecolor='blue'))
ax.add_patch(patches.Rectangle((8 - .1, y - .05), .2, .2,
clip_on=False, facecolor='green'))
plt.show()コードのポイント
set_ticks([2, 4, 6, 8])で目盛りを配置する位置を指定し、set_ticklabels([])でラベルを空にすることで、デフォルトの数字表示が消えます。その後、patches.Circle()やpatches.Rectangle()で作成した図形を、clip_on=Falseオプション付きで追加することで、プロット領域の外側(軸の下側)にも図形を描画できます。
出力結果

このコードを実行すると、X軸の位置2と4には赤と黄色の円が、位置6と8には青と緑の四角形が、それぞれ目盛りラベルの代わりに表示されます。
-
Python Matplotlibで3Dグラフをプロットする方法を解説
PythonのMatplotlibを使えば、3次元の散布図やグラフを簡単に描画できます。この記事では、mpl_toolkits.mplot3dモジュールを利用して3Dグラフを作成する手順を、サンプルコード付きでわかりやすく解説します。 3Dグラフをプロットする基本手順 Pythonで3Dグラフを描くには、以下のステップに従います。 figure()メソッドを使って、新しい図(フィギュア)を作成するか、既存の図をアクティブにします。 Axes3Dオブジェクトを取得して、3D用の座標軸を準備します。 x、y、zそれぞれのデータポイントをリストとして定義します。 scatter3D()メソッドを使
-
Matplotlibで任意のデータを使って4Dプロットを作成する方法
Matplotlibでは、x・y・z の3つの座標データに加え、c(色) を第4の次元として割り当てることで、いわゆる「4Dプロット」を実現できます。これは実際には3D散布図にカラーマップを組み合わせたものであり、点の位置が3次元情報を、色がもう1つの変数を表現します。以下の手順に従うことで、標準正規分布に従うランダムなデータポイントを使った4Dプロットを簡単に作成できます。手順figure() メソッドを使用して、新しい図を作成するか、既存の図をアクティブ化します。サブプロット構成の一部として、3D投影(projection=3d)を指定した Axes を追加します。NumPy を使って x