赞
踩
堆积柱状图将数据按组显示为彼此堆积的柱状图。堆积按类别进行。堆积柱状图将数据按组显示为柱状的条,并相互堆积。堆积按类别进行。创建堆积柱状图就像创建常规的柱状图相似,在QChart中使用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())
运行结果如下图:
前一篇: 实战PyQt5: 142-QChart图表之百分比柱状图
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。