在 Qt 饼图中显示百分比?
Show percentage in Qt Pie Charts?
如何在图表上显示 Qt Pie charts 中的百分比?
要完成此任务,您必须启用使标签可见并将位置放置为 LabelInsideHorizontal,在以下代码中显示了解决方案。
series->setLabelsVisible();
series->setLabelsPosition(QPieSlice::LabelInsideHorizontal);
for(auto slice : series->slices())
slice->setLabel(QString("%1%").arg(100*slice->percentage(), 0, 'f', 1));
PyQt5:
import sys
from PyQt5 import QtCore, QtGui, QtWidgets, QtChart
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
series = QtChart.QPieSeries()
series.append("Jane", 1)
series.append("Joe", 2)
series.append("Andy", 3)
series.append("Barbara", 4)
series.append("Axel", 5)
chart = QtChart.QChart()
chart.addSeries(series)
chart.setTitle("Simple piechart example")
chart.legend().hide()
series.setLabelsVisible()
series.setLabelsPosition(QtChart.QPieSlice.LabelInsideHorizontal)
for slice in series.slices():
slice.setLabel("{:.1f}%".format(100 * slice.percentage()))
chartView = QtChart.QChartView(chart)
chartView.setRenderHint(QtGui.QPainter.Antialiasing)
window = QtWidgets.QMainWindow()
window.setCentralWidget(chartView)
window.resize(640, 480)
window.show()
sys.exit(app.exec())
如何在图表上显示 Qt Pie charts 中的百分比?
要完成此任务,您必须启用使标签可见并将位置放置为 LabelInsideHorizontal,在以下代码中显示了解决方案。
series->setLabelsVisible();
series->setLabelsPosition(QPieSlice::LabelInsideHorizontal);
for(auto slice : series->slices())
slice->setLabel(QString("%1%").arg(100*slice->percentage(), 0, 'f', 1));
PyQt5:
import sys
from PyQt5 import QtCore, QtGui, QtWidgets, QtChart
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
series = QtChart.QPieSeries()
series.append("Jane", 1)
series.append("Joe", 2)
series.append("Andy", 3)
series.append("Barbara", 4)
series.append("Axel", 5)
chart = QtChart.QChart()
chart.addSeries(series)
chart.setTitle("Simple piechart example")
chart.legend().hide()
series.setLabelsVisible()
series.setLabelsPosition(QtChart.QPieSlice.LabelInsideHorizontal)
for slice in series.slices():
slice.setLabel("{:.1f}%".format(100 * slice.percentage()))
chartView = QtChart.QChartView(chart)
chartView.setRenderHint(QtGui.QPainter.Antialiasing)
window = QtWidgets.QMainWindow()
window.setCentralWidget(chartView)
window.resize(640, 480)
window.show()
sys.exit(app.exec())