PyQt5中建立柱状图并刷新柱状图数据

使用Qt Designer工具搭建界面时,在适当位置预留一个verticalLayout垂直布局控件,用于放置代码生成的上下两个柱状图。新建柱状图的代码如下:

class mainWindow(QMainWindow, Ui_MainWindow):def __init__(self):super(mainWindow, self).__init__()self.setupUi(self)  # 初始化窗口self.tabWidget.setCurrentIndex(0)  # 界面显示第一个tab# 新建柱状图self.chartView_1 = self.gen_chart()self.verticalLayout.addWidget(self.chartView_1)self.chartView_2 = self.gen_chart()self.verticalLayout.addWidget(self.chartView_2)self.setLayout(self.verticalLayout)
 def gen_chart(self):# 新建柱状图chart = QChart()barSeries = QBarSeries()  # 竖向柱状图chartView = QChartView()valueAxisY = QValueAxis()barCategorAxisX = QBarCategoryAxis()chart.setAnimationOptions(QChart.AllAnimations)chart.setAnimationEasingCurve(QEasingCurve.OutBack)set0 = QBarSet("第一季度")set1 = QBarSet("第二季度")set2 = QBarSet("第三季度")set0.append(0)set1.append(0)set2.append(0)barCategorAxisX.append(["第一季度", "第二季度", "第三季度"])barSeries.append(set0)barSeries.append(set1)barSeries.append(set2)barSeries.setBarWidth(0.8)barSeries.setLabelsVisible(True)barSeries.setLabelsAngle(75.0)barSeries.setLabelsPrecision(3)valueAxisY.setRange(0, 10)chart.setTitle("季度报表数据")chart.setAxisX(barCategorAxisX)chart.setAxisY(valueAxisY)chart.addSeries(barSeries)chartView.setChart(chart)return chartView

上位机界面计算过程中实时更新计算结果到柱状图,柱状图数据更新的代码如下,函数update_bar_chart()的输入参数chart_index用于区分在verticalLayout垂直布局控件中是第几个添加到布局的柱状图控件:

      # 更新柱状图的数据verticalLayout_name = self.verticalLayoutnew_data = [('第一季度', float(self.output_dict["第一季度"][index].text())),('第二季度', data_dict["第二季度"]),('第三季度', data_dict["第三季度"])]self.update_bar_chart(new_data, 0, verticalLayout_name)
 def update_bar_chart(self, new_data: list, chart_index: int, verticalLayout_name):try:# 获取verticalLayout中的图表chart = verticalLayout_name.itemAt(chart_index).widget().chart()# 清除旧数据chart.removeAllSeries()# 添加新数据barSeries = QBarSeries()  # 竖向柱状图valueAxisY = QValueAxis()barCategorAxisX = QBarCategoryAxis()value_list = []for add_list in new_data:set0 = QBarSet(add_list[0])set0.append(add_list[1])barSeries.append(set0)value_list.append(add_list[1])barSeries.setBarWidth(0.8)barSeries.setLabelsVisible(True)barSeries.setLabelsAngle(75.0)barSeries.setLabelsPrecision(3)valueAxisY.setRange(min(value_list), max(value_list))valueAxisY.setLabelFormat('%.2f')  # %.2f设置了Y轴刻度标签的格式为保留两位小数chart.setTitle("季度报表数据")chart.setAxisX(barCategorAxisX)chart.setAxisY(valueAxisY)chart.addSeries(barSeries)chart.setAnimationOptions(QChart.AllAnimations)chart.setAnimationEasingCurve(QEasingCurve.OutBack)except:logger.error("更新柱状图报错 {}".format(traceback.format_exc()))

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

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

相关文章

详解 Spark Streaming 的 DStream 对象

