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_())
展示结果:
认真挑选的配色好好看哇✪_✪
参考博客:
州的先生: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