我正在阅读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?
答案 0 :(得分:2)
你确实可以使用循环,
for i in range(x):
ax.bar(ind, data_array[i], width, color='r')
这将绘制来自不同行的所有条形图。