Вопрос, который нужно задать, - как вы выяснили, что (14, 6) был правильный размер для двух участков, чтобы иметь одинаковую высоту?

аюсь построить изображение (используяmatplotlib.imshow) и точечная диаграмма в пределах одной фигуры. При попытке этого изображение выглядит меньше, чем сюжет. Небольшой пример кода показан ниже:

import matplotlib.pyplot as plt
import numpy as np

image = np.random.randint(100,200,(200,200))
x = np.arange(0,10,0.1)
y = np.sin(x)

fig, (ax1, ax2) = plt.subplots(1,2)
ax1.imshow(image)
ax2.scatter(x,y)

plt.show()

Что дает следующий рисунок:

Как я могу получить два подплота, чтобы иметь одинаковую высоту? (и ширина, я полагаю)

Я пытался использоватьgridspec как показано вэтот ответ:

fig=plt.figure()
gs=GridSpec(1,2)

ax1=fig.add_subplot(gs[0,0])
ax2=fig.add_subplot(gs[0,1])
ax1.imshow(image)
ax2.scatter(x,y)

Но это дает тот же результат. Я также попытался отрегулировать размеры подзаговоров вручную, используя:

fig = plt.figure()
ax1 = plt.axes([0.05,0.05,0.45,0.9])
ax2 = plt.axes([0.55,0.19,0.45,0.62])

ax1.imshow(image)
ax2.scatter(x,y)

Методом проб и ошибок я могу получить два вспомогательных участка к правильному размеру, хотя любое изменение общего размера рисунка будет означать, что вспомогательные участки больше не будут иметь одинаковый размер.

Есть ли способ сделатьimshow иscatter На графике фигуры одинакового размера без изменения размеров осей вручную?

Я использую Python 2.7 и matplotlib 2.0.0

Ответы на вопрос(3)

Ваш ответ на вопрос