Почему моя xlabel отрезана на моем участке matplotlib?

Я matplotlib набор данных, используя matplotlib где у меня есть xlabel, который довольно «высокий» (это формула, выраженная в TeX, которая содержит дробь и поэтому имеет эквивалент высоты нескольких строк текста).

В любом случае, нижняя часть формулы всегда обрезается, когда я рисую цифры. Изменение размера фигуры, похоже, не помогает этому, и я не смог понять, как сдвинуть ось «вверх», чтобы освободить место для xlabel. Что-то вроде этого было бы разумным временным решением, но было бы неплохо иметь способ заставить matplotlib автоматически распознать, что метка отрезана и соответственно изменена.

Вот пример того, что я имею в виду:

 import matplotlib.pyplot as plt plt.figure() plt.ylabel(r'$\ln\left(\frac{x_a-x_b}{x_a-x_c}\right)$') plt.xlabel(r'$\ln\left(\frac{x_a-x_d}{x_a-x_e}\right)$') plt.show() 

в то время как вы можете увидеть всю ярлык, xlabel отрезается внизу.

В случае, если это проблема, связанная с машиной, я запускаю ее на OSX 10.6.8 с помощью matplotlib 1.0.0

  • Нарушение функции-члена в отладчике Python
  • Как вывести легенду из сюжета
  • Django After Midnight Business Hours Ошибка сравнения TimeField
  • Проблема PyCrypto с использованием AES + CTR
  • Слияние и вычитание столбцов DataFrame в пандах?
  • Как клонировать объект генератора Python?
  • Как я могу заставить setuptools установить пакет из другого источника, который также доступен на pypi с тем же номером версии?
  • Можете ли вы добавить новые инструкции в синтаксис Python?
  • 3 Solutions collect form web for “Почему моя xlabel отрезана на моем участке matplotlib?”

    Использование:

     import matplotlib.pyplot as plt plt.gcf().subplots_adjust(bottom=0.15) 

    чтобы освободить место для этикетки.

    Редактировать:

    Поскольку я дал ответ, matplotlib добавил tight_layout() . Поэтому я предлагаю использовать его:

     plt.tight_layout() 

    должен освободить место для xlabel.

    Легким вариантом является настройка matplotlib для автоматической настройки размера графика. Он отлично работает для меня, и я не уверен, почему он не активирован по умолчанию.

    Способ 1

    Установите это в файле matplotlibrc

     figure.autolayout : True 

    См. Здесь дополнительную информацию о настройке файла matplotlibrc: http://matplotlib.org/users/customizing.html.

    Способ 2

    Обновите rcParams во время выполнения, как это

     from matplotlib import rcParams rcParams.update({'figure.autolayout': True}) 

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

    Вы также можете настроить пользовательские дополнения как значения по умолчанию в свой файл $HOME/.matplotlib/matplotlib_rc следующим образом. В приведенном ниже примере я изменил как нижнее, так и левое заполнение:

     # The figure subplot parameters. All dimensions are a fraction of the # figure width or height figure.subplot.left : 0.1 #left side of the subplots of the figure #figure.subplot.right : 0.9 figure.subplot.bottom : 0.15 ... 
    Python - лучший язык программирования в мире.