【发布时间】:2021-01-19 07:34:41
【问题描述】:
我正在尝试绘制我的聚类结果,但散点图和文本注释没有相互对齐。我不确定要添加什么值,或者是否有任何简单且正确的方法可以做到这一点,下面是我的一段代码。
plt.figure(figsize=(17,9))
labs = statewise_us_finalDF_copy['State'].tolist()
#filter rows of original data
filtered_label0 = statewise_us_finalDF_copy[statewise_us_finalDF_copy['KMEANS_cluster'] == 0]
filtered_label1 = statewise_us_finalDF_copy[statewise_us_finalDF_copy['KMEANS_cluster'] == 1]
filtered_label2 = statewise_us_finalDF_copy[statewise_us_finalDF_copy['KMEANS_cluster'] == 2]
filtered_label3 = statewise_us_finalDF_copy[statewise_us_finalDF_copy['KMEANS_cluster'] == 3]
filtered_label4 = statewise_us_finalDF_copy[statewise_us_finalDF_copy['KMEANS_cluster'] == 4]
filtered_label5 = statewise_us_finalDF_copy[statewise_us_finalDF_copy['KMEANS_cluster'] == 5]
filtered_label6 = statewise_us_finalDF_copy[statewise_us_finalDF_copy['KMEANS_cluster'] == 6]
# Plotting the results
plt.scatter(filtered_label0['Unemployed_2019'] , filtered_label0['POVALL_2019'] , color = 'red')
plt.scatter(filtered_label1['Unemployed_2019'] , filtered_label1['POVALL_2019'] , color = 'blue')
plt.scatter(filtered_label2['Unemployed_2019'] , filtered_label2['POVALL_2019'] , color = 'green')
plt.scatter(filtered_label3['Unemployed_2019'] , filtered_label3['POVALL_2019'] , color = 'black')
plt.scatter(filtered_label4['Unemployed_2019'] , filtered_label4['POVALL_2019'] , color = 'magenta')
plt.scatter(filtered_label5['Unemployed_2019'] , filtered_label5['POVALL_2019'] , color = 'cyan')
plt.scatter(filtered_label6['Unemployed_2019'] , filtered_label6['POVALL_2019'] , color = 'orange')
plt.legend(['Cluster 1', 'Cluster 2', 'Cluster 3', 'Cluster 4', 'Cluster 5', 'Cluster 6', 'Cluster 7'], loc = 'best')
#use for loop to add annotations to each point in plot
for i, txt in enumerate(labs):
plt.annotate(txt, (statewise_us_finalDF_copy['Unemployed_2019'][i], statewise_us_finalDF_copy['POV017_2019'][i]))
plt.title('Clusters by Kmeans', fontsize = 30)
plt.xlabel('Unmployment in 2019', fontsize = 18)
plt.ylabel('Poverty in 2019', fontsize = 18)
plt.xscale('log')
plt.yscale('log')
plt.show()
【问题讨论】:
标签: python python-3.x pandas matplotlib