未找到要放入图例中的标签句柄。plt.legend()

2024-09-27 18:02:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚刚学习了python,这实际上是我的第一课,有人告诉我用python制作kmeans。当我使用plt.legend()时,它给了我一个错误,我在sov中读到我们应该使用ax.legend,但很明显,要么它不起作用,要么我写错了。所以我想在我把它改成ax之前,我会先给出代码。我的英语不是很好,所以请容忍。多谢各位

import numpy as np
import pandas as pd
from sklearn.cluster import KMeans
from sklearn.preprocessing import MinMaxScaler
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.read_excel("Umur.xlsx")
df.head()
print(df)
a = plt.scatter(df['Umur'],df['Gaji'])
plt.show()
km = KMeans(n_clusters=3)
km
y_predicted = km.fit_predict(df[['Umur','Gaji']])
y_predicted
print(y_predicted)
df['cluster'] = y_predicted
df.head()
print(df)

df1 = df[df.cluster==0]
df2 = df[df.cluster==1]
df3 = df[df.cluster==2]

plt.scatter(df1.Umur,df1['Gaji'],color='green')
plt.scatter(df2.Umur,df2['Gaji'],color='red')
plt.scatter(df3.Umur,df3['Gaji'],color='black')

#plt.scatter(km.cluster_centers_[:,0],km_clusters_centers_[:,1],color='purple',marker='*',label='centroid')
plt.xlabel('Umur')
plt.ylabel('Gaji')
plt.legend ()

Tags: importdfaspltcolordf1clusterdf2
1条回答
网友
1楼 · 发布于 2024-09-27 18:02:31

我编辑三行并添加一行,如下所示:

...
gaji_green  = plt.scatter(df1.Umur,df1['Gaji'],color='green')
gaji_red    = plt.scatter(df2.Umur,df2['Gaji'],color='red')
gaji_balck  = plt.scatter(df3.Umur,df3['Gaji'],color='black')
...
plt.legend((gaji_green, gaji_red, gaji_balck),
           ('gaji_green', 'gaji_red', 'gaji_balck'),
           scatterpoints=1,
           loc='lower left',
           ncol=1,
           fontsize=8)
...

最后,代码如下所示:

import numpy as np
import pandas as pd
from sklearn.cluster import KMeans
from sklearn.preprocessing import MinMaxScaler
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.read_excel("Umur.xlsx")


km = KMeans(n_clusters=3)
y_predicted = km.fit_predict(df[['Umur','Gaji']])

df['cluster'] = y_predicted

df1 = df[df.cluster==0]
df2 = df[df.cluster==1]
df3 = df[df.cluster==2]

gaji_green  = plt.scatter(df1.Umur,df1['Gaji'],color='green')
gaji_red    = plt.scatter(df2.Umur,df2['Gaji'],color='red')
gaji_balck  = plt.scatter(df3.Umur,df3['Gaji'],color='black')

plt.xlabel('Umur')
plt.ylabel('Gaji')
plt.legend ()

plt.legend((gaji_green, gaji_red, gaji_balck),
           ('gaji_green', 'gaji_red', 'gaji_balck'),
           scatterpoints=1,
           loc='lower left',
           ncol=1,
           fontsize=8)

plt.show()

相关问题 更多 >

    热门问题