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

如何根据第三列值为2D数据点设置红叉/蓝圈标记?能否用plt.plot实现?

用plt.plot()实现按第三列值区分散点样式

当然可以用plt.plot()实现这个需求!核心思路是把数据按第三列的取值分成两组,分别调用plt.plot()设置对应的样式就可以了。

具体实现步骤

  • 首先按第三列的取值筛选出不同的数据集
  • 对每组数据单独调用plt.plot(),指定对应的颜色和标记样式

完整代码示例

import numpy as np
import matplotlib.pyplot as plt

# 你的原始数组
arr = np.array([[1, 2, -1],
                [1, 3, 1],
                [3, 2, -1],
                [5, 2, -1]])

# 筛选第三列为-1的点
mask_neg = arr[:, 2] == -1
x_neg, y_neg = arr[mask_neg, 0], arr[mask_neg, 1]

# 筛选第三列为1的点
mask_pos = arr[:, 2] == 1
x_pos, y_pos = arr[mask_pos, 0], arr[mask_pos, 1]

# 分别绘制两组点
plt.plot(x_neg, y_neg, 'xr', label='Value = -1')  # 红色的'x'标记
plt.plot(x_pos, y_pos, 'bo', label='Value = 1')  # 蓝色的'o'标记

# 可选:添加图例、坐标轴标签让图表更清晰
plt.xlabel('X Column')
plt.ylabel('Y Column')
plt.legend()

plt.show()

补充说明

如果你的第三列还有其他取值,只需要按照相同的逻辑添加新的筛选条件和plt.plot()调用即可。另外,虽然plt.scatter()可以通过参数一次性设置不同样式,但既然你明确要求用plt.plot(),这个分组合绘制的方法完全能满足你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:07:25