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

Matplotlibで目盛り(ティック)を動かさずにラベルだけを移動する方法

Matplotlibでは、軸の目盛り(ティック)自体の位置は変えずに、そのラベルだけを別の場所に表示したいケースがあります。このような場合は、axvline()メソッドで垂直線を引いておき、annotate()メソッドで注釈(ラベル)を任意の座標に配置するのが効果的です。

実装の手順

  • 図のサイズを設定し、サブプロット間および周囲のパディングを調整します。
  • 変数deltaを初期化します。
  • numpyを使用してxyのデータポイントを作成します。
  • axvline()メソッドでdeltaの位置に垂直線を描画します。
  • annotate()メソッドでその線に注釈を付けます。
  • plot()メソッドでxとyのデータポイントをプロットします。
  • show()メソッドで図を表示します。

コード例

from matplotlib import pyplot as plt
import numpy as np

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

delta = 2.0
x = np.linspace(-10, 10, 100)
y = np.sinc(x - delta)

plt.axvline(delta, ls="--", color="r")
plt.annotate(r"$\delta$", xy=(delta + 0.2, -0.2), color="r", size=15)
plt.plot(x, y)

plt.show()

出力結果

Matplotlibで目盛り(ティック)を動かさずにラベルだけを移動する方法

このコードを実行すると、赤色の破線がδ=2.0の位置に垂直に描かれ、その線上ではなく少しオフセットした位置(xy=(delta + 0.2, -0.2))に「δ」という注釈が表示されます。このようにannotate()のxy引数で座標を指定することで、目盛りやデータラインの位置を一切変更せずに、ラベルだけを自由に移動・配置できます。

  1. Matplotlibで目盛りラベルをすべて表示する方法

    Matplotlibでグラフ上のすべてのラベル値を表示したい場合は、set_xticklabels() メソッドと set_yticklabels() メソッドを使用します。この記事では、具体的な手順とコード例を使って、その方法をわかりやすく解説します。実装の手順軸の目盛りとして使用できる数値のリスト(x)を作成します。subplot() 関数を使用して軸オブジェクトを取得します。subplot() は現在の図にサブプロットを追加するための便利な関数です。set_xticks メソッドと set_yticks メソッドを使い、手順1で作成したリスト x を指定して、それぞれX軸とY軸の目盛り位

  2. Python Matplotlibで単一のポイント(点)をプロットする方法

    Matplotlibを使えば、たった1つのデータポイントでも簡単にグラフ上へプロットできます。ここでは、単一の点をプロットするための基本的な手順を解説します。 単一ポイントをプロットする手順 x と y のリストを、単一の値で初期化します。 plt.xlim() および plt.ylim() を使って、X軸・Y軸の表示範囲を0〜5に設定します。 plt.grid() を呼び出して、現在の線スタイルでグリッドを描画します。 plot() メソッドでxとyをプロットし、marker=o、markeredgecolor=red、markerfacecolor=green を指定してマーカーの見た目