Matplotlib绘制未定义的轴数

时间:2017-06-19 15:59:35

标签: python matplotlib

我正在阅读excel表并生成一个numpy数组(data_array) 在这个数组中,每一行都是一个不同的组(例如:狗,猫,鸟,昆虫等......项目数量取决于每个excel表) 列固定为每组9个元素(年龄,颜色等)

现在我可以绘制每一行的图表。在这个例子中,我只绘制data_Array的元素7。

fig, ax = plt.subplots()
x,y = data_array.shape

ind = np.arange(y)  
width = 1

rects = ax.bar(ind, data_array[7], width, color='r')

plt.xticks(ind, names, rotation=90)
plt.ylabel('Area')
plt.title('Normalized IS')          
plt.show()

我可以写:

rects1 = ax.bar(ind, data_array[1], width, color='r')
rects2 = ax.bar(ind, data_array[2], width, color='r')
.
.
.
rectsx = ax.bar(ind, data_array[x], width, color='r')

然后我可以在同一个图表中绘制所有这些。 但是,我正在阅读的每个excel都有不同的x个元素。

我考虑使用以下方法创建它们:

for i in range(x):
    rects[i] = ax.bar(ind, data_array[i], width, color='r') 

但是我收到了一条错误消息。

  

追踪(最近一次呼叫最后一次):

     

文件“”,第1行,in       rects [1] = ax.bar(ind,data_array [7],width,color ='r')NameError:名称'rects'未定义

如何生成每个ax.bar?

1 个答案:

答案 0 :(得分:2)

你确实可以使用循环,

for i in range(x):
    ax.bar(ind, data_array[i], width, color='r')

这将绘制来自不同行的所有条形图。