python-使用Qchart总结3-绘制曲线图

news2024/11/24 17:06:37

1.将画好的图表关联 解释说明图

2.新建一个文件画曲线图,并关联到UI的py文件上,上代码

import sys
from PyQt5.Qt import *
from PyQt5.QtChart import QChartView, QChart, QValueAxis, QSplineSeries
from PyQt5.QtGui import QPainter, QColor, QFont

from PyQt5.QtWidgets import QMainWindow, QApplication

from untitled import Ui_MainWindow #从生成好的py文件内导入设计好的UI类

class Window(QMainWindow, Ui_MainWindow):#这个是将图表与UI图连接起来
    def __init__(self):
        super().__init__()
        self.setup_ui()  # 渲染画布

    def setup_ui(self):
        self.setupUi(self)

        self.plot_qchart = User_QSplineSeries() #将图表实例化
        self.graphicsView.setChart(self.plot_qchart)
        self.graphicsView.setRenderHint(QPainter.Antialiasing)  # 抗锯齿
        self.graphicsView.setRubberBand(QChartView.RectangleRubberBand)


class User_QSplineSeries(QChart): #绘制曲线图
    def __init__(self, parent=None, ):
        super(User_QSplineSeries, self).__init__(parent)
        self.window = parent
#设置x轴
        self.axisX = QValueAxis()
        self.axisX.setRange(0, 10)#X轴的范围
        self.axisX.setLabelFormat("%d")#X轴上数字显示的类型
        self.axisX.setLabelsColor(QColor(0, 0, 0))  # X轴上显示数字的颜色
        self.addAxis(self.axisX, Qt.AlignBottom)  #X轴放底部
# 设置y轴
        self.axisY = QValueAxis()
        self.axisY.setRange(0,200)#Y轴的范围
        self.addAxis(self.axisY, Qt.AlignLeft) #设置Y坐标放在左侧
        self.axisY.setTitleText("单位:分钟")#设置Y坐标的名称

        self.setTitle("视频时长曲线图")#设置整个图表的标题
        self.setTitleFont(QFont("微软雅黑"))#设置整个图表的标题的字体
        #----------------------------------------
#添加曲线
        self.series =QSplineSeries() #使用曲线
        self.series.setName("视频提示等待时长") #设置曲线的名字
# 添加曲线上的点,添加数据用这个
        self.series.append(1,60)
        self.series.append(2,50)
        self.series.append(8,90) #给曲线添加值 x=8 y=90的意思;分别加了3个点
#--------
        self.series.setVisible(True)#将曲线显示出来
#设置曲线上点的显示
        font = QFont()
        font.setPointSize(12)
        self.series.setPointLabelsFont(font)#给显示的点坐标设置字体大小

        self.series.setPointLabelsFormat("@yPoint分钟")#设置点坐标显示的格式
        self.series.setPointLabelsVisible(True)#将点坐标显示出来
#将曲线加到坐标图里面去
        self.addSeries(self.series)
        self.series.attachAxis(self.axisX)#让曲线与坐标轴对应
        self.series.attachAxis(self.axisY)
        self.series.setColor(QColor(126,211,33))#设置曲线的颜色

# -------------------------------------------------------
if __name__ == "__main__":

    app = QApplication(sys.argv)
    mywindow = Window()
    mywindow.show()
    sys.exit(app.exec_())

 3.执行效果

4.画多条

①将图中的代码复制一遍,选中的变量重新命名

②把曲线颜色更改一下,添加的数据更改一下 ,曲线名称更改一下,就可以画第二条了

第二条曲线代码

#添加曲线2
        self.series1 =QSplineSeries() #使用曲线
        self.series1.setName("视频真实时长") #设置曲线的名字
# 添加曲线上的点,添加数据用这个
        self.series1.append(2,30)
        self.series1.append(3,50)
        self.series1.append(7,90) #给曲线添加值 x=8 y=90的意思;分别加了3个点
#--------
        self.series1.setVisible(True)#将曲线显示出来
