Issue
I just learned python, this is literally my first lesson and i was told to make kmeans with python. and while i was doing in and it gives me an error when i use plt.legend() i have read in sov that we should use ax.legend but apparently either it didn't work or i wrote it wrong. so i thought i'll just gave the code before i changed it to the ax. my english is not very good so please bear with it. thank you
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 ()
Solution
I edit three lines and add one line like below:
...
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)
...
finally, code like below:
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()
Answered By - user1740577
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.