mostrando barras de ancho fijo para todos los conjuntos de datos en matplotlib
Tengo los siguientes conjuntos de datos. Necesito trazar barchats para decir 1,2 o todos ellos. Cuando trazo la gráfica para un único elemento de datos (por ejemplo: xdata = [0] e ydata = [1000], xlabels = [' primero '], la barra está programada para ocupar toda el área de la parcela. ¿Cómo restringo el ancho de barra a decir 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()
Cuando lo intente
create_bar_plot (5)
Tengo esta figura
Pero cuando llamé
create_bar_plot (1)
Me sale esta barra de grasa
Entonces, ¿cómo hago que la gráfica muestre cada barra con un ancho fijo? Parece que el ancho = barwidth en la barra () no funciona como esperaba. Muy probablemente me esté perdiendo algo.
Por favor ayuda