#设置曲线上点的显示
        font = QFont()
        font.setPointSize(12)
        self.series1.setPointLabelsFont(font)#给显示的点坐标设置字体大小

        self.series1.setPointLabelsFormat("@yPoint分钟")#设置点坐标显示的格式
        self.series1.setPointLabelsVisible(True)#将点坐标显示出来
#将曲线加到坐标图里面去
        self.addSeries(self.series1)
        self.series1.attachAxis(self.axisX)#让曲线与坐标轴对应
        self.series1.attachAxis(self.axisY)
        self.series1.setColor(QColor(26,11,233))#设置曲线的颜色

 5.执行效果

 

 

 

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

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

相关文章

PHP实现使用foreach、for等语句实现数组遍历的功能举例

目录 前言 一、什么是数组 二、遍历数组for语句案例 1.1运行流程(思想) 1.2代码段 1.3运行截图 三、输出数组的键名和值,foreach语句案例 1.1运行流程(思想) 1.2代码段 1.3运行截图 前言 1.若有选择,可实现…

二十三种设计模式第二篇--工厂模式

上篇我们了解了6条设计模式的准则,我相信如果你想了解设计模式,那么你迈出的第一步,我会将上一篇文档里边的6大准则进行一篇有关的代码展示,当然这是题外话了,本篇我们将重点围绕工厂模式进行讲解,天哪&…

Shell+VCS学习1

