# 聚类结果散点图(分类) #预测类别 X1_scaled = preprocessing.scale(data_1) #利用cluster的KMeans方法构建3个类的分类器,并对X1_scaled进行预测 kmeans = cluster.KMeans(n_clusters=3) pred = kmeans.fit_predict(X1_scaled) pred=pd.cut(pred,[-0.5,0.5,1.5,2.5],labels=["类别1","类别2","类别3"]) #取"内核长"和"内核宽"两维数据和对应的预测类别数据 df=pd.DataFrame("内核长":data_1['内核长'],"内核宽":data_1['内核宽'],"类别":pred) #绘制图形 sns.set(style="white") plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['font.family']=['sans-serif'] fig,ax=plt.subplots(figsize=(10,5)) sns.scatterplot(x='内核长',y='内核宽',hue="类别",data=df,palette="Set2",sizes=50) plt.legend(bbox_to_anchor=(1,1),frameon=False) plt.show()
时间: 2024-02-22 15:58:54 浏览: 76
kmeans_cluster_recognization.rar_cluster_kmeans图像分割_kmeans聚类_mat
这是一个使用Python中的seaborn和pandas库绘制聚类结果散点图的代码。其中,使用了sklearn中的KMeans算法对数据进行聚类,并将预测结果可视化为散点图。代码如下:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn import preprocessing
from sklearn import cluster
# 加载数据集
data_1 = pd.read_csv('data.csv')
# 数据预处理,将数据进行标准化
X1_scaled = preprocessing.scale(data_1)
# 使用KMeans算法对数据进行聚类
kmeans = cluster.KMeans(n_clusters=3)
pred = kmeans.fit_predict(X1_scaled)
# 将预测结果转换为分类
pred = pd.cut(pred, [-0.5, 0.5, 1.5, 2.5], labels=["类别1", "类别2", "类别3"])
# 构造DataFrame
df = pd.DataFrame({"内核长": data_1['内核长'], "内核宽": data_1['内核宽'], "类别": pred})
# 绘制散点图
sns.set(style="white")
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['font.family'] = ['sans-serif']
fig, ax = plt.subplots(figsize=(10, 5))
sns.scatterplot(x='内核长', y='内核宽', hue="类别", data=df, palette="Set2", sizes=50)
plt.legend(bbox_to_anchor=(1, 1), frameon=False)
plt.show()
```
以上代码中,我们使用了pandas和seaborn库来处理和可视化数据。首先,我们将数据标准化,然后使用KMeans算法对数据进行聚类,并将预测结果转换为分类。接着,我们使用pandas构造DataFrame,然后使用seaborn绘制散点图来展示聚类结果。在绘制图形时,我们使用了sns.scatterplot方法,其中x、y表示数据集中的两个特征,hue表示预测的类别,palette表示颜色的调色板,sizes表示点的大小。最后,我们使用plt.legend方法添加图例。
阅读全文