Выравнивание по левому краю y-меток в Matplotlib приводит к перекрытию текста на диаграмме

#python #matplotlib

Вопрос:

Возникли проблемы с выравниванием метки y-тика по левому краю на диаграмме Matplotlib:

 import matplotlib.pyplot as plt
from textwrap import wrap

labels = ['n'.join(wrap('Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 25))]

ind = [1]

fig, ax = plt.subplots()
ax.barh(1, 10)

fontdict = {
    'verticalalignment': 'center',
    'horizontalalignment': 'left'}
ax.set_yticks(ind)
ax.set_yticklabels(labels=labels, fontdict=fontdict)
plt.show()
 

введите описание изображения здесь

Как я могу переместить метку, чтобы она не накладывалась на диаграмму?

Комментарии:

1. попробуйте это: ax.set_yticklabels(labels=labels, ha='right',va='center')

2. Не совсем. Это останавливает наложение на диаграмму, но вы теряете выравнивание текста по левому краю.

Ответ №1:

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

 ax.set_yticklabels(labels=labels, ha='left',va='center', position=(-0.35,0))
 

введите описание изображения здесь

Комментарии:

1. Спасибо. Я определенно мог бы яснее ответить на этот вопрос в ретроспективе.