如何更改QBarSet的形状?

2024-05-28 00:21:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下代码:

from PyQt6.QtCharts import QChart, QChartView, QBarSet, QBarCategoryAxis, QStackedBarSeries
from PyQt6.QtWidgets import QApplication, QMainWindow
from PyQt6.QtGui import QPainter
from PyQt6.QtCore import Qt

import sys

# NOTE: Modified version of code retrieved from:
# https://codeloop.org/pyqtchart-how-to-create-barchart-in-pyqt5/


class Window(QMainWindow):
    def __init__(self):
        super().__init__()

        self.setWindowTitle("PyQt BarChart")
        self.setGeometry(100,100, 680,500)
        self.show()
        self.create_bar()

    def create_bar(self):
        # The QBarSet class represents a set of bars in the bar chart.
        # It groups several bars into a bar set

        set0 = QBarSet("Parwiz")
        set1 = QBarSet("Bob")
        set2 = QBarSet("Tom")
        set3 = QBarSet("Logan")
        set4 = QBarSet("Karim")

        set0.append([1, 2, 3, 4, 5, 6])
        set1.append([5, 0, 0, 4, 0, 7])
        set2.append([3, 5, 8, 13, 8, 5])
        set3.append([5, 6, 7, 3, 4, 5])
        set4.append([9, 7, 5, 3, 1, 2])

        series = QStackedBarSeries()
        series.append(set0)
        series.append(set1)
        series.append(set2)
        series.append(set3)
        series.append(set4)

        chart = QChart()
        chart.addSeries(series)
        chart.setTitle("Percent Example")

        categories = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"]
        axis = QBarCategoryAxis()
        axis.append(categories)
        chart.addAxis(axis, Qt.AlignmentFlag.AlignBottom)

        chartView = QChartView(chart)
        chartView.setRenderHint(QPainter.RenderHint.Antialiasing)

        self.setCentralWidget(chartView)


App = QApplication(sys.argv)
window = Window()
sys.exit(App.exec())

我想更改QBarSet的形状,使其类似于下面用蓝色圈出的图表:

Sample Image

图像来源于:https://dribbble.com/shots/14154711-Dashboard-charts-library/attachments/5781400?mode=media

我已经想出了如何改变宽度和颜色


Tags: fromimportselfcreatesyschartbarseries