ImageGrid
を使用していくつかのパネルをプロットしようとしています。 grid.cbar_axes[0].colorbar(im)
を使用してカラーバーを設定すると、カラーはきれいに見えますが、カラーバーのスケールは2x10^0
からNone
に変わります。LogNormとImageGridを使用する場合のMatplotlibのカラーバー
私は何十もの回避策を試しましたが、何も機能しませんでした。ここで私は(私の間違ったバージョン)を作成しようとしているフィギュアです:
残念ながら、私は完全に問題を再現MWEを作ることができませんでした。私はそれを部分的に再現するMWEを作り出しました。私はこのコードを使用する場合:
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import ImageGrid
from matplotlib.colors import LogNorm
def get_demo_image():
import numpy as np
from matplotlib.cbook import get_sample_data
f = get_sample_data("axes_grid/bivariate_normal.npy", asfileobj=False)
z = np.load(f)
return abs(z), (-3, 4, -4, 3)
F = plt.figure(figsize=(5.5, 3.5))
grid = ImageGrid(F, 111, # similar to subplot(111)
nrows_ncols=(1, 3),
axes_pad=0.1,
add_all=True,
label_mode="L",
cbar_mode='single'
)
Z, extent = get_demo_image() # demo image
im1 = Z
im2 = Z
im3 = Z
vmin, vmax = 1e-3, 1e10
for i, im in enumerate([im1, im2, im3]):
ax = grid[i]
imc = ax.pcolormesh(range(15), range(15), im, norm=LogNorm(vmin=vmin, vmax=vmax), linewidth=0, rasterized=True)
cb=grid.cbar_axes[0].colorbar(imc)
を私は上限が細かいように見えることを除いて、ほぼ同じ動作を取得します。下限は、私がvmin
とvmax
に使用する値に関係なく、同じ奇妙な動作を示します。
何が起こっているのでしょうか?