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