1. ホーム
  2. python

カラーバーの位置決め

2023-10-24 21:13:46

質問

matplotlibのプロットにカラーバーが付属しています。カラーバーを水平に、プロットの下に配置したいのですが、可能でしょうか?

私は、以下の方法でこれをほぼ実現しました。

plt.colorbar(orientation="horizontal",fraction=0.07,anchor=(1.0,0.0))

しかし、カラーバーはまだプロットとわずかに重なっています (そして x 軸のラベルも)。カラーバーをもっと下に移動させたいのですが、その方法がわかりません。

どのように解決するのですか?

編集 : を更新しました。 matplotlib version >= 3 に更新しました。

すでに3つの素晴らしい方法が共有されています。 この回答で .

この回答は matplotlib ドキュメント を使うように助言しています。 inset_locator . これは次のように動作します。

import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1.inset_locator import inset_axes
import numpy as np

rng = np.random.default_rng(1)

fig, ax = plt.subplots(figsize=(4,4))
im = ax.imshow(rng.random((11, 16)))
ax.set_xlabel("x label")

axins = inset_axes(ax,
                    width="100%",  
                    height="5%",
                    loc='lower center',
                    borderpad=-5
                   )
fig.colorbar(im, cax=axins, orientation="horizontal")