显示百分比和标签

2024-06-28 10:49:12 发布

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

我试图在Qchart中显示标签和百分比,但它只显示其中一个

有没有办法让他们两个都看出来

这是我运行QtChart的函数

def charts_jr_acte(self):# pushButton_123

        

        rightseries = QPieSeries()


        rightseries.setLabelsVisible(True)
        rightseries.setLabelsPosition(QPieSlice.LabelInsideHorizontal)
        

        for C_acte, montant in rows:
            rightseries.append(C_acte, montant)
        
        slice = QPieSlice()
        slice = rightseries.slices() [2]
        slice.setExploded(True)
        slice.setPen(QtGui.QPen(Qt.darkBlue))

            
        for slice in rightseries.slices():
                slice.setLabel("{:.2f}%".format(100 * slice.percentage()))
        
        rightchart = QChart()
        rightchart.createDefaultAxes()
        rightchart.addSeries(rightseries)
        rightchart.setTitle("total journalier de chaque Acte")
        rightchart.setAnimationOptions(QChart.SeriesAnimations)


        rightchart.legend().setVisible(True)
        rightchart.legend().setAlignment(Qt.AlignBottom)

        rightchart.legend().markers(rightseries)[1].setLabel(lab)

        rightseries.setLabelsVisible()
        rightseries.setLabelsPosition(QtChart.QPieSlice.LabelInsideHorizontal)

        self.graphicsView_4.setChart(rightchart)

` 这是结果的一个例子

enter image description here


Tags: inselftrueforslicelegendmontantqtchart
1条回答
网友
1楼 · 发布于 2024-06-28 10:49:12

我找到了一个让它工作的方法

def charts_jr_acte(self):# pushButton_123

        

        rightseries = QPieSeries()


        rightseries.setLabelsVisible(True)

        for C_acte, montant in rows:
            rightseries.append(C_acte, montant)
        
        slice = QPieSlice()
        slice = rightseries.slices() [2]
        slice.setExploded(True)
        slice.setPen(QtGui.QPen(Qt.darkBlue))

            
        for slice in rightseries.slices():
            slice.setLabelVisible()
            oldLabel=slice.label()
            slice.setLabel((oldLabel+": %.1f%%"  %(slice.percentage()*100) ))
        
        rightchart = QChart()
        rightchart.createDefaultAxes()
        rightchart.addSeries(rightseries)
        rightchart.setTitle("total journalier de chaque Acte")
        rightchart.setAnimationOptions(QChart.SeriesAnimations)


        rightchart.legend().setVisible(True)


        self.graphicsView_4.setChart(rightchart)

这就是它的样子

enter image description here

相关问题 更多 >