You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python的Matplotlib为带红/蓝分类标签的CSV数据上色?

按数据类别为散点图上色的解决方案

你的代码没有利用数据集第三列的类别信息,所以所有点都是同一种颜色。下面是两种实现分类上色的简单方法:

方法一:手动筛选类别数据绘制

import pandas as pd
import matplotlib.pyplot as plt

# 读取CSV数据集
df = pd.read_csv('Question1.csv')

# 分别筛选出red和blue类别的数据
red_points = df[df.iloc[:, 2] == 'red']
blue_points = df[df.iloc[:, 2] == 'blue']

# 绘制两类散点,指定对应颜色和标签
plt.scatter(red_points.iloc[:, 0], red_points.iloc[:, 1], color='red', label='red')
plt.scatter(blue_points.iloc[:, 0], blue_points.iloc[:, 1], color='blue', label='blue')

# 添加坐标轴标签和图例
plt.xlabel('第一列特征')
plt.ylabel('第二列特征')
plt.legend()

# 显示图形
plt.show()

方法二:遍历类别批量绘制(适合多类别扩展)

如果后续数据集增加更多类别,这种方式更易维护:

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv('Question1.csv')

# 定义类别与颜色的映射关系
category_color_map = {'red': 'red', 'blue': 'blue'}

# 遍历每个类别,绘制对应散点
for category, color in category_color_map.items():
    category_data = df[df.iloc[:, 2] == category]
    plt.scatter(category_data.iloc[:, 0], category_data.iloc[:, 1], color=color, label=category)

plt.xlabel('第一列特征')
plt.ylabel('第二列特征')
plt.legend()
plt.show()

关键说明:

  • df.iloc[:,2]用来定位数据集的第三列(类别列),通过条件筛选分离不同类别的数据;
  • 使用plt.scatter而非plt.plot更适合展示这类散点数据,plot默认会绘制连线,不符合散点图需求;
  • 图例(plt.legend())可以帮助区分不同类别的数据点,坐标轴标签让图表含义更清晰。

内容的提问来源于stack exchange,提问作者user20387419

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 02:15:50