2013-08-05 3 views
3

Я создаю следующий сюжет, и кажется, что он оставляет лишний пробел справа, и я не совсем уверен, почему.Дополнительное пустое пространство на диаграмме bar matplotlib

enter image description here

Код для создания выше, приводится ниже:

import matplotlib.pyplot as plt 

d1 = (0,1,3,6,4,2,2,59,4,3,4,4,33,3,2,5,61) 
d2 = (6,7,9,4,4,4,3,19,4,1,11,28,13,8,15,28,28) 
d3 = (6,7,9,4,4,4,3,19,4,1,14,28,13,8,15,28,32) 

N = len(d1) 
ind = np.arange(N) 
width = 0.2 

font = {'family' : 'sans-serif', 'weight' : 'normal', 'size' : 10} 
matplotlib.rc('font', **font) 

fig,ax = plt.subplots() 
rects1 = ax.bar(ind, MA_DPU, width, color='r', alpha=0.7) 
rects2 = ax.bar(ind+width, res1, width, color='b', alpha=0.7) 
rects3 = ax.bar(ind+2*width, res2, width, color='g', alpha=0.7) 

ax.set_xticks(ind+width*1.5) 

plt.show() 

ответ

6

Попробуйте установить xlim из вашего Axes:

ax.set_xlim(0, 16.4) 
plt.show() 

Для удобства вы можете использовать "plt.autoscale()":

plt.autoscale() 

избегать установки xlim вручную.

Необязательные параметры с их значениями по умолчанию являются:

plt.autoscale(enable=True, axis='both', tight=None)

+0

Это работало замечательно, у вас есть какие-либо идеи, почему она породила, что по умолчанию? Я просто удивлен, что это произошло вообще – sedavidw

+1

Я обновил ответ, добавив несколько комментариев о 'autoscale' –