Pyqtchart数据可视化_饼状图

Pyqtchart数据可视化_饼状图

内容不重要,主要是记录一下报错。

import sys

from PyQt5 import QtGui
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtChart import QChart, QChartView, QPieSeries, QPieSlice
from PyQt5.QtGui import QPainter, QPen
from PyQt5.QtCore import Qt


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

        self.setWindowTitle("PyQt5饼图")

        # 显示位置
        self.setGeometry(100, 100, 800, 600)
        self.create_piechart()
        self.show()

    def create_piechart(self):
        # 创建QPieSeries对象,它用来存放饼图的数据
        series = QPieSeries()

        module_name = ["trojan_trigger.v", "TSC.v", "aes_128.v"]
        signal_num = [128, 12, 8]
        color = [ "#ffc656", "#2fc7e8", "#3ed7b7"]
        for i in range(0, 3):
            # print(module_name[i], signal_num[i])
            series.append(module_name[i], signal_num[i])

        # 单独处理某个扇区
        slice = QPieSlice()
        for i in range(0, 3):
            slice = series.slices()[i]
            slice.setLabelVisible(True)
            # slice.setPen(QPen(Qt.white, 10))
            slice.setBrush(QtGui.QColor(color[i]))

        # 创建QChart实例,它是PyQt5中的类
        chart = QChart()
        # QLegend类是显示图表的图例,先隐藏掉
        chart.legend().hide()
        chart.addSeries(series)
        chart.createDefaultAxes()

        # 设置动画效果
        chart.setAnimationOptions(QChart.SeriesAnimations)

        # 设置标题
        chart.setTitle("统计结果")

        chart.legend().setVisible(True)

        # 对齐方式
        chart.legend().setAlignment(Qt.AlignBottom)

        # 创建ChartView,它是显示图表的控件
        chartview = QChartView(chart)
        chartview.setRenderHint(QPainter.Antialiasing)

        self.setCentralWidget(chartview)


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

展示结果:

image-20220324143645171

认真挑选的配色好好看哇✪_✪


参考博客:

州的先生:https://zmister.com/archives/218.html

报错一:AttributeError: module ‘pyqtgraph’ has no attribute ‘PlotWidget’,百思不得其解,原因其实是python文件名与模块名相同导致的结果,所以说文件名也不要起的太随便啊,解决方案参考自https://www.cnblogs.com/shinesea/p/8849561.html

报错二:pip._vendor.urllib3.exceptions.ReadTimeoutError,超时错误,本以为是网络不好,其实本质是要换个国内的源,解决方案参考自https://blog.csdn.net/woai8339/article/details/91351707

报错三:Unresolved reference ‘pyqtchart’ ,改为from PyQt5.QtChart import QChartView 参考方案源自于https://zhuanlan.zhihu.com/p/380870186、https://www.cnpython.com/qa/590048,https://blog.csdn.net/dakey2008/article/details/106234667/

报错四:AttributeError: ‘QChartView’ object has no attribute ‘setCentralWidget’,要在widget里使用qchart,不能用setCentralWidget函数,而是先提升为QChartView然后用setchart函数,参考方案源自于https://www.thinbug.com/q/40786760

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值