PyQt5+QtChart实现柱状图的绘制

 更新时间:2022年12月15日 14:58:30   作者:SongYuLong的博客  
QChart是一个QGraphicScene中可以显示的QGraphicsWidget。本文将利用QtChart实现柱状图的绘制,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下

柱状图分类

QBarSeries:竖向柱状图

QPercentBarSeries:竖向百分比柱状图

QStackedBarSeries:竖向堆叠柱状图

QHorizontalBarSeries:横向柱状图

QHorizontalPercentBarSeries:横向百分比柱状图

QHorizontalStackedBarSeries:横向堆叠柱状图

实现代码

import sys
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qt
from PyQt5.QtChart import QBarSet, QBarSeries, QChart, QChartView, QValueAxis, QBarCategoryAxis,\
          QBarLegendMarker, QVBarModelMapper, QHBarModelMapper, QHorizontalBarSeries,QPercentBarSeries, \
          QHorizontalPercentBarSeries, QHorizontalStackedBarSeries,QStackedBarSeries

class MyBarWindow(QWidget):
    def __init__(self, parent=None):
        super(MyBarWindow, self).__init__(parent)

        chart = QChart()
        barSeries = QBarSeries()    # 竖向柱状图
        # barSeries = QPercentBarSeries()   # 竖向百分比柱状图
        # barSeries = QHorizontalBarSeries()    # 横向柱状图
        # barSeries = QHorizontalPercentBarSeries()   # 横向百分比柱状图
        # barSeries = QStackedBarSeries() # 竖向堆叠柱状图
        # barSeries = QHorizontalStackedBarSeries() # 横向堆叠柱状图

        chartView = QChartView()
        valueAxisY = QValueAxis()
        barCategorAxisX = QBarCategoryAxis()

        chart.setAnimationOptions(QChart.AllAnimations)
        chart.setAnimationEasingCurve(QEasingCurve.OutBack)
        
        set0 = QBarSet("产品1")
        set1 = QBarSet("产品2")
        set2 = QBarSet("产品3")

        set0.append(10.12345)
        set0.append(3.23)
        set0.append(7)

        set1.append(5)
        set1.append(2)
        set1.append(9)

        set2.append(9)
        set2.append(1)
        set2.append(7)

        barSeries.append(set0)
        barSeries.append(set1)
        barSeries.append(set2)
        barSeries.setBarWidth(0.8)

        barSeries.setLabelsVisible(True)
        barSeries.setLabelsAngle(75.0)
        barSeries.setLabelsPrecision(3)
        # barSeries.setLabelsFormat("")
        
        barCategorAxisX.append(["一季度", "二季度", "三季度"])

        valueAxisY.setRange(0, 10)

        chart.setTitle("柱状图表")
        chart.setAxisX(barCategorAxisX)
        chart.setAxisY(valueAxisY)
        chart.addSeries(barSeries)

        chartView.setChart(chart)

        vbox = QVBoxLayout()
        vbox.addWidget(chartView)
        self.setLayout(vbox)
        

if __name__ == "__main__":
    app = QApplication(sys.argv)
    win = MyBarWindow()
    win.show()
    sys.exit(app.exec_())

效果图

竖向柱状图

竖向百分比柱状图

竖向堆叠柱状图

横向柱状图

横向百分比柱状图

横向堆叠柱状图

到此这篇关于PyQt5+QtChart实现柱状图的绘制的文章就介绍到这了,更多相关PyQt5 QtChart柱状图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python中的十大%占位符对应的格式化的使用方法

    python中的十大%占位符对应的格式化的使用方法

    本文主要介绍了python中的十大%占位符对应的格式化的使用方法,它可以很好的帮助我们解决一些字符串格式化的问题, 文中通过示例代码介绍的非常详细,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • python对象转字典的两种实现方式示例

    python对象转字典的两种实现方式示例

    这篇文章主要介绍了python对象转字典的两种实现方式,结合实例形式分析了Python字典与对象数据类型转换相关操作技巧,需要的朋友可以参考下
    2019-11-11
  • Python GUI库PyQt5图形和特效样式QSS介绍

    Python GUI库PyQt5图形和特效样式QSS介绍

    这篇文章主要介绍了Python GUI库PyQt5图形和特效样式QSS介绍,需要的朋友可以参考下
    2020-02-02
  • Python中实现一行拆多行和多行并一行的示例代码

    Python中实现一行拆多行和多行并一行的示例代码

    这篇文章主要介绍了Python中实现一行拆多行和多行并一行的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • python逆向之pyc反编译的使用教程

    python逆向之pyc反编译的使用教程

    python代码的运行是靠python解析器将源代码转换为字节码,本文主要介绍了python逆向之pyc反编译的使用教程,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • Python如何输出警告信息

    Python如何输出警告信息

    这篇文章主要介绍了Python如何输出警告信息,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • PaddleNLP ppdiffusers 自动生成兔了个兔海报

    PaddleNLP ppdiffusers 自动生成兔了个兔海报

    这篇文章主要为大家介绍了PaddleNLP ppdiffusers 自动生成兔了个兔海报示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • 一文搞懂python异常处理、模块与包

    一文搞懂python异常处理、模块与包

    异常就是系统中的错误,程序是无法改变和处理的,文中有给大家提到异常处理机制,模块与包的相关知识,通过实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2021-06-06
  • python 列表删除所有指定元素的方法

    python 列表删除所有指定元素的方法

    下面小编就为大家分享一篇python 列表删除所有指定元素的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python中json库的操作指南

    Python中json库的操作指南

    JSON是存储和交换文本信息的语法,类似XML,JSON比XML更小、更快,更易解析,且易于人阅读和编写,下面这篇文章主要给大家介绍了关于Python中json库的操作指南,需要的朋友可以参考下
    2023-04-04

最新评论