exibindo barras de largura fixa para todos os conjuntos de dados no matplotlib

Eu tenho os seguintes conjuntos de dados. Eu preciso traçar barchats para dizer 1,2 ou todos eles. Quando eu traçar o gráfico para um único item de dados (por exemplo: xdata = [0] e ydata = [1000], xlabels = [' primeiro '], a barra é esculpida para ocupar toda a área de plotagem. Como faço para restringir a largura de banda para dizer 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()

Quando eu tentei

create_bar_plot (5)

Eu tenho esse valor

Mas quando liguei

create_bar_plot (1)

Eu pego essa barra gorda

Então, como faço o gráfico mostrar cada barra com largura fixa? Parece que a width = barwidth na barra () não funciona como eu esperava que fosse .. Muito provavelmente eu estou sentindo falta de algo ..

Por favor ajude

questionAnswers(2)

yourAnswerToTheQuestion