Элементы, вырезанные из сохраненного изображения, если указано `bbox_to_anchor` - PullRequest
1 голос
/ 27 января 2020

Рассмотрим простой сценарий:

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.plot([0,1], [0,1], label = 'Line')

lgd = fig.legend(bbox_to_anchor=(0.2, -1, 1., 0), loc='lower left')
fig.savefig('figure.png', bbox_extra_artists=(lgd,), bbox_inches='tight') 

Это сохраняет фигуру, а bbox_extra_artists позволяет больше места внизу, но легенда не печатается. Это происходит только в том случае, если я пытаюсь указать значения за пределами [0,1] в bbox_to_anchor, например, если мне нужна легенда в правом верхнем углу.

Любые советы о том, почему это происходит?

1 Ответ

2 голосов
/ 27 января 2020

Что-то странное происходит с вычислением "tight". Основная причина этого еще не ясна, как видно из https://github.com/matplotlib/matplotlib/issues/10194.

На данный момент вы можете создать легенду осей и расположить ее в координатах фигуры,

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.plot([0,1], [0,1], label = 'Line')

lgd = ax.legend(loc='lower left', 
                bbox_to_anchor=(0.2, -1, 1., 0),  bbox_transform=fig.transFigure)
fig.savefig('figure.png', bbox_inches='tight')

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...