You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Spyder(Python3.9)中绘制双色散点图失败:空白无点求助

问题修复方案

你的空白图问题不是缺少依赖包,而是代码里的拼写错误和图像显示语句缺失,具体修复点如下:

1. 列名拼写错误

循环中调用principal_breast_Df.loc[indicesToKeep,'Principal componenet 1']时,componenet是拼写错误,正确列名是Principal component 1(少写了一个e)。这个错误导致程序找不到对应数据列,自然没有散点显示。

2. 缺少图像显示语句

代码末尾没有调用plt.show(),在Spyder的非交互式绘图模式下,必须显式调用这个函数才能弹出图像窗口。

3. 颜色与标签对应错误

你要求标记0(良性Benign)对应绿色、标记1(恶性Malignant)对应红色,但原代码里colors=['r','g']把Benign对应成了红色,需要调整为['g','r']才能符合需求。


修复后的完整代码

from sklearn.datasets import load_breast_cancer
breast=load_breast_cancer()
breast_data=breast.data
breast_labels = breast.target

import numpy as np
labels=np.reshape(breast_labels,(569,1))
final_breast_data=np.concatenate([breast_data,labels],axis=1)

import pandas as pd
breast_dataset=pd.DataFrame(final_breast_data)
features=breast.feature_names
features_labels=np.append(features,'label')
breast_dataset.columns=features_labels
breast_dataset['label'].replace(0,'Benign',inplace=True)
breast_dataset['label'].replace(1,'Malignant',inplace=True)

from sklearn.preprocessing import StandardScaler
x=breast_dataset.loc[:,features].values
x=StandardScaler().fit_transform(x)

from sklearn.decomposition import PCA
pca_breast=PCA(n_components=2)
principalComponents_breast=pca_breast.fit_transform(x)
principal_breast_Df=pd.DataFrame(data=principalComponents_breast,columns=['Principal component 1','Principal component 2'])
print('Explained variation per principal component:{}'.format(pca_breast.explained_variance_ratio_))

import matplotlib.pyplot as plt

plt.figure(figsize=(10,10))
plt.xticks(fontsize=12)
plt.yticks(fontsize=14)
plt.xlabel('Principal Component 1',fontsize=20)
plt.ylabel('Principal Component 2',fontsize=20)
plt.title("Principal Component Analysis of Breast Cancer Dataset",fontsize=20)
targets=['Benign','Malignant']
# 调整颜色顺序,匹配需求:Benign(0)绿色,Malignant(1)红色
colors=['g','r']

for target,color in zip(targets,colors):
    indicesToKeep=breast_dataset['label']==target
    # 修正列名拼写错误
    plt.scatter(principal_breast_Df.loc[indicesToKeep,'Principal component 1'],
                principal_breast_Df.loc[indicesToKeep,'Principal component 2'],
                c=color,s=50)
plt.legend(targets,prop={'size':15})
# 添加显示图像的语句
plt.show()

内容的提问来源于stack exchange,提问作者grs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 06:05:18