2017-09-11 14 views
0

私は棒の間にスペースを入れたくありません。私は投稿する前にこの質問を検索し、さまざまな回答がありますが、私のグラフに影響を与えるものはありません。私は何か間違ったことをしていると仮定しますが、それを動作させる方法を理解できません。バーチャルの棒の間のスペースを取り除く

私は、これらのメソッドの両方を試してみましたが、バーの間のスペースは変わらなかった。ここで

plt.axis('tight') 

    bin = np.arange(my_list) 
    plt.xlim([0, bin.size]) 

は私のコードです:

my_list = [2355, 2259, 683] 
plt.rcdefaults() 
fig, ax = plt.subplots() 
width = .35 

Kitchen = ("Cucumber", "Legacy", "Monkey") 
y_pos = np.arange(len(Kitchen)) 

barlist = ax.bar(y_pos, my_list, width, align='center', ecolor='black') 
barlist[0].set_color('dodgerblue') 
barlist[1].set_color('orangered') 
barlist[2].set_color('khaki') 

def autolabel(rects): 
    for rect in rects: 
     height = rect.get_height() 
     ax.text(rect.get_x() + rect.get_width()/2., 1*height, 
      '%d' % int(height), 
      ha='center', va='bottom') 

autolabel(barlist) 
plt.title('My Bar Chart') 
plt.xlabel("Kitchen") 
plt.ylabel("Shoes") 
plt.xticks(y_pos,("Cucumber", "Legacy", "Monkey",)) 
plt.show() 

My Chart

答えて

1

私はそれを、この質問に対する解決策を把握することができました。私は太字で部分を追加し、それは最終的に余分な空白を取り除くためにグラフのサイズを調整することができました。

my_list = [2355, 2259, 683] 
plt.rcdefaults() 
fig, ax = plt.subplots(**figsize=(3, 3.5)**) 
width = .35 
0

適切な名前の変数widthは何ですかあなたは変更する必要があります。あなたのリストが少し長くなった場合のために、将来の参照として色を提供することもできます。 1.0にwidthを設定

import matplotlib.pyplot as plt 
    import numpy as np 

    my_list = [2355, 2259, 683] 
    plt.rcdefaults() 
    fig, ax = plt.subplots() 

    N = len(my_list) 
    ind = np.arange(N) 
    width = 0.99 

    ## the bars                                                   
    colors = ['dodgerblue','orangered','khaki'] 
    barlist = ax.bar(ind, my_list, width, color=colors) 

    def autolabel(rects): 
     for rect in rects: 
      height = rect.get_height() 
      ax.text(rect.get_x() + rect.get_width()/2., 1*height, 
       '%d' % int(height), 
       ha='center', va='bottom') 

    autolabel(barlist) 

    # axes and labels                                                 
    xtick_marks = ["Cucumber", "Legacy", "Monkey"] 
    xtick_names = ax.set_xticklabels(xtick_marks) 
    ax.set_xticks(ind) 
    xbuffer = 3 
    ax.set_xlim(-xbuffer,len(ind)-1+xbuffer) 

    plt.show() 

は正確にはスペースはありませんが、それは150で、視覚的に、より魅力的かもしれません。

xlimをバッファーに設定すると、好みに応じて拡大または縮小できます。

squished-scaled-bar-plot

+0

これは問題を解決する方法の1つですが、それは私の希望する出力ではありません。私はバーが狭い幅にとどまりたいと思っていますし、それらの間のギャップもなくしたいと思います。ギャップが埋まるようにグラフを狭くする方法がありますか? – sd1272

+0

'xlim'でバッファを使うことで、白いスペースに対してバーのサイズを調整することができます。本質的にズームです。これを反映するようにコードを修正しました。うまくいけばそれがあなたが探しているものです。 – ajrichards

関連する問題