• 实战PyQt5: 144-QChart图表之水平柱状图


    QBarSeries创建的垂直方向绘制的柱状图。创建在水平方向绘制的柱状图则需要使用类QHorizontalBarSeries来实现。二者的各种原理是一样的,只是后者在水平方向绘制。

    QHorizontalBarSeries

    QHorizontalBarSeries类将一系列数据显示为按类别分组的水平柱状条。

    水平柱状图示例

    示例显示了如何创建水平柱状图,完整代码如下:

    1. import sys
    2. from PyQt5.QtGui import QPainter, QPen
    3. from PyQt5.QtCore import Qt
    4. from PyQt5.QtWidgets import QApplication, QMainWindow
    5. from  PyQt5.QtChart import (QChartViewQChartQHorizontalBarSeriesQBarSet
    6.                             QLegendQBarCategoryAxisQValueAxis)
    7.  
    8. class DemoHorizontalBarSeries(QMainWindow):
    9.     def __init__(selfparent=None):
    10.         super(DemoHorizontalBarSeriesself).__init__(parent)   
    11.         
    12.          # 设置窗口标题
    13.         self.setWindowTitle('实战 Qt for Python: 水平柱状图演示')      
    14.         # 设置窗口大小
    15.         self.resize(480, 360)
    16.         
    17.         self.createChart()
    18.         
    19.     def createChart(self):
    20.         
    21.         #创建条状单元
    22.         barSet0 = QBarSet('Jane')
    23.         barSet1 = QBarSet('Jone')
    24.         barSet2 = QBarSet('Axel')
    25.         barSet3 = QBarSet('Mary')
    26.         barSet4 = QBarSet('Samantha')
    27.         
    28.         barSet0.append([1, 2, 3, 4, 5, 6])
    29.         barSet1.append([5, 0, 0, 4, 0, 7])
    30.         barSet2.append([3, 5, 8, 13, 8, 5])
    31.         barSet3.append([5, 6, 7, 3, 4, 5])
    32.         barSet4.append([9, 7, 5, 3, 1, 2])
    33.         
    34.         #条状图
    35.         barSeries = QHorizontalBarSeries()
    36.         barSeries.append(barSet0)
    37.         barSeries.append(barSet1)
    38.         barSeries.append(barSet2)
    39.         barSeries.append(barSet3)
    40.         barSeries.append(barSet4)
    41.         
    42.         #创建图表
    43.         chart = QChart()
    44.         chart.addSeries(barSeries)
    45.         chart.setTitle('简单水平柱状图示例')
    46.         chart.setAnimationOptions(QChart.SeriesAnimations) #设置成动画显示
    47.         
    48.         #设置横向坐标(X轴)
    49.         categories = ['一月', '二月', '三月', '四月', '五月', '六月']
    50.         axisY = QBarCategoryAxis()
    51.         axisY.append(categories)
    52.         chart.addAxis(axisYQt.AlignLeft)
    53.         barSeries.attachAxis(axisY)
    54.         
    55.         #设置纵向坐标(Y轴)
    56.         axisX = QValueAxis()
    57.         axisX.setRange(0, 15)
    58.         axisX.setTickCount(4)
    59.         chart.addAxis(axisXQt.AlignBottom)
    60.         barSeries.attachAxis(axisX)
    61.         
    62.         #图例属性
    63.         chart.legend().setVisible(True)
    64.         chart.legend().setAlignment(Qt.AlignBottom)
    65.         
    66.         #图表视图
    67.         chartView = QChartView(chart)
    68.         chartView.setRenderHint(QPainter.Antialiasing)
    69.         
    70.         self.setCentralWidget(chartView)
    71.       
    72.         
    73. if __name__ == '__main__':
    74.     app = QApplication(sys.argv)
    75.     window = DemoHorizontalBarSeries()
    76.     window.show()
    77.     sys.exit(app.exec())   

    运行结果如下图:

     QChart水平柱状图示例

    本文知识点

    • 使用QHorizontalBarSeries创建水平柱状图

    前一篇:实战PyQt5: 143-QChart图表之堆积柱状图

  • 相关阅读:
    vue踩坑初体验,登录跳转,前端显示空白
    05 SpringBoot注册Web组件
    CSS中主要定位方式
    EWM 分布式交货单部分过账回传ECC配置点
    excel+requests管理测试用例接口自动化框架
    腾讯云服务器新用户优惠活动有哪些?腾讯云新用户优惠活动汇总
    WordPress(7)js代码增加网页底部 本站已稳定运行了X天
    tslib库编译与移植
    微信小程序展示倒计时
    【学习笔记】AGC036
  • 原文地址:https://blog.csdn.net/seniorwizard/article/details/125600514