Matplotlibで各Y軸サブプロットの最初と最後の目盛りラベルを非表示にする方法
Matplotlibで、各Y軸サブプロットの最初と最後の目盛りラベルを削除(非表示)したい場合があります。たとえば、複数のグラフを縦に並べた際に、隣接するサブプロット同士で数値が重なって見づらくなるのを防ぐのに有効です。
以下の手順で実現できます。
- 図のサイズを設定し、
figure.autolayoutを有効にしてサブプロット間および周囲の余白を自動調整します。 plt.subplots()を使って図とサブプロットのセットを作成します。- 各軸(Axes)をループで反復処理し、
plt.setp()によって最初と最後の目盛りラベルのvisibleをFalseに設定して非表示にします。 show()メソッドを呼び出して図を表示します。
コード例
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
fig, ax = plt.subplots(2, sharex=True)
for a in ax:
plt.setp(a.get_yticklabels()[0], visible=False)
plt.setp(a.get_yticklabels()[-1], visible=False)
plt.show()
実行結果

ポイント解説
a.get_yticklabels()[0] はY軸の目盛りラベルリストの先頭要素、[-1] は末尾の要素を取得します。plt.setp() の第2引数で visible=False を指定することで、該当ラベルだけを選択的に非表示にできます。この手法は、sharex=True などで複数のサブプロットを共有軸で並べる際に、上下端のラベルが重なる問題を回避するのに便利です。
-
Matplotlibの図に凡例を配置・整列させる方法
Matplotlibで作成した図(フィギュア)に凡例を適切な位置に配置し、要素を整列させる方法を解説します。凡例の位置調整には bbox_to_anchor 引数を使用するのがポイントです。 手順 plot() メソッドを使って line1 と line2 の2本の線をプロットします。 legend() メソッドで図に凡例を配置します。このとき bbox_to_anchor を使って凡例の位置を指定し、ncol 引数で凡例要素を横並びに整列させます。 show() メソッドを呼び出して図を表示します。 コード例 from matplotlib import pyplot as plt pl
-
matplotlibの円グラフで左側のラベルを非表示・削除する方法
matplotlibで円グラフ(パイチャート)を作成すると、グラフの左側に意図しないラベルや余白が表示されることがあります。これはy軸ラベルが自動的に描画されるためです。この不要なラベルを削除するには、plt.ylabel() のように空文字列を指定するのが最も簡単な方法です。手順時間(hours)、アクティビティ(activities)、色(colors)のリストを作成します。pie() メソッドを使用して円グラフを描画します。左側のラベルを非表示にするために、plt.ylabel() で空文字列を設定します。サンプルコードimport matplotlib.pyplot as plt #