PyQt:实现自定义绘制pyqtgraph折线图中的symbol图标

news2024/12/25 13:15:15

一、写在前面

1.关于symbol的官方文档说明:symbol

2.我自己绘制的自定义symbol符号,如下图:一个在坐标轴上移动的“小货车”

在这里插入图片描述

2.默认可以选择的有以下多种symbol符号

在这里插入图片描述

但最后一项也说明了:支持QPainterPath绘制的自定义符号形状。更为详细的,在此处进行了更为详细的说明。
在这里插入图片描述

即,使用QPainterPath绘制自定义的图形需要满足两个条件:①绘制起点需要是坐标原点(0,0);②绘制完成的整体图形需要满足长度宽度都是1

二、主要代码参考

from PyQt5.QtGui import QColor
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import Qt
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
import pyqtgraph as pg

 def init_position(self):
        '''初始化小车位置显示坐标轴'''
        # 设置坐标系的背景颜色
        self.widget.setBackground('w')

        self.p = self.widget.addPlot()
        # 禁止拖动坐标系
        self.p.setMouseEnabled(x=False, y=False)
        self.p.setMenuEnabled(False)
        #隐藏左下角的“A”
        self.p.hideButtons()
        # 初始化坐标轴范围
        self.p.setXRange(0, 2)
        self.p.setYRange(0, 5)
        # 隐藏纵坐标轴
        self.p.showAxis('left', show=False)
        #获取横坐标轴
        self.axis = self.p.getAxis('bottom')
        # 设置坐标系的背景颜色
        self.widget.setBackground((6, 89, 127))
        #设置坐标轴颜色
        self.axis.setPen(color=(0,255,127))
        #绘制颜色设置
        pen_color = pg.mkPen(color=(0,255,127))
        Brush_color = pg.mkBrush(color=(0,255,127))
        #调用自定义symbol符号
        car_symbol = self.create_car_symbol_back()
         #绘制信息
        self.p.plot([2.0], [5],
        pen=pg.mkPen(color=(255,255,0),width=2),
        symbolBrush=Brush_color,
        symbolPen=pen_color, symbol=car_symbol,symbolSize=40)
     
 # 创建一个QPainterPath对象来定义自定义的形状
    def create_car_symbol_back(self):
        '''绘制小货车'''
        path = QtGui.QPainterPath()
        path.moveTo(0, 0)
        path.addRect(0, 0, 0.2, 0.1)
        path.addRect(0,0.1,0.5,0.15)
        path.addEllipse(0.3,0.29,0.15,0.15)
        path.addEllipse(0.05, 0.29, 0.15, 0.15)
        return path

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1549734.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

案例分析-IEEE 754浮点标准

