2016-12-07 3 views
1

Я пытаюсь сделать автоматические участки с matplotlib, с несколькими различными функциями, нанесенными друг на друга (фон - заполненный контурный сюжет, один уровень выше - pcolormesh). Самая верхняя функция, которую я пытаюсь построить, - это несколько участков разброса, с разными ярлыками и значками.Исправить размер легенды в matplotlib

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

leg = ax.legend(legplots, 
      legnames, 
      scatterpoints=1, 
      loc='upper center', 
      ncol=3, 
      fontsize=14, 
     bbox_to_anchor=(0.5, -0.14), 
      fancybox=True, shadow=True) 

Предположим, что топор главные оси, и что legplots и legnames являются списки разброс участков и их соответствующих соответственно.

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

ответ

0

В настоящее время ваш ограничивающий прямоугольник имеет размер 0, так как вы указываете только его положение ((0.5, -0.14)).

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

Таким образом, используя полное 4-кортеж обозначение

bbox_to_anchor=(x0, y0, width, height) 

в сочетании с соответствующим loc параметра и ключевым словом аргументом mode="expand" позволят сделать легенду достаточно большой для ваших нужд. Для более подробного объяснения о 4-кортежной нотации см. this post, а также посмотрите на legend location guide.

+0

Так что это работает ... вид. Ящик с надписью остается фиксированной шириной, но теперь у него проблемы с наложением двух титров. Например: http://i.imgur.com/RYemFRs.png – Laxsnor

+0

Это действительно очень странно. Я не вижу, как это может быть торжественно связано с установкой ограничивающей рамки легенды. Я бы предположил, что эта проблема связана с остальной частью кода и для ее решения нужно создать [MCVE]. – ImportanceOfBeingErnest

Смежные вопросы