用户:可爱的小番茄查看:1 回复:1 评论:1 创建时间:2020-04-25T21:04:56
【作品展示】

【作品介绍】
需要下载pyecharts 0.5.11哦!否则程序会报错哦!
【作品源代码】
# 首先要下载pyecharts 0.5.11,否则程序会报错哦!
import os
import sys
from PySide2.QtWidgets import *
from PySide2.QtCore import QUrl
from PySide2.QtWebEngineWidgets import QWebEngineView
import json
from pyecharts import Bar, Line, Pie
from PySide2.QtCore import (QCoreApplication, QMetaObject, QObject, QPoint,QRect, QSize, QUrl, Qt)
from PySide2.QtGui import (QBrush, QColor, QConicalGradient, QCursor, QFont,QFontDatabase, QIcon, QLinearGradient, QPalette, QPainter, QPixmap,QRadialGradient)
class Ui_Charts(object):
def setupUi(self, charts):
if charts.objectName():
charts.setObjectName(u"charts")
charts.resize(797, 598)
font = QFont()
font.setPointSize(15)
charts.setFont(font)
self.centralwidget = QWidget(charts)
self.centralwidget.setObjectName(u"centralwidget")
self.lb_title = QLabel(self.centralwidget)
self.lb_title.setObjectName(u"lb_title")
self.lb_title.setGeometry(QRect(320, 30, 131, 41))
font1 = QFont()
font1.setFamily(u"Arial")
font1.setPointSize(16)
font1.setBold(True)
font1.setWeight(75)
self.lb_title.setFont(font1)
self.lb_title.setMouseTracking(False)
self.lb_title.setTabletTracking(False)
self.verticalLayoutWidget = QWidget(self.centralwidget)
self.verticalLayoutWidget.setObjectName(u"verticalLayoutWidget")
self.verticalLayoutWidget.setGeometry(QRect(40, 160, 711, 391))
self.vl_chart = QVBoxLayout(self.verticalLayoutWidget)
self.vl_chart.setObjectName(u"vl_chart")
self.vl_chart.setContentsMargins(0, 0, 0, 0)
self.widget = QWidget(self.centralwidget)
self.widget.setObjectName(u"widget")
self.widget.setGeometry(QRect(40, 110, 711, 31))
self.horizontalLayout = QHBoxLayout(self.widget)
self.horizontalLayout.setObjectName(u"horizontalLayout")
self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
self.pbtn_data = QPushButton(self.widget)
self.pbtn_data.setObjectName(u"pbtn_data")
font2 = QFont()
font2.setPointSize(9)
self.pbtn_data.setFont(font2)
self.horizontalLayout.addWidget(self.pbtn_data)
self.cb_chart_list = QComboBox(self.widget)
self.cb_chart_list.addItem("")
self.cb_chart_list.addItem("")
self.cb_chart_list.addItem("")
self.cb_chart_list.setObjectName(u"cb_chart_list")
self.cb_chart_list.setFont(font2)
self.horizontalLayout.addWidget(self.cb_chart_list)
self.horizontalSpacer = QSpacerItem(
40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
self.horizontalLayout.addItem(self.horizontalSpacer)
self.lb_info = QLabel(self.widget)
self.lb_info.setObjectName(u"lb_info")
self.horizontalLayout.addWidget(self.lb_info)
charts.setCentralWidget(self.centralwidget)
self.retranslateUi(charts)
QMetaObject.connectSlotsByName(charts)
# setupUi
def retranslateUi(self, charts):
charts.setWindowTitle(QCoreApplication.translate(
"charts", u"\u56fe\u8868\u5206\u6790\u8f6f\u4ef6", None))
self.lb_title.setText(QCoreApplication.translate(
"charts", u"\u6211\u7684\u6570\u636e\u56fe\u8868", None))
self.pbtn_data.setText(QCoreApplication.translate(
"charts", u"\u9009\u62e9\u6587\u4ef6", None))
self.cb_chart_list.setItemText(0, QCoreApplication.translate(
"charts", u"\u6298\u7ebf\u56fe", None))
self.cb_chart_list.setItemText(1, QCoreApplication.translate(
"charts", u"\u67f1\u7喵6\u56fe", None))
self.cb_chart_list.setItemText(2, QCoreApplication.translate(
"charts", u"\u997c\u7喵6\u56fe", None))
self.lb_info.setText(QCoreApplication.translate(
"charts", u"\u8bf7\u5148\u9009\u62e9\u6587\u4ef6\u2026\u2026", None))
# retranslateUi
class MyCharts(QMainWindow, Ui_Charts):
def __init__(self):
super().__init__()
self.setupUi(self)
self.init_set()
self.show()
self.pbtn_data.clicked.connect(self.select_file)
self.cb_chart_list.currentIndexChanged.connect(self.plot)
def init_set(self):
self.broser = QWebEngineView()
self.vl_chart.addWidget(self.broser)
def select_file(self):
self.data_file, _ = QFileDialog.getOpenFileName(
caption='选择数据文件', filter='(*.json)')
self.lb_info.setText(self.data_file)
self.plot()
def plot(self):
index_text = self.cb_chart_list.currentText()
if self.data_file:
plots(self.data_file, index_text)
self.broser.load(QUrl.fromLocalFile(
os.path.realpath('render.html')))
def plots(data_file, type):
with open(data_file) as f:
data = json.load(f)
attr = data['attr']
value = data['value']
if type == '柱状图':
chart = Bar('柱状图数据')
elif type == '折线图':
chart = Line('折线图数据')
elif type == '饼状图':
chart = Pie("饼状图数据")
chart.add(type, attr, value)
chart.render()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MyCharts()
sys.exit(app.exec_())
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn