前言:
此刻看官们对“python画柱状图数据差异太大”都比较关切,姐妹们都需要了解一些“python画柱状图数据差异太大”的相关内容。那么小编在网摘上汇集了一些有关“python画柱状图数据差异太大””的相关资讯,希望大家能喜欢,大家快快来了解一下吧!百分比柱状图将数据集中显示为每个类别在所有数据集中的百分比。创建百分比条形图类似于创建常规条形图,不同之处在于,对于百分比条形图,使用QPercentBarSeries而不是QBarSeries。在百分比柱状图的Y轴上,无需设置取值范围,因为Y轴的取值始终是0-100。
注:在所有的有关柱状图的示例中,使用了相同的数据,这样可以说明不同柱状图之间的差异。
QPercentBarSeries
QPercentBarSeries类将一系列分类的数据显示为每个类别的百分比。本类将数据绘制为一系列大小一致的垂直堆积的柱状图,每个类别一个柱状图。添加到图表中的每个柱状图组都为每个堆积的柱状图贡献一个分段。段的大小对应于段值相对于堆积中所有段的总值的百分比。零值的条不会绘制。
百分比柱状图示例
本示例显示了如何创建简单的百分比柱状图,完整代码如下:
import sysfrom PyQt5.QtGui import QPainter, QPenfrom PyQt5.QtCore import Qtfrom PyQt5.QtWidgets import QApplication, QMainWindowfrom PyQt5.QtChart import (QChartView, QChart, QPercentBarSeries, QBarSet, QLegend, QBarCategoryAxis, QValueAxis) class DemoPercentBarSeries(QMainWindow): def __init__(self, parent=None): super(DemoPercentBarSeries, 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 = QPercentBarSeries() 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() 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 = DemoPercentBarSeries() window.show() sys.exit(app.exec())
运行结果如下图:
本文知识点使用QPercentBarSeries绘制百分比柱状图。
前一篇: 实战PyQt5: 141-QChart图表之箱形图
请多多关注,评论,收藏,点赞,和转发。