отображение полос фиксированной ширины для всех наборов данных в 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 () не делаетт работа, как я ожидал, это будет .. Скорее всего, я что-то упустил ..

Пожалуйста помоги

Ответы на вопрос(2)

Ваш ответ на вопрос