Anzeigen von Balken mit fester Breite für alle Datensätze in matplotlib

Ich habe die folgenden Datensätze. Ich muss Barchats für beispielsweise 1,2 oder alle zeichnen. Wenn ich das Diagramm für ein einzelnes Datenelement zeichne (z. B. xdata = [0] und ydata = [1000], xlabels = [' Zuerst '] wird der Balken so markiert, dass er die gesamte Grundstücksfläche einnimmt. Wie beschränke ich die Balkenbreite auf 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()

Als ich es versuchte

create_bar_plot (5)

Ich habe diese Figur

Aber als ich anrief

create_bar_plot (1)

Ich bekomme diesen fetten Riegel

Wie kann ich die Darstellung so gestalten, dass jeder Balken mit fester Breite angezeigt wird? Es scheint, dass die width = barwidth in bar () nicht so funktioniert, wie ich es erwartet hatte. Sehr wahrscheinlich fehlt mir etwas.

Bitte helfen Sie

Antworten auf die Frage(2)

Ihre Antwort auf die Frage