Python Matplotlib打印未定义数量的轴

Python Matplotlib打印未定义数量的轴,python,matplotlib,Python,Matplotlib,我正在阅读excel工作表并生成numpy数组(数据数组) 在该数组中,每一行是一个不同的组(例如:狗、猫、鸟、昆虫等。项目的数量取决于每个excel工作表) 每个组的列固定为9个元素(年龄、颜色等) 现在我可以绘制每一行的图形。在本例中,我仅绘制data_数组的元素7 fig, ax = plt.subplots() x,y = data_array.shape ind = np.arange(y) width = 1 rects = ax.bar(ind, data_array[7]

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

现在我可以绘制每一行的图形。在本例中,我仅绘制data_数组的元素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行,在 rects[1]=ax.bar(ind,data_array[7],width,color='r')name错误:未定义名称“rects”


如何生成每个ax.bar?

您确实可以使用循环

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

这会将不同行中的所有条形图绘制在彼此的顶部

您确实可以使用循环

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

这会将不同行中的所有条形图绘制在彼此的顶部

“但我收到了一条错误消息”没有用。如果需要帮助,您需要包含完整的错误回溯。此外,在询问代码时,您不应使用
。是什么,以及它是否会导致错误?“但我收到了一条错误消息”没有用。如果需要帮助,您需要包含完整的错误回溯。此外,在询问代码时,您不应使用
。如何知道
是什么,以及它是否会导致错误?谢谢,这非常有帮助。然而,我只看到一个情节。一个在另一个上吗?我只看到覆盖层?是的,它们在彼此的上面。如果你对此不满意,你需要准确地描述你想要的情节。谢谢,这很有帮助。然而,我只看到一个情节。一个在另一个上吗?我只看到覆盖层?是的,它们在彼此的上面。如果你不满意的话,你需要准确地描述你想要的情节。