pyqtgraph基础入门(六):局部改变曲线颜色

现在假设已经可以绘制一张简单的、静态的折线图:
在这里插入图片描述
如果不知道怎么达到这个状态的话,可以参考:
pyqtgraph项目实战(二):使用pyqtgraph绘制折线图(同一坐标轴包含多条折线)
实际上,我们暂时可以只需要一条中间的绿色线作为演示,只需把红色和蓝色曲线去掉即可得到:
在这里插入图片描述

我们希望它在40-60的区间内变成红色。

方法展示

实际上,pyqtgraph根本没有直接提供这样的接口。但是有时希望自己的曲线图更加好看、更有重点,或者无情甲方提出要求,就一定要达到曲线颜色不一样的效果,这该怎么处理呢?

有一个解决方案就是,用另外一条不同颜色的曲线覆盖在原来曲线的上面。
也就是这样:
在这里插入图片描述
这样一来就达到了预期的效果。

源码展示

        p = self.widget.addPlot(title="Basic array plotting")
        p.setYRange(3, 10)
        p.addLegend()
        data = np.random.normal(size=110) + 5
        c1 = p.plot(data, pen=(0, 255, 0), name="Green curve")
        c2 = p.plot(x=range(20),
                    y=data[40:60],
                    pen=(255, 0, 0),
                    name="red curve")
        c2.setPos(40, 0)

源码并不复杂。这里面有几个小点说一下:
添加标签:addLegend

p.addLegend()

这行代码的效果是展示曲线的属性name,作为图例出现在左上角。也就是箭头所指的这个。
在这里插入图片描述

可以用它的一些属性来修改字体、位置等参数。具体可以参考手册:addLegend
对曲线进行命名,也是为了方便对不同的曲线进行单独操作。比如c2.setPos(40, 0)就是为了对齐两条曲线。

如果不想用setPos对其曲线,也可以直接将c2的x赋值为40到60,例如:

        c2 = p.plot(x=np.array(range(20)) + 40,
                    y=data[40:60],
                    pen=(255, 0, 0),
                    name="red curve")

效果也是一样的。

源码文件

https://gitee.com/xixo549845545/pyqtgraph_my_cookbook
本节文件在ch6中

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邵政道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值