当前位置:   article > 正文

实战PyQt5: 144-QChart图表之水平柱状图_pyqt qtchart 柱状图点击动画

pyqt qtchart 柱状图点击动画

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 (QChartView, QChart, QHorizontalBarSeries, QBarSet, 
  6.                             QLegend, QBarCategoryAxis, QValueAxis)
  7.  
  8. class DemoHorizontalBarSeries(QMainWindow):
  9.     def __init__(self, parent=None):
  10.         super(DemoHorizontalBarSeries, self).__init__(parent)   
  11.         
  12.          # 设置窗口标题
  13.         self.setWindowTitle('实战 Qt for Python: 水平柱状图演示')      
  14.         # 设置窗口大小
  15.         self.resize(480360)
  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([123456])
  29.         barSet1.append([500407])
  30.         barSet2.append([3581385])
  31.         barSet3.append([567345])
  32.         barSet4.append([975312])
  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(axisY, Qt.AlignLeft)
  53.         barSeries.attachAxis(axisY)
  54.         
  55.         #设置纵向坐标(Y轴)
  56.         axisX = QValueAxis()
  57.         axisX.setRange(015)
  58.         axisX.setTickCount(4)
  59.         chart.addAxis(axisX, Qt.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图表之堆积柱状图

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/132496
推荐阅读
相关标签
  

闽ICP备14008679号