Как установить первые два параметра `bbox_to_anchor` в качестве верхней левой координаты? - PullRequest
1 голос
/ 18 марта 2020

В matplotlib я хочу построить легенду и поставить легенду под рисунком. Поэтому я пишу такие коды:

import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure(figsize=(5, 7), dpi=300)
ax = fig.add_subplot(111, position=[0.1, 0.28, 0.8, 0.65])
labels = []
for i in range(20):
    ax.plot(data[i, :])
    labels.append(str(i))
ax.legend(labels, ncol=10, loc="lower center", bbox_to_anchor=(0.5, -0.15), prop={"size":6}) 
plt.show()

Хорошо работает. Но на самом деле я не уверен, какой высоты легенда , например, если я изменю ncol=5 или ncol=2, вершина легенды и низ фигуры будут перекрываться. На мой взгляд, такая ситуация возникает потому, что первые два параметра bbox_to_anchor являются координатами нижнего левого угла ограничительной рамки. Конечно, изменение bbox_to_anchor=(0.5, 1) для установки легенды выше также будет решением, но, на мой взгляд, лучшим решением может быть установка параметров bbox_to_anchor в качестве координат верхнего левого угла и опускание bbox go сверху вниз.

Итак, мой вопрос, есть ли способ сделать начало координат bbox_to_anchor верхним, но не нижним?

Спасибо!

1 Ответ

1 голос
/ 18 марта 2020

Вы должны использовать loc="upper center" в вызове ax.legend. Когда используются loc и bbox_to_anchor, loc указывает, какую часть поля легенды следует поместить в положение, заданное bbox_to_anchor.

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