У меня проблема с масштабированием моей графики.Я использую imshow для построения двух матриц, первая из которых представляет собой матрицу 2x2, а вторая - матрицу 5x5.Теперь я хочу, чтобы оба поля имели одинаковый размер, представляющий записи матриц.Но я хочу, чтобы они были одинаковыми в абсолютном размере (как пиксели).Если я построю оба и чётко их сравню, поля матрицы 2х2 будут намного больше относительно чисел внутри, чем матрица 5х5.* Матрица 2x2, слишком большие прямоугольники * Матрица 5x5, размер правильного прямоугольника Я попытался использовать параметр "figsize" функции plt.figure (), но при этом также меняются числа в полях,Еще одна вещь, которую я попробовал, - это параметр «экстент» в imshow, который не работал, если я просто попытался уменьшить размеры блоков.Это только увеличило их.(это работает, если я делаю ограничивающий прямоугольник шире, то он автоматически делает их тоньше, но это не то, что я хочу, пример ниже). с использованием экстента: шире и тоньше, но я не знаю, что это
Теперь еще раз: я хочу изменить размеры полей, но не изменяю размер текста / чиселтак что это не выглядит дамп, если я помещаю графику рядом друг с другом в статье.Это не должен быть способ автоматического соответствия двухразмерных блоков, я уже доволен любым способом изменения размеров блоков, поскольку он не должен быть точным на 100%.У кого-нибудь есть идея, как я могу это сделать?Большое спасибо уже !!
Вот код для двух графических изображений с квадратичными прямоугольниками (что я хочу, но только что изменил размеры):
import matplotlib.pyplot as plt
import numpy as np
plt.style.use("seaborn-dark")
def gfx_1():
fig = plt.figure()
ax1 = plt.subplot(111)
data = [[1, 2], [3, 4]]
ax1.imshow(data, interpolation="nearest")
for (i, j), data in np.ndenumerate(data):
ax1.text(i, j, s=str(data), ha='center', va='center')
ax1.set_xticklabels([])
ax1.set_yticklabels([])
ax1.set_xticks(np.arange(-0.5, 1.5, 1.))
ax1.set_yticks(np.arange(-0.5, 1.5, 1.))
ax1.grid(linewidth=2)
plt.savefig("2x2.png")
def gfx_2():
fig = plt.figure()
ax1 = plt.subplot(111)
data = [[1, 2, 3, 4, 5], [3, 4, 5, 6, 7], [6, 7, 8, 9, 10], [9, 10, 11, 12, 13], [12, 13, 14, 15, 16]]
ax1.imshow(data, interpolation="nearest")
for (i, j), data in np.ndenumerate(data):
ax1.text(i, j, s=str(data), ha='center', va='center')
ax1.set_xticklabels([])
ax1.set_yticklabels([])
ax1.set_xticks(np.arange(-0.5, 4.5, 1.))
ax1.set_yticks(np.arange(-0.5, 4.5, 1.))
ax1.grid(linewidth=2)
plt.savefig("5x5.png")
и модифицированный с расширением (что я не то, что):
def gfx_1():
fig = plt.figure()
ax1 = plt.subplot(111)
data = [[1, 2], [3, 4]]
ax1.imshow(data, interpolation="nearest", extent=(-0.5, 3.5, -0.5, 1.5))
for (i, j), data in np.ndenumerate(data):
ax1.text(i*2, j, s=str(data), ha='center', va='center')
ax1.set_xticklabels([])
ax1.set_yticklabels([])
ax1.set_xticks(np.arange(-0.5, 3.5, 2.))
ax1.set_yticks(np.arange(-0.5, 1.5, 1.))
ax1.grid(linewidth=2)
plt.savefig("2x2_wide.png")