横向柱状堆叠图设置_实战PyQt5: 143-QChart图表之堆积柱状图

bb7a628002564e2590b22a3e5d14bbd0.png

堆积柱状图将数据按组显示为彼此堆积的柱状图。堆积按类别进行。堆积柱状图将数据按组显示为柱状的条,并相互堆积。堆积按类别进行。创建堆积柱状图就像创建常规的柱状图相似,在QChart中使用QStackedBarSeries创建堆积柱状图。

QStackedBarSeries

QStackedBarSeries类将一系列数据显示为垂直堆积的柱状图,每个类别对应一个柱状图。添加到图表序列中的每个柱状图组都为每个堆积的柱状图贡献一个子条块。

堆积柱状图示例

示例显示了如何创建简单的堆积柱状图,完整代码如下:

import sysfrom PyQt5.QtGui import QPainter, QPenfrom PyQt5.QtCore import Qtfrom PyQt5.QtWidgets import QApplication, QMainWindowfrom  PyQt5.QtChart import (QChartView, QChart, QStackedBarSeries, QBarSet,                             QLegend, QBarCategoryAxis, QValueAxis) class DemoStackedBarSeries(QMainWindow):    def __init__(self, parent=None):        super(DemoStackedBarSeries, self).__init__(parent)                    # 设置窗口标题        self.setWindowTitle('实战 Qt for Python: 堆积柱状图演示')              # 设置窗口大小        self.resize(480, 360)                self.createChart()            def createChart(self):                #创建条状单元        barSet0 = QBarSet('Jane')        barSet1 = QBarSet('Jone')        barSet2 = QBarSet('Axel')        barSet3 = QBarSet('Mary')        barSet4 = QBarSet('Samantha')                barSet0.append([1, 2, 3, 4, 5, 6])        barSet1.append([5, 0, 0, 4, 0, 7])        barSet2.append([3, 5, 8, 13, 8, 5])        barSet3.append([5, 6, 7, 3, 4, 5])        barSet4.append([9, 7, 5, 3, 1, 2])                #条状图        barSeries = QStackedBarSeries()        barSeries.append(barSet0)        barSeries.append(barSet1)        barSeries.append(barSet2)        barSeries.append(barSet3)        barSeries.append(barSet4)                #创建图表        chart = QChart()        chart.addSeries(barSeries)        chart.setTitle('简单堆积柱状图示例')        chart.setAnimationOptions(QChart.SeriesAnimations) #设置成动画显示                #设置横向坐标(X轴)        categories = ['一月', '二月', '三月', '四月', '五月', '六月']        axisX = QBarCategoryAxis()        axisX.append(categories)        chart.addAxis(axisX, Qt.AlignBottom)        barSeries.attachAxis(axisX)                #设置纵向坐标(Y轴)        axisY = QValueAxis()        axisY.setRange(0, 30)        axisY.setTickCount(4)        chart.addAxis(axisY, Qt.AlignLeft)        barSeries.attachAxis(axisY)                #图例属性        chart.legend().setVisible(True)        chart.legend().setAlignment(Qt.AlignBottom)                #图表视图        chartView = QChartView(chart)        chartView.setRenderHint(QPainter.Antialiasing)                self.setCentralWidget(chartView)              if __name__ == '__main__':    app = QApplication(sys.argv)    window = DemoStackedBarSeries()    window.show()    sys.exit(app.exec())   

运行结果如下图:

b89a9d0ceb0313dc1eb9a4ac1be48863.gif

QChart堆积柱状图示例

本文知识点

  • 使用QStackedBarSeries创建堆积柱状图

前一篇: 实战PyQt5: 142-QChart图表之百分比柱状图

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值