一、DStream 的创建 1. 通过 RDD 队列 DStream 在内部实现上是一系列连续的 RDD 来表示。每个 RDD 包含有采集周期内的数据 /** 基本语法:StreamingContext.queueStream(queueOfRDDs: Queue, oneAtATime false) */ object DStreamFromRddQueue {def main(args: Ar…

Java——简单图书管理系统

前言: 一、图书管理系统是什么样的?二、准备工作分析有哪些对象?画UML图 三、实现三大模块用户模块书架模块管理操作模块管理员操作有这些普通用户操作有这些 四、Test测试类五、拓展 哈喽,大家好,我是无敌小恐龙。 写…

Spark作业运行异常慢的问题定位和分析思路

一直很慢 🐢 运行中状态、卡住了,可以从以下两种方式入手: 如果 Spark UI 上,有正在运行的 Job/Stage/Task,看 Executor 相关信息就好。 第一步,如果发现卡住了,直接找到对应的 Executor 页面&a…

「前端+鸿蒙」鸿蒙应用开发-TS函数

在 TypeScript 中,函数是一等公民,这意味着函数可以作为参数传递、作为其他函数的返回值,甚至可以赋值给变量。TypeScript 为 JavaScript 的函数增加了类型系统,使得函数的参数和返回值都具有明确的类型。 TS快速入门-函数 基本函…

论文写作神器:15大参考文献来源网站推荐

撰写论文需要大量的参考文献支撑论点,这对在校学生和学者而言都是一大挑战。今天,我们可以充分利用网络资源,高效获取优质文献,摆脱遍查图书馆和杂志社的艰辛。本文就为大家推荐15大优质的参考文献来源网站,助力论文写作! AIPaperDone 拥有完美文献综述的AI论文网站 - AIPaperD…

模糊控制器实现对某个对象追踪输入

MATLAB是一个十分便捷的软件,里面提供了许多集成的组件,本文利用simulink实现模糊控制器实现对某个对象追踪输入。 这里的对象根据自己的需求可以修改,那么搭建一个闭环控制系统并不是难事儿,主要是对于模糊控制器参数的设置&…

win设置ftp服务器~java通过ftp下载文件

1.先设置ftp 2.打开服务 3.设置站点 4.起名字 这样就可以了 5.剩下的就是设置权限和账号了,找到对应的按钮就可以了 6.下载文件的代码 public byte[] downloadFile(File file) throws IOException{ByteArrayOutputStream out new ByteArrayOutputStream();toDi…

seerfar选品功能,OZON运营插件工具seerfar

在当今这个数字化、信息化的时代,电子商务的飞速发展使得越来越多的商家开始关注如何更高效地运营自己的在线店铺。其中,选品作为电商运营的重要一环,直接影响着店铺的流量、转化率和利润。在OZON这样的电商平台上,如何快速、准确…

第四篇红队笔记-百靶精讲之Prime-wfuzz-wpscan-openssl enc

靶机Prime渗透 主机发现 nmap扫描与分析 目录爆破与模糊测试 dirb 目录扫描 dev secret.txt wfuzz发现 file参数 根据secret.txt-location.txt 和 file参数结合 secrettier360 根据filelocation.txt得到的on some other php page(改用之前扫到image.p…

chrony内网同步服务器时间

当前需要在10.26.24.62和10.26.24.61两个服务器上设置chrony同步时间,其中10.26.24.62为NTP时间服务器,10.26.24.61去10.26.24.62同步时间 检查Chrony配置文件: 确认10.26.24.62(NTP服务器)的配置文件 /etc/chrony/c…

Spring 自动配置 condition

目录 前言 1. 自定义condition加载bean 1.1. 自定义一个condition注解 1.2. 实现自定义注解对应的实现类 1.3. 使用如上注解 1.4. 使用Spring上下文获取一下改bean 2. 我们来看看Spring是如何加载redisTemplate的。 2.1. 找到Spring的autoconfigure的jar包,我们…

Web前端高亮:深度解析高亮技术的四个方面、五个方面、六个方面与七个方面

Web前端高亮:深度解析高亮技术的四个方面、五个方面、六个方面与七个方面 在Web前端开发中,高亮技术以其独特的功能和广泛的应用场景,为网页增添了丰富的交互体验。然而,高亮技术的实现并非一蹴而就,它涉及到多个方面…

第二十章 SOAP 错误处理 - 产生故障的方法

文章目录 第二十章 SOAP 错误处理 - 产生故障的方法产生故障的方法MakeFault()MakeFault12()MakeSecurityFault()MakeStatusFault() 第二十章 SOAP 错误处理 - 产生故障的方法 产生故障的方法 MakeFault() classmethod MakeFault(pFaultCode As %String, pFaultString As %S…

Steam下载游戏很慢?一个设置解决!

博主今天重装系统后,用steam下载发现巨慢 500MB,都要下载半小时。 平时下载软件,一般1分钟就搞定了,于是大致就知道,设置应该出问题了 于是修改了,如下设置之后,速度翻了10倍。 另外&#x…

【案例分享】印前制版工单系统:“鹿山科技”助力“铭匠数据”重塑业务流程

内容概要 本文介绍了鹿山信息科技通过明道云HAP平台的数字化解决方案提升了铭匠数据在印前制版行业的效率。周口铭匠数据科技有限公司位于河南省周口市沈丘县,是一家专注于印前制版设计服务的公司,成立于2023年。企业在销售业务、版材制作生产和美工设计…

计算机组成原理复习笔记

前言 就是按照考试的题型写的总结 非常应试版 题型 一、进制转换 只考 十进制 二进制 十六进制 之间的相互转换 一个个看 (1)十进制 转其他 转二进制:除以2 从小到大取余数(0或1) 转十六进制 : 除以1…

爬虫可以不必自己写,使用ChatGPT编写抓取电影评论数据脚本

经常去新华书店看看有没有什么新书上架,还是更新挺及时的,可以反映新的技术趋势。这不,最近就看到了这本《巧用 ChatGPT 快速搞定数据分析》,作者是个大牛,第一次看到prompt可以这么写,得写这么长&#xff…

htb-linux-6-beep

nmap web渗透 目录扫描 漏洞关键词 shell py脚本执行 flag root 目前的权限 nmap root

【深度学习】深度学习之巅:在 CentOS 7 上打造完美Python 3.10 与 PyTorch 2.3.0 环境

【深度学习】深度学习之巅:在 CentOS 7 上打造完美Python 3.10 与 PyTorch 2.3.0 环境 大家好 我是寸铁👊 总结了一篇【深度学习】深度学习之巅:在 CentOS 7 上打造完美Python 3.10 与 PyTorch 2.3.0 环境✨ 喜欢的小伙伴可以点点关注 &#…