怎么基于一个现有array(名为tsne)中的二维数据(格式类似于array([[-33.84329 , -4.964348 ],[-31.112467 , 19.925512 ]))和对应的分类数据(名为aaa的list)进行多分类散点图绘制?给出python代码
时间: 2024-11-27 17:20:41 浏览: 8
要在Python中使用matplotlib库绘制多分类的散点图,你可以结合`seaborn`库中的`catplot`函数,它非常适合处理类别数据。首先,你需要安装这两个库,如果没有安装可以使用以下命令:
```bash
pip install seaborn matplotlib
```
然后,你可以按照以下步骤操作:
```python
import matplotlib.pyplot as plt
import seaborn as sns
# 假设tsne是一个numpy数组,aaa是一个列表,对应于tsne数组的每个样本的标签
tsne = np.array([[-33.84329, -4.964348], [-31.112467, 19.925512]]) # 示例二维数据
aaa = ['Category A', 'Category B'] # 示例分类数据
# 创建一个新的DataFrame,将tsne数据和分类数据整合
df = pd.DataFrame({'tsne_1': tsne[:, 0], 'tsne_2': tsne[:, 1], 'category': aaa})
# 使用seaborn catplot绘制多分类散点图
sns.set_theme(style="whitegrid")
g = sns.catplot(
data=df,
x="tsne_1",
y="tsne_2",
hue="category",
palette="pastel", # 颜色方案
kind="scatter",
)
# 添加标题和图例
g.fig.suptitle("Multi-class Scatter Plot of TSNE Data")
g.legend(title='Categories')
# 显示图形
plt.show()
```
在这个例子中,我们创建了一个pandas DataFrame,然后使用`catplot`函数根据`tsne_1`和`tsne_2`列进行散点图绘制,并通过`hue`参数表示分类数据。记得替换示例数据为你实际的数据。
阅读全文