Shell脚本常见问题 mkdir rmdir rm mkdir 创建文件夹 mkdir -p filename-p 确保目录名称存在,不存在的就建一个。 mkdir -p runoob2/test若 runoob2 目录原本不存在,则建立一个。(注:本例若不加 -p 参数,且原本 ru…

【C++】反向迭代器的实现

文章目录 1.迭代器的分类2.反向迭代器的使用3.反向迭代器的模拟实现4.list类的反向迭代器实现 1.迭代器的分类 我们随便打开一个容器,看迭代器相关的接口,都可以发现,支持迭代器的容器,其迭代器有以下几类 正向迭代器const正向迭…

软件测试必备的Linux知识(一)

1. Linux 概述 1.1 测试人员为什么学习linux 对于软件测试人员来说,我们测试的任何产品都是基于操作系统。比如我们每天都在使用的QQ软件,它有windows、ios、Android、Mac OS等版本,需要把QQ安装在各个平台上,才能进行相应的测试…

03 KVM虚拟机镜像制作

文章目录 03 KVM虚拟机镜像制作3.1 概述3.2 制作镜像3.2.1 使用root用户安装qemu-img软件包3.2.2 使用qemu-img工具的创建镜像文件 3.3 修改镜像磁盘空间大小3.3.1 查询当前虚拟机镜像磁盘空间大小3.3.2 修改镜像磁盘空间大小3.3.3 查询修改后的镜像磁盘空间大小 03 KVM虚拟机镜…

WPS作图常见问题+LATLEX

【LaTex】LaTex的下载与安装(超详细、超简洁) 表格 1、打开WPS表格,切换至“开始”选项卡,单击“绘图边框”按钮,如下图。 2、鼠标变成如下图一样的笔后,按照斜线表头的方向拉动鼠标,然后就给…

【2023程序员必看】前端行业分析

“前端已死?”|“情绪焦虑?” 最近经常在知乎、脉脉等平台上看到有人在渲染前端就业危机,甚至使用“前端已死”的字眼,颇有“语不惊人死不休”的意味。 “前端已死”更多的是一种焦虑情绪的表达。现阶段的市场行情确实不太好&am…

【LLM】离线部署ChatGLM-6B模型

目录 前言 准备环境 打包环境 下载/上传模型 部署模型 前言 甲方出手,天下我有🤩。圆梦了圆梦了~一直想整一台GPU服务器尝尝鲜,奈何钱包空空,虽然有可以在CPU上部署的方案,但效果却不是让人那么满意&#xff0c…

杭州一公司开出20万月薪/320万年薪抢人!ChatGPT掀起AI热潮,AIGC人才被爆抢

5年工作经历,博士学位,最高月薪20万。 最近,位于杭州未来科技城一家公司,开出了最高320万年薪,招聘AIGC方向算法工程师一名。 ChatGPT在全球掀起了AI热潮,国内互联网大厂纷纷加入战局打造国内版ChatGPT。…

Analysis For Office的一些使用技巧

目录 1. 自由特性下钻停止刷新 2. 直接双击过滤内容 3.重复层级值 4. 从过滤值选参数 5.从Excel复制参数 6. 保存参数值 7.计划值回退到上一步 8. 保存当前导航步骤 1. 自由特性下钻停止刷新 一般我们每次拖一个自由特性到workbook里,报表都会自动刷新。如…

电商败给了直播带货,实体店能靠直播提升销量吗?

根据官方发布的最新数据,直播带货的市场规模将达到4.7万亿元,不少品牌借助直播间触达了上亿的用户,完成了千万级别的销售订单。 目前直播带货已经成为“红海”市场,未来仍然有巨大的发展空间。 一、直播带货打败传统电商 自从电商…

vue3+ts数组去重方法-reactive/ref响应式显示

vue3ts数组去重方法-reactive/ref响应式显示 本文目录 vue3ts数组去重方法-reactive/ref响应式显示简单数组使用 Set 和 扩展运算符(...)将集合转换回数组使用 Set 和 Array.from() 方法将集合转换回数组使用 filter 和 indexOf 进行判断使用 splice 和 …

函函函函函函函函函函函数——two

🤩本文作者:大家好,我是paperjie,感谢你阅读本文,欢迎一建三连哦。 🥰内容专栏:这里是《C知识系统分享》专栏,笔者用重金(时间和精力)打造,基础知识一网打尽,…

【DevOps视频】笔记】1. DevOps的诞生

视频官网 目录 一、DevOps介绍 定义: 作用: 核心: 二、软件开发流程 三、流程图 一、DevOps介绍 定义: Development & Operations的缩写,也就是开发&运维DevOps 是一个不断提高效率并且持续不断工作…

(八)Geoprocessing地理处理框架——基本介绍

(八)Geoprocessing地理处理框架——基本介绍 目录 (八)Geoprocessing地理处理框架——基本介绍 1.基本概念2.集成ArcToolbox3.多种使用方式3.1对话框3.2Python窗口3.3模型构建器3.4脚本 4.应用基础4.1启动ArcToolbox4.2激活扩展工…

PostgreSQL中创建索引的消极影响

相信大家在使用数据库中,提高SQL查询速度最简单的办法就是添加相关索引,但是其实我们创建的索引并不一定能用上,有时候顺序扫描也并不见的就比离散的索引扫描差,任何事物我们要辩证的看待,今天我们说明一下创建索引的一…

AQS 抽象同步队列的简单理解

前置知识: 可重入锁又叫递归锁,同一个线程在外层方法获取锁的时候,在进入该线程内层方法会自动获取锁,不会因为之前已经获取过还没释放就阻塞 同一个线程可以多次获得同一把锁 每个锁对象都有一个锁计数器和一个指向持有该锁的…

Python爬虫-D车网近半年(六个月)汽车销量排行榜

前言 本文是该专栏的第46篇,后面会持续分享python爬虫干货知识,记得关注。 在本专栏前面,笔者有单独详细介绍过该平台当前月更新的最新汽车销量排行榜数据。感兴趣的同学,可往前翻阅查看(Python爬虫-某懂车平台之汽车销量排行榜)。 而本文,笔者将详细来介绍该平台近半年…

【git】git提交代码-使用简易指南

1、创建新仓库:git init 创建新文件夹,打开执行:git init ,创建新的git仓库 2、检出仓库:git clone 执行该命令,以创建一个本地仓库的克隆版本:git clone /path/to/repository 如果是远端服务器…