2016-01-30 105 views
1

似乎無法弄清楚爲什麼我的圖例缺少其他兩個目標名稱。matplotlib散點圖圖例中缺少標籤

%matplotlib inline 
import matplotlib.pyplot as plt 
from sklearn import datasets 


iris=datasets.load_iris() 
plt.figure(figsize=(8,8)) 
plt.scatter(iris.data[:, 0], iris.data[:, 2], c=iris.target) 
plt.xlabel(iris.feature_names[0]) 
plt.ylabel(iris.feature_names[2]) 
plt.title('Iris Dataset') 
plt.legend(iris.target_names, loc='lower right') 

enter image description here

回答

2

這可能不是最好的解決辦法,但你會通過不同的目標類型必須循環,並呼籲散射具有特定顏色和標籤的說法:

import matplotlib.pyplot as plt 
from sklearn import datasets 

iris=datasets.load_iris() 
plt.figure(figsize=(8,8)) 

for target in set(iris.target): 
    print target 
    x = [iris.data[i,0] for i in range(len(iris.target)) if iris.target[i]==target] 
    y = [iris.data[i,2] for i in range(len(iris.target)) if iris.target[i]==target] 
    plt.scatter(x, y, color=['red', 'blue', 'green'][target], label=iris.target_names[target]) 
plt.xlabel(iris.feature_names[0]) 
plt.ylabel(iris.feature_names[2]) 
plt.title('Iris Dataset') 
plt.legend(iris.target_names, loc='lower right') 
plt.show() 

This is the results of this code.