I've been trying to wrap text for long labels in my code. I tried the textwrap method suggested earlier here, but my code defines yticklabels through an array imported from a csv using the pyplot.setp()
method. I'm using tight_layout()
for the formatting otherwise.
So the question is - is there a way to wrap the really long y labels to newlines easily?
Here is some sample code that I'd like a fix for:
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()
This plots something like this
I'd like the labels to go to newlines after a fixed width. Any ideas?