案例一: 请分析IEEE 754双精度浮点数规格化数的表示范围。 案例二: 规格化浮点数的Bias为什么采用2k-1-1而不是2k-1​?非规范数的指数E1-Bias而不是0-Bias? (1) ① bias 127时 E e - 127 (00…

0.96寸OLED屏调试 ----(一)

所需设备: 1、USB 转 SPI I2C 适配器;内附链接 2、0.96寸OLED显示模块; 备注:专业版、升级版都适用; 首先介绍一下OLED显示模块,SSD1306是一款OLED驱动芯片,拥有最大128*64像素支持&#xff…

卷积变体-----分组卷积、深度可分离卷积、膨胀卷积

文章目录 一、分组卷积1.1 概述1.2 参数量变换 二、深度可分离卷积2.1 概述2.2 计算 三、膨胀卷积 一、分组卷积 1.1 概述 1. 分组卷积(Group convolution )最早在AlexNet中出现,由于当时的硬件资源有限,训练AlexNet时卷积操作不…

Axure中后台系统原型模板,B端页面设计实例,高保真高交互54页

作品概况 页面数量:共 50 页(长期更新) 兼容版本:Axure RP 9/10,不支持低版本 应用领域:网页模板、网站后台、中台系统、B端系统 作品特色 本品为「web中后台系统页面设计实例模板」,默林原创…

聊聊CSS

css 的介绍 学习目标 能够知道css的作用 1. css 的定义 css(Cascading Style Sheet)层叠样式表,它是用来美化页面的一种语言。 没有使用css的效果图 使用css的效果图 2. css 的作用 美化界面, 比如: 设置标签文字大小、颜色、字体加粗等样式。 控制页面布局, 比如…

逐步学习Go-协程goroutine

参考:逐步学习Go-协程goroutine – FOF编程网 什么是线程? 简单来说线程就是现代操作系统使用CPU的基本单元。线程基本包括了线程ID,程序计数器,寄存器和线程栈。线程共享进程的代码区,数据区和操作系统的资源。 线…

jMeter学习

一. JMeter介绍 1. 什么是JMeter? Apache JMeter™ 应用程序是开源软件,一个 100% 纯 Java 应用程序,旨在加载测试功能行为和测量性能 。它最初是为测试 Web 应用程序而设计的,但后来扩展到其他测试功能。 2. JMeter能做啥&#x…

RabbitMQ(简单模式)

2种远程服务调用 1openFeign: 优点:能拿到被调用的微服务返回的数据,系统系耦度高,系统稳定。 缺点:同步调用,如果有很多服务需要被调用,耗时长。 MQ,消息队列,RabbitMQ是消息we…

数据可视化-ECharts Html项目实战(8)

在之前的文章中,我们学习了如何设置散点图涟漪效果与仪表盘动态指针效果。想了解的朋友可以查看这篇文章。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错,请留下你宝贵的点赞,谢谢 今天的文章,会…

标定系列——预备知识-OpenCV中实现Rodrigues变换的函数(二)

标定系列——预备知识-OpenCV中实现Rodrigues变换的函数(二) 说明记录 说明 简单介绍罗德里格斯变换以及OpenCV中的实现函数 记录

Machine Learning机器学习之向量机(Support Vector Machine,SVM)

目录 前言 算法提出背景: 核心思想: 原理: 应用领域: 一、支持向量机分类(主要变体) 二、构建常见的支持向量机模型 基于Python 中的 Scikit-learn 库构建线性支持向量机(SVM) 三、向…

蓝桥杯刷题之路径之谜

题目来源 路径之谜 不愧是国赛的题目 题意 题目中会给你两个数组,我这里是分别用row和col来表示 每走一步,往左边和上边射一箭,走到终点的时候row数组和col数组中的值必须全部等于0这个注意哈,看题目看了半天,因为…

【GPU系列】选择最适合的 CUDA 版本以提高系统性能

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

NVIDIA 发布 Project GR00T 人形机器人基础模型和 Isaac 机器人平台重大更新

系列文章目录 前言 Isaac 机器人平台现可为开发者提供全新的机器人训练仿真器、Jetson Thor 机器人计算机、生成式 AI 基础模型和由 CUDA 加速的感知和操作库。 Project GR00T 是一种多模态人形机器人通用基础模型,作为机器人的大脑,使它们能够学习技能…

Android客户端自动化UI自动化airtest从0到1搭建macos+demo演示

iOS客户端自动化UI自动化airtest从0到1搭建macosdemo演示-CSDN博客 一、基础环境 1. 安装jdk 选择jdk8 如果下载高版本 可能不匹配会失败 下载.dmg文件 苹果电脑 | macOS | jdk1.8 | 环境变量配置_jdk1.8 mac-CSDN博客 Java Downloads …

【Java程序设计】【C00390】基于(JavaWeb)Springboot的校园疫情防控管理系统(有论文)

基于(JavaWeb)Springboot的校园疫情防控管理系统(有论文) 项目简介项目获取开发环境项目技术运行截图 博主介绍:java高级开发,从事互联网行业六年,已经做了六年的毕业设计程序开发,开…

前端Web移动端学习day05

移动 Web 第五天 响应式布局方案 媒体查询Bootstrap框架 响应式网页指的是一套代码适配多端,一套代码适配各种大小的屏幕。 共有两种方案可以实现响应式网页,一种是媒体查询,另一种是使用bootstrap框架。 01-媒体查询 基本写法 max-wid…

vue3+Vite+TS项目,配置ESlint和Prettier

创建vue3项目 实操过的有两种方式 1.vue脚手架2.vite(推荐,也是尤大大团队研发) 具体怎么新建一个vue3项目就不多讲了,可以按照官方文档来 创建后的文件目录长这样 多提一句,vite也会随着时间不断迭代,后…

【C++入门】 初见,单推,与C++的第一次约会

关注小庄 顿顿解馋(ᕑᗢᓫ∗)˒ 引言:本篇博客我们开始与C的第一次约会,C是兼容c的,本篇博客我们将了解到C关键字有哪些,C命名空间,C输入与输出和缺省参数的内容,请放心食用 ~ 文章目录 一 🏠 C…

github配置ssh

生成公钥 在电脑用户的目录下打开终端执行 ssh-keygen -t rsa: 执行完不要关 配置文件 看看用户的目录里 .ssh 目录: Host github.comHostname ssh.github.comPort 443配置公钥 复制 id_rsa.pub 文件里的内容 粘贴到 github上 连接密钥 回到刚才的终端…