import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_breast_cancer
from mpl_toolkits.mplot3d import Axes3D
from sklearn.decomposition import TruncatedSVD
#加载数据集
data = load_breast_cancer()
X = data.data
y = data.target
# 进行降维处理,保留3个主成分
svd = TruncatedSVD(n_components=3)
X_reduce = svd.fit_transform(X)
#创建三维图形
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
#根据目标标签设置不同的颜色
colors = ['r' if label == 0 else 'b' for label in y]
#绘制散点图
ax.scatter(X_reduce[:, 0], X_reduce[:, 1], X_reduce[:, 2], c=colors)
#设置轴标签
ax.set_xlabel('Component 1')
ax.set_ylabel('Component 2')
ax.set_zlabel('Component 3')
#显示图形
plt.show()