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

Matplotlib同图绘制多曲线并为每个数据点设置独立标记

解决Matplotlib中为每个数据点设置独立标记的问题

要实现每条曲线单一颜色、每个数据点独立标记的效果,ax.plot() 本身不支持直接为单个数据点指定不同标记,你可以通过先绘制曲线(不带标记),再用ax.scatter()逐个点添加对应标记的方式实现,具体步骤如下:

修改后的代码示例

import matplotlib.pyplot as plt
import numpy as np

x_data=[[1,2,3,4,5],[5,10,3,8,6]]
y_data=[[5,10,3,8,6],[1,2,3,4,5]]
markers=[["o","+","D","+","D"],["D","o","o","D","+"]]

fig, ax = plt.subplots()

for n in range(len(x_data)):
    # 绘制纯线条的曲线,不带标记
    line, = ax.plot(x_data[n], y_data[n], linewidth=1)
    # 获取曲线颜色,保证标记与线条颜色统一
    line_color = line.get_color()
    # 遍历每个数据点,添加对应标记
    for x, y, marker in zip(x_data[n], y_data[n], markers[n]):
        ax.scatter(x, y, marker=marker, color=line_color)

plt.show()

关键说明

  • ax.plot() 无法直接为单个点设置不同标记,因此先绘制纯线条曲线,确保每条曲线颜色单一。
  • 通过line.get_color()获取曲线的默认颜色,让标记和线条颜色保持一致,避免视觉混乱。
  • ax.scatter() 的marker参数支持接收标记列表,遍历对应的数据点和标记,就能为每个点设置独立标记。
  • 无需将列表转为numpy数组,直接使用原生列表遍历即可,代码更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 19:40:59