赞
踩
想学Python的小伙伴可以关注小编的公众号【Python日志】
有很多的资源可以白嫖的哈,不定时会更新一下Python的小知识的哈!!
需要源码的小伙伴可以在公众号回复数据图表生成器
Python源码、问题解答学习交流群:773162165
需求
手动配置X轴、Y轴、图表标题等参数自动通过Pyecharts模块生成可视化的html数据图表,并将浏览器图表展示到UI界面上。
制作出图表后的效果展示如下:
另外,生成后的图表结果会使用 html 的形式保存下来。
导入 UI 界面相关的 PyQt5 第三方模块库。
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
若是使用PyQt5的版本是5.10.1以上,则需要单独安装一下PyQtWebEngine,说是QtWebEngineWidgets模块被新版本移除了。执行一下下面安装单独安装一下PyQtWebEngine就OK了。
pip install PyQtWebEngine
导入 Web 浏览器引擎的支持。
from PyQt5.QtWebEngineWidgets import QWebEngineView
应用其他的相关模块导入。
import sys # 应用操作库
import os
from datetime import datetime
from pyecharts.charts import * # 图表设置展示库
from pyecharts import options # 图标参数配置库
主要的代码块实现过程如下:
class DataVisual(QWidget): def __init__(self): super(DataVisual, self).__init__() self.cwd = os.getcwd() # 获取当前路径 self.init_ui() def init_ui(self): self.setWindowTitle('数据图表生成器') self.setWindowIcon(QIcon('数据.ico')) self.brower = QWebEngineView() self.brower.setMinimumWidth(800) self.brower.setMaximumWidth(1400) self.brower.setUrl(QUrl('')) form = QFormLayout() '''折线图/柱状图控件开始''' self.selected_label = QLabel() self.selected_label.setText('设置图表类型:') self.selected_cobox = QComboBox() self.selected_cobox.addItems(['Bar(柱状图/条形图)', 'Line(折线/面积图)', 'Pie(饼图)']) self.selected_cobox.currentIndexChanged.connect(self.selected_cobox_change) self.title_label = QLabel() self.title_label.setText('设置标题:') self.title_text = QLineEdit() self.title_text.setPlaceholderText('请输入图表标题(最大长度10)') self.title_text.setMaxLength(10) self.subtitle_label = QLabel() self.subtitle_label.setText('设置副标题:') self.subtitle_text = QLineEdit() self.subtitle_text.setPlaceholderText('请输入图表副标题(最大长度20)') self.title_text.setMaxLength(20) self.data_label_x = QLabel() self.data_label_x.setText('设置X轴数据:') self.data_text_x = QLineEdit() self.data_text_x.setPlaceholderText("湖北, 四川, 重庆, 河北, 云南") self.data_text_x.setMaxLength(1000) self.data_label_y1_name = QLabel() self.data_label_y1_name.setText('设置Y1轴标签:') self.data_text_y1_name = QLineEdit() self.data_text_y1_name.setPlaceholderText("请输入Y1轴标签") self.data_label_y1 = QLabel() self.data_label_y1.setText('设置Y1轴数据:') self.data_text_y1 = QLineEdit() self.data_text_y1.setPlaceholderText("34500, 3000, 3218, 2890, 50023") self.data_text_y1.setMaxLength(1000) self.data_label_y2_name = QLabel
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。