|
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import ImageGrid
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)
# z is a numpy array of 15x15
return z, (-3, 4, -4, 3)
F = plt.figure(1, (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",
)
Z, extent = get_demo_image() # demo image
im1 = Z
im2 = Z[:, :10]
im3 = Z[:, 10:]
vmin, vmax = Z.min(), Z.max()
for i, im in enumerate([im1, im2, im3]):
ax = grid[i]
ax.imshow(im, origin="lower", vmin=vmin,
vmax=vmax, interpolation="nearest")
plt.show()

Python 3.11.2 見直しました。上記のコードでは、下記のエラーが発生します。
Traceback (most recent call last):
File "_:\Simple_Axesgrid2_02.py", line 14, in
grid = ImageGrid(F, 111, # similar to subplot(111)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: ImageGrid.__init__() got an unexpected keyword argument 'add_all'
from matplotlib import cbook
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import ImageGrid
fig = plt.figure(figsize=(5.5, 3.5))
grid = ImageGrid(fig, 111, # similar to subplot(111)
nrows_ncols=(1, 3),
axes_pad=0.1,
label_mode="L",
)
# demo image
Z = cbook.get_sample_data("axes_grid/bivariate_normal.npy", np_load=True)
im1 = Z
im2 = Z[:, :10]
im3 = Z[:, 10:]
vmin, vmax = Z.min(), Z.max()
for ax, im in zip(grid, [im1, im2, im3]):
ax.imshow(im, origin="lower", vmin=vmin, vmax=vmax)
plt.show()

Python 3.12.0 では、下記のような警告があるが、実行できる。
E:\______\Simple_Axesgrid2_02_2.py:14: MatplotlibDeprecationWarning:
The 'np_load' parameter of get_sample_data() was deprecated in Matplotlib 3.8
and will be removed two minor releases later.
Use open(get_sample_data(..., asfileobj=False)) instead.
If any parameter follows 'np_load', they should be passed as keyword,
not positionally.
Z = cbook.get_sample_data("axes_grid/bivariate_normal.npy", np_load=True)
|