当前位置: 首页 > news >正文

PyQt6基础_QtCharts绘制横向柱状图

前置:

pip install PyQt6-Charts

结果:

代码:

import sysfrom PyQt6.QtCharts import (QBarCategoryAxis, QBarSet, QChart,QChartView, QValueAxis,QHorizontalBarSeries)
from PyQt6.QtCore import Qt,QSize
from PyQt6.QtGui import QPainter,QColor
from PyQt6.QtWidgets import QApplication, QWidget,QVBoxLayoutclass BarChartWidget(QWidget):def __init__(self):super().__init__()self.setMinimumSize(QSize(400,600))self.chart = QChart()self._chart_view = QChartView(self.chart)self._chart_view.setRenderHint(QPainter.RenderHint.Antialiasing)layout = QVBoxLayout()layout.addWidget(self._chart_view)self.setLayout(layout)passdef set_data(self,data:dict):self.data = dataself.set_0 = QBarSet('')self.set_0.append(list(self.data['data_map'].values()))  # 7self.set_0.setBarSelected(self.data['target_int'], True)self.set_0.setSelectedColor(QColor(255, 99, 71))self.series = QHorizontalBarSeries()self.series.append(self.set_0)self.series.setLabelsVisible(True)self.series.setLabelsPosition(QHorizontalBarSeries.LabelsPosition.LabelsInsideEnd)self.series.setLabelsFormat(f"@value {self.data['union_val']}")self.chart.addSeries(self.series)self.chart.setTitle(self.data['title'])self.chart.legend().hide()self.chart.setAnimationOptions(QChart.AnimationOption.SeriesAnimations)self.categories = list(self.data['data_map'].keys())self.axis_x = QBarCategoryAxis()self.axis_x.append(self.categories)self.chart.addAxis(self.axis_x, Qt.AlignmentFlag.AlignLeft)self.series.attachAxis(self.axis_x)self.axis_y = QValueAxis()self.axis_y.setRange(0, max(list(self.data['data_map'].values())))self.chart.addAxis(self.axis_y, Qt.AlignmentFlag.AlignBottom)self.series.attachAxis(self.axis_y)passif __name__ == '__main__':app = QApplication([])pre_data = {'title':'横向柱状图','target_int':2,'union_val':'元','data_map':{'苹果':8,'香蕉':5,'榴莲':25,'葡萄':9,'荔枝':15}}mw = BarChartWidget()mw.set_data(pre_data)mw.show()sys.exit(app.exec())pass

http://www.xdnf.cn/news/736057.html

相关文章:

  • 代码随想录算法训练营第60期第五十二天打卡
  • 六步完成软件验收:从计划到终验的全面指南(一)
  • 【瑶池数据库训练营及解决方案本周精选(探索PolarDB,参与RDS迁移、连接训练营)】
  • mobile app 工具简要对比
  • 秒出PPT正式改名秒出AI,开启AI赋能新体验!
  • 数字人革新教育:开启智慧教学新时代
  • 力扣面试150题--二叉树的层平均值
  • 探讨分贝计在医疗环境中的具体应用及其重要性
  • 基于VU37P的高性能采集板卡
  • (独家)SAP VC物料 超级BOM怎么开单?怎么计算或发布表标准成本?
  • 第10讲、Odoo 18框架设计原理全解析
  • Redis 难懂命令-- ZINTERSTORE
  • mysql怎么查询longblob类型数据的大小
  • 小程序33-列表渲染
  • 彻底解决Win11文件资源管理器预览窗格无法预览问题
  • 使用lombok使用自动生成构造方法进行依赖注入
  • KAG进化论:从知识增强到Ai AGENT超级智能体+MOE专家模型将如何引爆下一代AI?
  • 31、请求处理@MatrixVariable与UrlPathHelper
  • PCIe-PCI、PCIe中断机制概述
  • 怎么在window上打开ubuntu虚拟机?
  • 小黑大语言模型通过设计demo进行应用探索:langchain中chain的简单理解demo
  • 事件不触发、交互失效?基于 WebDebugX 的移动端事件调试实战总结
  • 帕金森常见情况解读
  • Cypress API 中文详解
  • 主机号全0,代表网络本身地址; 主机号全1,代表广播地址
  • NLP学习路线图(十二):停用词处理
  • Redis 数据恢复的月光宝盒,闪回到任意指定时间
  • 我的世界服务端搭建
  • 将图片存为二进制流到数据库并展示到前端的实现
  • 深入理解数组索引:原理、应用与优化