2013-04-01 3 views
15

私は長いラベルのテキストを自分のコードにラップしようとしていました。以前のhereで提案されたtextwrapメソッドを試しましたが、私のコードでは、pyplot.setp()メソッドを使用してcsvからインポートした配列を通してyticklabelsを定義しています。私はそれ以外の場合はtight_layout()をフォーマットに使用しています。setplpを使用してmatplotlibのタイトなレイアウトで長いyラベルをラップする

本当に長いyラベルを改行に簡単に折り返す方法はありますか?ここで

は私がのための修正を希望いくつかのサンプルコードです:

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() 

これは私がラベルが固定幅の後に改行に行きたいのですが、この enter image description here のようなものをプロットします。何か案は?

答えて

22

私はラベルにtextwrapを使用しようとしましたが、それは私のために働きます。あなたのコードでこれを挿入

from textwrap import wrap 
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'] 
labels = [ '\n'.join(wrap(l, 20)) for l in labels ] 

は私たちに与えます:

Wrapped labels

+0

クールな修正を!ありがとう! – chinmayn

関連する問題