2017-09-11 110 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是什麼你需要修改。如果列表有點長,您還可以提供顏色作爲未來的參考。

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

設置width 1.0是完全沒有空間,但它可能是在0.99視覺上更具吸引力。

將xlim設置爲使用緩衝區進行縮放可以讓您根據自己的偏好進行放大或縮小。

squished-scaled-bar-plot

+0

這是解決問題的一種方法,但那不是我想要的結果。我希望酒吧留在狹窄的寬度,我也希望他們之間的差距消失。有沒有一種方法可以縮小圖形以填補空白? – sd1272

+0

通過在'xlim'中使用緩衝區,可以縮放與白色空間相關的小節大小。本質上它是一個縮放。我修改了代碼來反映這一點 - 希望這就是你要找的。 – ajrichards