2012-08-30 2 views
4

matplotlib로 막대 다이어그램을 그려야합니다. 세로줄이 144 개 필요합니다. 단지 140 ID로matplotlib 막대 다이어그램의 이상한 공백이> 140 값을 가짐

IDs = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '100', '101', '102', '103', '104', '105', '106', '107', '108', '109', '110', '111', '112', '113', '114', '115', '116', '117', '118', '119', '120', '121', '122', '123', '124', '125', '126', '127', '128', '129', '130', '131', '132', '133', '134', '135', '136', '137', '138', '139', '140', '141', '142', '143', '144'] 
values = [875, 1439, 1613, 1112, 1590, 1413, 1146, 1325, 1888, 1500, 1409, 827, 1431, 1024, 1271, 1203, 1503, 1423, 1571, 1216, 1279, 1158, 1095, 1355, 1331, 1292, 1002, 840, 806, 1141, 1032, 1046, 1000, 941, 818, 728, 1146, 1093, 1284, 1074, 1127, 1034, 1207, 1051, 1379, 692, 1205, 1103, 1528, 1105, 1116, 961, 1150, 840, 513, 8, 1270, 1427, 1051, 820, 1439, 852, 0, 1216, 987, 503, 565, 655, 1198, 503, 860, 848, 670, 998, 697, 865, 961, 891, 1095, 1120, 1001, 590, 630, 1133, 862, 787, 959, 1026, 459, 564, 437, 807, 290, 569, 482, 0, 4695, 4726, 4858, 4514, 5039, 5865, 5336, 3873, 5666, 3644, 3789, 4269, 4629, 5308, 3681, 4212, 5003, 5141, 5835, 5331, 5284, 5526, 5185, 4973, 4899, 4866, 5167, 5054, 4413, 5668, 4533, 5122, 127, 4210, 4582, 4734, 4681, 5319, 3519, 5414, 3902, 4139, 5108, 5040, 4450, 4085, 4489, 5632] 

width = 0.75 
N = len(IDs) 
ind = numpy.arange(N) 
plt.bar(ind, values,width) 
plt.xticks(ind+width/2., IDs) 

fig = plt.gcf() 
fig.set_size_inches(len(IDs)/4,10) 
ax = fig.add_subplot(1,1,1) 
ax.tick_params(axis='x', labelsize=6) 
plt.tight_layout() 

plt.savefig(filename, dpi=200, facecolor='w', edgecolor='w',bbox_inches='tight', pad_inches=0.1) 

plt.close() 

결과 :

모두는 즉시 141 이상, 내가 마지막 줄의 오른쪽에 이상한 공백을 얻을 수있어 나는 140 바까지 사용하는 경우 의도 만대로 작동/값 쌍 : 140 IDs and values 141 개 (또는 그 이상)의 ID/값 쌍을 가진 결과 : 141 IDs and values

사람이, 더 나은 아직이 문제, 또는 설명 오른쪽에 공백을 제거하는 방법을 말해 줄 수 ?

답변

6

쉽게 수동으로 제한을 설정할 수 있습니다 :

fig = plt.figure() 
ax = fig.add_subplot(111) 

#.... do the plotting here 

ax.set_xlim([0,150]) # or any other number 
plt.show() # or savefig 
+1

이 작동, 감사합니다! 그래도 이상한 공백이 나타나는 이유를 아십니까? – Lastalda

관련 문제