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

如何在PyQtGraph中为单曲线设置不同点样式(无需单独绘制点)

PyQtGraph为不同数据点设置独立样式的实现方法

PyQtGraph的plot()方法返回的CurveItem默认不支持为单个点设置独立样式,想要批量给不同点设置不同画刷/画笔,推荐使用ScatterPlotItem来实现,无需逐个绘制点。

实现步骤

  • 创建ScatterPlotItem实例,传入x、y数据,同时给brush参数传入一个包含不同画刷对象的列表
  • 将该实例添加到绘图部件中

示例代码

import pyqtgraph as pg
from PyQt5.QtGui import QBrush, QColor

# 示例数据
xs = [1, 2, 3, 4, 5]
ys = [2, 4, 1, 5, 3]

# 定义不同样式的画刷列表
brushes = [
    QBrush(QColor(255, 0, 0)),    # 红色画刷
    QBrush(QColor(0, 255, 0)),    # 绿色画刷
    QBrush(QColor(0, 0, 255)),    # 蓝色画刷
    QBrush(QColor(255, 255, 0)),  # 黄色画刷
    QBrush(QColor(255, 0, 255))   # 洋红画刷
]

# 初始化绘图部件
graphWidget = pg.PlotWidget()

# 创建散点图项,传入数据与画刷列表
scatter_item = pg.ScatterPlotItem(x=xs, y=ys, brush=brushes, size=10)

# 将散点图项添加到绘图部件
graphWidget.addItem(scatter_item)

补充说明

  • 如果需要保留点之间的连线,可以同时用CurveItem绘制线条,再叠加ScatterPlotItem显示带样式的点
  • 除了brush参数,还可以通过pen参数传入画笔列表设置点的边框样式,size参数统一调整点的大小

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 04:30:51