[英]Missing labels in matplotlib scatter plot legend
似乎无法弄清楚为什么我的图例中缺少其他两个目标名称。
%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')
这可能不是最佳解决方案,但是您将不得不遍历不同的目标类型,并使用特定的color和label参数调用scatter:
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()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.