2017-08-02 23 views
1

バーを小さくするために幅を変更した後、バーは両側に移動しました。どのようにそれらの間の間隔を削除するのですか?理想的には、私は真ん中を中心にしたいが、ドキュメントにはそれを設定するパラメータがないようだ。手動で画像を拡大しても、このギャップは縮小されません。 0および1バールの位置を設定y_pos棒グラフの棒の間のx軸の間隔を削除するにはどうすればよいですか?

import numpy as np 
import matplotlib.pyplot as plt 

objects = ('bar1', 'bar2') 
y_pos = np.arange(len(objects)) 
performance = [2,6] 
stds=[0.3,0.5] 
plt.bar(y_pos, performance, 0.3, align='center', yerr=stds,capsize=5, alpha=0.5) 
plt.xticks(y_pos, objects) 
plt.ylabel('Time (seconds)') 
plt.show() 

enter image description here

+0

使用 'plt.figure(1、figsize =(幅、高さ))' 'ここwidth'と' height'はインチ単位で図形の大きさを表し、 – Flomp

+0

@Flompは残念ながら、ギャップが依然として極端な値で残ります – Anderson

答えて

2

リストは、あなたのセット.3に幅とギャップは0.7です。

バーをお互いに近づけるには、y_posを置き換える必要があります。最初のバーはwidth/2の位置に、2番目のバーは1.5 * widthにある必要があります。 次に、棒をセンタリングする方法として、xlimの方法でx軸の最適限界を選択する必要があります。

import numpy as np 
import matplotlib.pyplot as plt 

objects = ('bar1', 'bar2') 
w = 0.3 
y_pos = (w/2.,w*1.5) 
performance = [2,6] 
stds=[0.3,0.5] 
plt.bar(y_pos, performance, width=w, align='center', yerr=stds,capsize=5, alpha=0.5) 
plt.gca().set_xlim([-1.,1.5]) 
plt.xticks(y_pos, objects) 
plt.ylabel('Time (seconds)') 
plt.show() 

より柔軟で洗練されたソリューションがあることを願っています。 enter image description here

関連する問題