2017-06-19 14 views
-1

mathplotlibで水平なバーブロを作成しようとしていますが、いくつかの問題があります。水平バープロットのサイズを変更するmatplotlib

  1. プロット全体のサイズを変更する必要があります。現在、デフォルトでは800x600です。パラメータを自分で設定し、プロットがそれに合わせてサイズを変更するようにしたいと思います。たとえば、現在のところ、バーの間に空きスペースがありすぎて、バーの幅を広げたいとします。

  2. テキスト(バーのヘッダーまたは数値)がプロットに収まらない場合、それは除外されます。私は、テキストが消えないように画面を拡張したいと思います。

ここでコードを出力することをサンプル画像です:フィギュアサイズを変更してのパラメータを調整する方法はたくさんあります

import numpy as np 
import matplotlib.pyplot as plt 

people = ('Tom sadf hasidfu hasdufhas d', 'Dick', 'Harry', 'Slim') 
y_pos = np.arange(len(people)) 
performance = 3 + 10 * np.random.rand(len(people)) 

plt.barh(y_pos, performance, align='center', height=0.3, color="skyblue") 
plt.yticks(y_pos, people) 
plt.xlabel('Performance') 
plt.title('How fast do you want to go today?') 

for i, v in enumerate(performance): 
    plt.text(v + 0.5, i, str(v), color='blue', fontweight='bold') 

#plt.show() 

filename = "myfilename.png" 
plt.savefig(filename) 

答えて

1

enter image description here

はここでのサンプルコードですが、プロット。彼らはすべての選択エンジンを使用して見つけることができます。

図形のサイズはfigsize引数で変更できます。ティックラベルはplt.tight_layoutを呼び出して含めることができ、制限はplt.xlimで設定できます。

import numpy as np 
import matplotlib.pyplot as plt 

people = ('Tom Hanswurst Fitzgerald', 'Dick', 'Harry', 'Slim') 
y_pos = np.arange(len(people)) 
performance = 3 + 10 * np.random.rand(len(people)) 

plt.figure(figsize=(8,4)) 
plt.barh(y_pos, performance, align='center', height=0.3, color="skyblue") 
plt.yticks(y_pos, people) 
plt.xlim(0,np.max(performance)*1.4) 
plt.xlabel('Performance') 
plt.title('How fast do you want to go today?') 

for i, v in enumerate(performance): 
    plt.text(v + 0.5, i, str(v), color='blue', fontweight='bold') 

plt.tight_layout() 
plt.show() 

enter image description here

関連する問題