如何将带有ID标签的图例添加到我的代码中



我有25栋房子的用电量,我m doing K-Means clustering on the dataset that holds those houses. After importing the dataset, pre-processing it, and applying K-Means with K=2, I plotted the data but when Im添加了一个图例,我得到了这个:

找不到要放入图例中的带有标签的句柄。

代码中没有错误,它正在运行,但我希望我的代码生成自动图例,其中包含从0到24的每个房子的ID。

这是我绘制数据的代码:

plt.figure(figsize=(13,13))
import itertools 
marker = itertools.cycle(('+', 'o', '*' , 'X', 's','8','>','1','<')) 
for cluster_index in [0,1]:
plt.subplot(2,1,cluster_index + 1)

for index, row in data1.iterrows():
if row.iloc[-1] == cluster_index:
plt.plot(row.iloc[1:-1] ,marker = next(marker) , alpha=1)

plt.legend(loc="right")


plt.plot(kmeans.cluster_centers_[cluster_index], color='k' ,marker='o', alpha=1)
ax = plt.gca()
ax.tick_params(axis = 'x', which = 'major', labelsize = 10)  
plt.xticks(rotation="vertical")
plt.ylabel('Monthly Mean Consumption 2018-2019', fontsize=10)
plt.title(f'Cluster {cluster_index}', fontsize=15)

plt.tight_layout()
plt.show()
plt.close()

我只想在输出图中有每个房子的id的图例,请帮忙

由于我没有您的数据,我现在无法在绘图中测试它,但我认为问题来自于没有将label参数传递给plt.plot,即:

for index, row in data1.iterrows():
if row.iloc[-1] == cluster_index:
plt.plot(row.iloc[1:-1] ,marker = next(marker), alpha=1, label=index)

plt.legend(loc="right")

相关内容

  • 没有找到相关文章

最新更新