使用Pandas绘制带分类标记的样本数据集Scatter散点图实现咨询
实现方案
你可以搭配pandas和matplotlib完成需求,完整可运行代码如下:
import pandas as pd import matplotlib.pyplot as plt # 方法1:从CSV文件加载数据(将样本保存为data.csv后使用) # df = pd.read_csv('data.csv', header=None, names=['feature1', 'feature2', 'target']) # 方法2:直接使用你提供的样本数据构造DataFrame,无需额外存文件 data = [ [-0.76,-0.66,-1], [0.07,0.59,1], [0.73,0.6,-1], [0.58,-0.46,-1], [-0.71,0.9,-1], [-0.82,-0.13,-1], [0.2,0.43,1], [-0.72,-0.93,-1], [0.8,-0.79,-1], [-0.35,-0.52,-1], [0.53,0.72,1], [-0.7,0.96,-1] ] df = pd.DataFrame(data, columns=['feature1', 'feature2', 'target']) # 按目标值分组绘制散点图 plt.scatter(df[df['target'] == 1]['feature1'], df[df['target'] == 1]['feature2'], marker='+', s=100, label='类别+1') plt.scatter(df[df['target'] == -1]['feature1'], df[df['target'] == -1]['feature2'], marker='o', s=50, label='类别-1') # 设置图表属性 plt.xlabel('第一个特征取值') plt.ylabel('第二个特征取值') plt.title('样本特征分布可视化') plt.legend() plt.show()
代码说明
- 加载CSV数据时设置
header=None是因为原始数据没有表头,手动指定三列的名称分别为两个特征列和目标列 scatter方法的marker参数分别设置为+和o匹配需求,s参数用来调整标记的大小,可以根据显示效果自行调整- 运行代码后会弹出2D散点图窗口,x轴对应第一个特征、y轴对应第二个特征,两种标记分别对应两个目标类别
内容的提问来源于stack exchange,提问作者SS Pandey
相关产品推荐
相关产品推荐

