plt.scatter overlay分类数据帧列

2024-06-24 12:25:39 发布

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

我正在加载iris数据集,并在xy平面上绘制特征。我想绘制萼片长度和萼片宽度,然后在分类值(刚毛、维吉尼亚、花色)上有一个重叠图。我正在调用df_iris['species'],但它只在图例中显示了setosa。你知道我做错了什么吗

iris = datasets.load_iris()
print(type(iris))

#Convert sklearn.utils.Bunch datatype to dataframe
df_iris= pd.DataFrame(data= np.c_[iris['data'], iris['target']], columns= iris['feature_names'] + ['target'])
df_iris['species'] = pd.Categorical.from_codes(iris.target, iris.target_names)

df_iris['species']
## Since there are 4 feature that means there 6 possible combinations to plot on xy coordinate system
plt.scatter(df_iris['sepal length (cm)'], df_iris['sepal width (cm)'])
plt.grid(True)
plt.legend(df_iris['species'],loc ='lower right')

enter image description here


1条回答
网友
1楼 · 发布于 2024-06-24 12:25:39

请尝试以下代码:

iris = datasets.load_iris()

#Convert sklearn.utils.Bunch datatype to dataframe
df_iris= pd.DataFrame(data= np.c_[iris['data'], iris['target']], columns= iris['feature_names'] + ['target'])
df_iris['species'] = pd.Categorical.from_codes(iris.target, iris.target_names)

df_iris['species']
## Since there are 4 feature that means there 6 possible combinations to plot on xy coordinate system
for species in set(df_iris['species']):
    df_species = df_iris[df_iris['species'] == species]
    plt.scatter(df_species['sepal length (cm)'], df_species['sepal width (cm)'], label=species)
plt.grid(True)
plt.legend(loc ='lower right')

您需要分别绘制不同的标记点

相关问题 更多 >