Matplotlibのマップにスケールバー(縮尺バー)を挿入する方法
Matplotlibでマップにスケールバーを挿入するには?
matplotlibで作成したマップや画像データにスケールバー(縮尺バー)を挿入するには、AnchoredSizeBar()クラスを使用してスケールバーオブジェクトをインスタンス化します。このクラスは mpl_toolkits.axes_grid1.anchored_artists モジュールに含まれており、地図上に縮尺を示すバーを簡単に追加できます。
実装の手順
- 図のサイズを設定し、サブプロット間および周囲のパディングを調整します。
- numpyを使用してランダムなデータを作成します。
- imshow()メソッドを使って、データを2Dラスタ画像として表示します。
- gca()メソッドで現在の軸を取得します。
- 下部に中央揃えのラベルが付いた水平スケールバーを描画します。
- スケールバーアーティストを現在の軸に追加します。
- 軸を非表示にします。
- show()メソッドで図を表示します。
AnchoredSizeBarの主な引数
- transform:座標変換オブジェクト(例:ax.transData)。スケールバーの長さの基準となる座標系を指定します。
- size:スケールバーの長さ(データ座標単位)。
- label:スケールバーに表示するラベル文字列(例:「1 Meter」)。
- loc:表示位置。数値で指定でき、9は「上部中央」を意味します。
コード例
from matplotlib import pyplot as plt
from mpl_toolkits.axes_grid1.anchored_artists import AnchoredSizeBar
import numpy as np
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
data = np.random.rand(5, 5)
img = plt.imshow(data, cmap="YlGnBu")
ax = plt.gca()
scalebar = AnchoredSizeBar(ax.transData, 1, "1 Meter", 9)
ax.add_artist(scalebar)
ax.axis('off')
plt.show()出力結果

-
Matplotlibで複数のX軸・Y軸をプロットする方法(twinx / twinyの使い方)
データ分析や可視化では、スケールの異なる2つのデータ系列を同じグラフ上に重ねて表示したいケースがよくあります。Matplotlibでは、twinx() メソッドや twiny() メソッドを使うことで、X軸またはY軸を共有しながら独立したもう一方の軸を持つグラフを簡単に作成できます。 この記事では、左右に異なるY軸を持つグラフを作成する手順を、具体的なコード例とともに解説します。 複数のY軸を持つグラフの作成手順 以下の手順で、左と右に別々のY軸スケールを持つプロットを作成できます。 subplots() メソッドを使用して、図(figure)とサブプロット(axes)を作成します。 最初の
-
MatplotlibでPythonのプロットに度(°)記号を挿入する方法
Matplotlibで作成したグラフに度(°)記号を挿入したい場合、LaTeX表記を利用すると簡単に実現できます。この記事では、具体的な手順とサンプルコードをわかりやすく解説します。 度記号を挿入する手順 numpyを使って、pV(圧力×体積)、nR、T(温度)のデータポイントを作成します。 plot()メソッドを使って、pVとTの関係をプロットします。 xlabel()メソッドで、x軸のラベル「Pressure x Volume」を設定します。 ylabel()メソッドで、LaTeX表記 $^\circ$ を含む温度ラベルをy軸に設定します。 show()メソッドを呼び出して、図を画面に表