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