Matplotlibで軸(Axes)を回転させる方法をわかりやすく解説
Matplotlibでは、Affine2Dによるアフィン変換とfloating_axesモジュールを組み合わせることで、軸(Axes)全体を任意の角度で回転させることができます。この記事では、その具体的な手順とサンプルコードを紹介します。
軸を回転させる手順
以下の手順に従って、シンプルなMatplotlibの軸を回転させてみましょう。
1. 必要なパッケージをインポートする
import matplotlib.pyplot as plt from matplotlib.transforms import Affine2D import mpl_toolkits.axisartist.floating_axes as floating_axes
2. 図のサイズと余白を設定する
rcParamsを使って図のサイズを指定し、サブプロット間および周囲のパディングを調整します。
3. 新しい図を作成する
plt.figure()で新しい図を作成、または既存の図をアクティブにします。
4. 軸の範囲をタプルで定義する
X軸・Y軸の最小値と最大値をタプルとして設定します。
5. 2Dアフィン変換を追加し、回転角度を指定する
可変の2Dアフィン変換tを作成し、rotate_deg()メソッドで回転角(度数法)をその場で適用します。
6. ソース座標からターゲット座標への変換を追加する
曲線座標(ソース)から直線座標(ターゲット)への変換を定義します。
7. 浮動軸(Floating Axes)を作成する
GridHelperCurveLinear()のインスタンスを使って、現在の図に浮動軸hを追加します。
8. サブプロットとして図に追加する
作成したaxを、サブプロット配置の一部として図に追加します。
9. 図を表示する
show()メソッドを呼び出して、図を画面に表示します。
サンプルコード
# パッケージをインポート import matplotlib.pyplot as plt from matplotlib.transforms import Affine2D import mpl_toolkits.axisartist.floating_axes as floating_axes # 図のサイズを設定 plt.rcParams["figure.figsize"] = [7.00, 3.50] plt.rcParams["figure.autolayout"] = True # 図を作成 fig = plt.figure() # 軸の範囲を設定 scales = (0, 5, 0, 5) # 2Dアフィン変換を追加(25度回転) t = Affine2D().rotate_deg(25) # 浮動軸を追加 h = floating_axes.GridHelperCurveLinear(t, scales) ax = floating_axes.FloatingSubplot(fig, 111, grid_helper=h) fig.add_subplot(ax) plt.show()
実行結果
上記のコードを実行すると、軸が25度回転した次のようなグラフが出力されます。

このように、Affine2D().rotate_deg()で回転角度を変更すれば、好きな角度に軸を傾けることが可能です。データの可視化において独自の座標系を表現したい場合などに活用してみてください。
-
【Matplotlib】アノテーション(テキスト)を回転させて線に一致させる方法
Matplotlibでグラフ上のアノテーション(テキスト)を回転させ、直線の傾きに一致させる方法を解説します。ポイントは、直線の傾きから回転角度(theta)を計算し、text()メソッドのrotation引数に渡すことです。 実装の手順 figure()メソッドを使用して、新しい図を作成するか、既存の図をアクティブにします。 add_subplot()メソッドを使用して、サブプロットとしてAxesを図に追加します。 直線の傾きmと切片cの変数を初期化します。 NumPyを使用して、xおよびyのデータ点を作成します。 テキストの回転角を求めるためにthetaを計算します。 plot()メソ
-
MatplotlibでグラフのX軸とY軸を入れ替える方法
Matplotlibでグラフの軸(X軸とY軸)を入れ替えたい場合、subplots()メソッドを使って図(figure)を作成し、2つのサブプロットを追加する方法が便利です。1つ目のサブプロットに曲線を描画し、そのX・Yデータを抽出して、2つ目のサブプロットの曲線に設定し直すことで、軸を入れ替えたグラフを作成できます。 手順 NumPyを使って、xとyのデータポイントを作成します。 図を作成し、2つのサブプロットを追加します。 両方のサブプロットにタイトルを設定します。 plot()メソッドを使って、xとyのデータポイントをプロットします。 get_xdata()とget_ydata()を使