Próbuję zawijać tekst dla długich etykiet w moim kodzie. Próbowałem wcześniej zasugerować metodę textwrap here, ale mój kod definiuje yticklabels poprzez tablicę importowaną z pliku CSV, używając metody pyplot.setp()
. Używam tight_layout()
do formatowania w przeciwnym razie.Zawijanie długich etykiet w matplotlib w ciasny układ przy użyciu setp
Pytanie brzmi: czy istnieje sposób na łatwe zakodowanie naprawdę długich etykiet?
Oto przykładowy kod, który chciałabym poprawkę:
import numpy as np
import matplotlib.pyplot as plt
labels=('Really really really really really really long label 1', 'Really really really really really really long label 2', 'Really really really really really really long label 3')
values=(30,50,40)
fig = plt.figure()
ax=fig.add_subplot(111)
plt.ylim((0,40))
for i in np.arange(3):
plt.barh(15*i, values[i])
plt.yticks(15*np.arange(3))
plt.setp(ax.set_yticklabels(labels))
plt.tight_layout()
plt.show()
Ten działek coś takiego chciałbym etykiety, aby przejść do nowej linii po stałej szerokości. Jakieś pomysły?
super naprawić! Dzięki! – chinmayn