#python #numpy #matplotlib
Вопрос:
Мне нужно исправить размер 2 фигур, полученных imshow в matplotlib. Проблема в том, что при изменении значения шкалы возникает некоторое дрожание. Например, когда появляется знак минус, изображение становится немного шире. Как я могу это исправить?
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
array1 = np.ones(shape=(50, 50))
array2 = -np.ones(shape=(50, 50))
# -----------------------------------------------------------------------------
fig1 = plt.figure(figsize=(3, 3))
ax = fig1.add_axes([0, 0, 1, 1])
cmap = matplotlib.colors.LinearSegmentedColormap.from_list('my_colormap',
['white', 'xkcd:bright orange', 'xkcd:chestnut'],
256)
plt.xlabel('x', fontsize=12)
plt.ylabel('y', fontsize=12)
im = plt.imshow(array1, aspect='equal', cmap=cmap)
cax = fig1.add_axes([ax.get_position().x1 0.01, ax.get_position().y0, 0.02, ax.get_position().height])
plt.colorbar(im, cax=cax, shrink=2)
# -----------------------------------------------------------------------------
fig2 = plt.figure(figsize=(3, 3))
ax1 = fig2.add_axes([0, 0, 1, 1])
cmap = matplotlib.colors.LinearSegmentedColormap.from_list('my_colormap',
['white', 'xkcd:bright orange', 'xkcd:chestnut'],
256)
plt.xlabel('x', fontsize=12)
plt.ylabel('y', fontsize=12)
im = plt.imshow(array2, aspect='equal', cmap=cmap)
cax1 = fig2.add_axes([ax1.get_position().x1 0.01, ax1.get_position().y0, 0.02, ax1.get_position().height])
plt.colorbar(im, cax=cax1, shrink=2)
# -----------------------------------------------------------------------------
plt.show()