在一个二维数据集中,用形状来区分标签,绘制散点图,如何写代码
时间: 2024-09-29 16:05:18 浏览: 32
在Python的matplotlib库中,你可以结合pandas和numpy等工具来完成这样的任务。首先,假设你已经有了一个二维数组 `data` 存储了数值信息,以及一列标签 `labels` 对应于不同形状:
```python
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
# 假设你有如下的数据
data = np.random.rand(50, 2) # 生成随机二维数据
labels = ['0' for _ in range(int(len(data)/2))] + ['1' for _ in range(int(len(data)/2))] # 划分标签
# 将数据转换为DataFrame,便于操作
df = pd.DataFrame({'data': data, 'label': labels})
# 定义形状字典
shapes_dict = {'0': 'o', '1': 'x'}
# 绘制散点图
plt.figure(figsize=(8, 6))
for i, (group_name, group_data) in df.groupby('label'):
plt.scatter(group_data['data'][:, 0], group_data['data'][:, 1],
color='blue', label=group_name, marker=shapes_dict[group_name])
plt.title("Scatter Plot with Different Shapes Based on Labels")
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.legend()
plt.show()
```
上述代码将按照 `labels` 中的类别分别用'o'和'x'表示,并为每类分配一种颜色,最后显示出来是一个根据标签区分形状的散点图。
阅读全文