pyqt5 用QChart库画各个模块都带标题和百分比的饼图
时间: 2024-02-19 17:02:27 浏览: 23
你可以使用 QPieSeries 和 QPieSlice 来绘制带标题和百分比的饼图,每个模块对应一个 QPieSlice 对象。下面是一个使用 PyQt5 绘制带标题和百分比的饼图的示例代码。
```python
import sys
from PyQt5.QtChart import QChart, QChartView, QPieSeries, QPieSlice
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPainter
from PyQt5.QtWidgets import QApplication, QMainWindow
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 创建一个 QChart 对象
chart = QChart()
# 创建一个 QPieSeries 对象
series = QPieSeries()
# 添加 QPieSlice 对象到 QPieSeries 对象
slice1 = QPieSlice("模块1", 20)
slice2 = QPieSlice("模块2", 30)
slice3 = QPieSlice("模块3", 10)
slice4 = QPieSlice("模块4", 40)
series.append(slice1)
series.append(slice2)
series.append(slice3)
series.append(slice4)
# 设置 QPieSeries 对象的标签显示方式
series.setLabelsVisible(True)
series.setLabelsPosition(QPieSlice.LabelInsideTangential)
# 将 QPieSeries 对象添加到 QChart 对象
chart.addSeries(series)
# 设置 QChart 对象的标题和主题
chart.setTitle("各个模块的饼图")
chart.setTheme(QChart.ChartThemeLight)
# 创建一个 QChartView 对象并将 QChart 对象设置为其视图
chart_view = QChartView(chart)
self.setCentralWidget(chart_view)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
```
你可以根据需要自行修改代码中的标题和数据块名称、数值。例如,修改 `slice1 = QPieSlice("模块1", 20)` 中的字符串和数字来设置模块名称和数值,添加更多的 `slice` 对象来增加模块。