Раздражающее пробел в гистограмме (matplotlib, Python)
Это, наверное, тривиальный вопрос, но я пытаюсь построить гистограмму с matplotlib и с повернутым текстом по оси x.
Код, который я использую, показан ниже:
fig = plt.figure()
x_labels_list = []
for i in range(0, pow(2, N)):
x_labels_list.append(str(f(i))) # The function f() converts i to a binary string
ax = plt.subplot(111)
width = 1.0
bins = map(lambda x: x-width, range(1,pow(2,N)+1))
ax.bar(bins, my_data, width=width)
ax.set_xticks(map(lambda x: x-width/2, range(1,pow(2,N)+1)))
ax.set_xticklabels(x_labels_list, rotation=90, rotation_mode="anchor", ha="right")
Это работает отлично, но я получаю раздражающее белое пространство справа от оси x, как показано красным эллипсом на следующем рисунке:
![enter image description here]()
Знаете ли вы, как я могу его удалить? Спасибо заранее!
Ответы
Ответ 1
Попробуйте вызвать plt.xlim()
с количеством ящиков, например
plt.xlim([0,bins.size])
Вот пример:
#make some data
N = 22
data = np.random.randint(1,10,N)
bin = np.arange(N)
width = 1
#plot it
ax = plt.subplot(111)
ax.bar(bin, data, width, color='r')
plt.show()
Нет plt.xlim()
вывод:
![no xlim]()
Теперь постройте его с помощью plt.xlim
, используя количество ячеек, чтобы определить размер:
#plot it
ax = plt.subplot(111)
ax.bar(bin, data, width, color='r')
plt.xlim([0,bin.size])
plt.show()
Результат:
![with xlim]()
Там может быть лучший способ, но это должно сработать для вас.