Python
 Computer >> コンピューター >  >> プログラミング >> Python

Matplotlibで各サブプロットの軸テキストを回転表示する方法

Matplotlibでは、text()メソッドにrotation引数を指定することで、各サブプロット内のテキスト(軸ラベルや注釈など)を自由に回転させて表示できます。本記事では、図の作成からテキストの回転、注釈の追加までの一連の手順を、実際のコード例とともにわかりやすく解説します。

実装手順

  • 新しい図(figure)を作成するか、既存の図をアクティブにします。

  • add_subplot()メソッドを使って、サブプロット配置の一部として図にAxesオブジェクトを追加します。

  • subplots_adjust()メソッドで、サブプロットのレイアウトパラメータを調整します。

  • suptitle()メソッドで、図全体に中央揃えのタイトルを追加します。

  • 軸(Axes)のタイトルを設定します。

  • グラフのx軸ラベルとy軸ラベルを設定します。

  • 座標点を指定して軸の範囲を定義します。

  • fontsize(フォントサイズ)やfontweight(フォントの太さ)などの引数とともにrotationを指定し、図にテキストを追加します。

  • 単一の点をプロットし、その点に対してテキストと矢印付きの注釈を追加します。

  • show()メソッドを使用して、図を画面に表示します。

コード例

from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
fig = plt.figure()
ax = fig.add_subplot()
fig.subplots_adjust(top=0.85)
fig.suptitle('bold figure suptitle', fontsize=14, fontweight='bold')
ax.set_title('axes title')
ax.set_xlabel('xlabel')
ax.set_ylabel('ylabel')
ax.axis([0, 10, 0, 10])
ax.text(3, 8, 'boxed italics text in data coords', style='italic',
    bbox={'facecolor': 'red', 'alpha': 0.5, 'pad': 10})
ax.text(2, 6, r'an equation: $E=mc^2$', fontsize=15)
ax.text(3, 2, 'unicode: Institut für Festkörperphysik')
ax.text(0.95, 0.01, 'colored text in axes coords',
    verticalalignment='bottom', horizontalalignment='right',
    transform=ax.transAxes,
    color='green', fontsize=15)
ax.plot([2], [1], 'o')
ax.annotate('annotate', xy=(2, 1), xytext=(3, 4),
   arrowprops=dict(facecolor='black', shrink=0.05))
plt.show()

コードのポイント解説

このコード例には、テキスト表示に関するさまざまなテクニックが含まれています。それぞれの特徴を以下にまとめます。

データ座標でのテキスト配置

ax.text(3, 8, ...)のように、データ座標系を基準にテキストを配置できます。bbox引数を指定すると、背景色や透明度(alpha)、余白(pad)を持つボックスでテキストを囲むことができます。

数式の埋め込み

TeX記法(LaTeX形式)を使えば、$E=mc^2$のような数式をそのままグラフ上に描画できます。文字列の先頭に「r」を付けたraw文字列にすることで、バックスラッシュのエスケープ問題を回避できます。

軸座標系でのテキスト配置

transform=ax.transAxesを指定すると、データ座標ではなく軸の相対座標(0〜1)でテキスト位置を指定できます。これにより、グラフの右下などに常に固定位置でテキストを表示できます。

矢印付きの注釈

annotate()メソッドでは、xyで注釈対象の点、xytextでテキストの表示位置を指定し、arrowpropsで矢印の色やスタイルをカスタマイズできます。

出力結果

上記のコードを実行すると、タイトル・軸ラベル・斜体テキスト・数式・色付きテキスト・矢印付き注釈が配置されたグラフが表示されます。各テキストはrotation引数を追加することで、任意の角度に回転させることが可能です。たとえば、縦書き風に表示したい場合はrotation=90、斜めに表示したい場合はrotation=45のように指定します。

  1. Matplotlibの等高線図に軸線や原点を描画する方法

    Matplotlibで等高線図を描画する際、グラフ上に軸線や原点(x=0、y=0)を明示したいケースがあります。本記事では、contourf()メソッドで等高線図を作成し、axhline()でy=0の水平線、axvline()でx=0の垂直線を重ねて描画する方法を解説します。 実装の手順 numpyを使用して、x、y、zのデータポイントを作成します。 plt.axis(off)メソッドを使って、デフォルトの軸を非表示に設定します。 contourf()メソッドにx、y、zのデータポイントを渡して、塗りつぶし等高線図を描画します。 x=0とy=0の線を赤色でプロットします。 show()メソッ

  2. Tkinterでテキストのフォントを設定する方法をわかりやすく解説

    Tkinterには、ウィジェットにさまざまな機能を持たせるための組み込みメソッドや関数が多数用意されています。Tkinterアプリケーションでは、font(フォントファミリー, フォントサイズ, スタイル)属性を使用することで、テキストウィジェットのフォントプロパティを自由にカスタマイズできます。このタプルは、Textウィジェットのコンストラクタ内で直接宣言することが可能です。サンプルコード以下の例では、カスタマイズしたフォントプロパティを持つテキストウィジェットを作成しています。# tkinterライブラリをインポート from tkinter import * from tkinter i