Вот код, который я использовал с matplotlib 2.2.3
, который правильно добавлял заполненную ось справа от моей фигуры:
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import make_axes_locatable
fig = plt.figure(1, clear=True)
axis = plt.gca()
divider = make_axes_locatable(axis)
new_axis = divider.append_axes("right", size="5%", pad=0.05)
plt.show()
fig.savefig('test.png', pad_inches=0, bbox_inches='tight')
Однако, так как я обновил matplotlib
до версии 3.0.0приведенный выше фрагмент больше не добавляет ось, а заменяет текущую ось.Выходные данные fig.axes показывают, что присутствуют обе оси:
[<matplotlib.axes._subplots.AxesSubplot object at 0x000001FEC0A38E80>,
<matplotlib.axes._axes.Axes object at 0x000001FEBD3A12E8>]
, но на рисунке видна только новая, перекрывающаяся и имеющая полный размер исходной оси.
тот же код работает нормально с matplotlib 2.2.3
.Поэтому у меня вопрос: есть ли какие-либо изменения в интерфейсе разделителя, представленные в версии 3.0.0, или это ошибка?Документация недостаточна, но не говорит о каких-либо изменениях в интерфейсе.
Обновление:
После многих проблем я обнаружилиз-за того, что графики на моей машине также отображаются правильно в matplotlib 3.0.0
, но не сохраняются правильно.Я локализовал проблему для опции savefig bbox_inches='tight'
.Поэтому при сохранении фигуры с помощью
fig.savefig('test.png', pad_inches=0, bbox_inches='tight')
сохраняется только цветная полоса, тогда как
fig.savefig('test.png', pad_inches=0)
создает всю фигуру, но с большими белыми пэдами.В matplotlib 2.2.3
обе строки дают полную фигуру (с или без пэдов).Мой новый вопрос заключается в следующем: bbox_inches
не работает для такого рода приложений в matplotlib 3.0.0
и как мне получить фигуру без белых площадок?
Я обновил MWE выше, чтобы воспроизвести ошибку.