отображение полос фиксированной ширины для всех наборов данных в matplotlib
У меня есть следующие наборы данных. Мне нужно построить графики для, скажем, 1,2 или всех из них. Когда я строю диаграмму для одного элемента данных (например: xdata = [0] и ydata = [1000], xlabels = ['первый'], полоса очищается, чтобы занимать всю площадь графика. Как ограничить полосу, скажем, 0,45?
ydata=[1000,250,3000,500,3200,4000,2000]
xlabels=['first','sec','third','fourth','fifth','sixth','seventh']
barwidth = 0.45
import matplotlib.pyplot as plt
def create_bar_plot(entries):
assert entries > 0
xdata = range(entries)
xlabels=xlabels[:entries]
xdata=xdata[:entries]
ydata=ydata[:entries]
figure = plt.figure(figsize = (12,6), facecolor = "white")
ax = figure.add_subplot(1,1,1)
plt.grid(True)
if xdata and ydata:
ax.bar(xdata, ydata, width=barwidth,align='center',color='blue')
ax.set_xlabel('categories',color='black')
ax.set_ylabel('duration in minutes',color='black')
ax.set_title('duration plot created ')
ax.set_xticks(xdata)
ax.set_xticklabels(xlabels)
figure.autofmt_xdate(rotation=30)
plt.show()
Когда я пытался
create_bar_plot (5)
Я получил эту цифру
Но когда я позвонил
create_bar_plot (1)
Я получил этот толстый бар
Итак, как мне сделать так, чтобы график отображал каждый столбец с фиксированной шириной? Кажется, ширина = barwidth в bar () не делаетт работа, как я ожидал, это будет .. Скорее всего, я что-то упустил ..
Пожалуйста помоги