Зарезервируйте место для легенды в pyplot, фиксируя размер графика и положение оси XPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Зарезервируйте место для легенды в pyplot, фиксируя размер графика и положение оси X

Сообщение Anonymous »

вот две мои функции построения графиков и примеры их использования:

Код: Выделить всё

import matplotlib.pyplot as plt

def set_legend(ax, item_count, title=None):
legend = ax.legend(
title=title,
loc='upper center',
bbox_to_anchor=(0.5, -0.1),
ncol=item_count,
frameon=False,
prop={'size': 6}
)
legend.get_title().set_fontsize('8')
return ax

def generate_plot_base():
fig, ax = plt.subplots(1, 1, figsize=(6, 2.71), tight_layout={'pad': 0})
return ax

ax = generate_plot_base()
ax.plot([], [], label='Label 1', color='blue')  # Toy labels
ax.plot([], [], label='Label 2', color='orange')
ax.plot([], [], label='Label 3', color='green')
ax = set_legend(ax, 3, title="Example Legend") # if you comment out the x-axis goes down
plt.show()
дело в том, что когда у меня нет легенды, размер графика равен размеру фигуры.
но, когда я добавляю легенду без заголовка, нижняя часть часть сюжета расширяется, чтобы вместить легенду. если я добавляю заголовок легенды, он расширяется больше (или, если я использую slim_layout, он остается прежним, но ось X перемещается вверх внутри графика).
вместо этого я хочу добавить дополнительное пространство между нижней частью и осью X, так что если я добавлю легенду (с заголовком легенды или без него), как площадь графика (размеры в пикселях), так и расположение оси останутся прежними, поскольку свободной площади уже достаточно.
Я пробовал экспериментировать с Tight_layout и subplot_adjust, но не смог добиться того поведения, которое описываю здесь.

Подробнее здесь: https://stackoverflow.com/questions/792 ... s-position
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»