pyqt5使用echarts做数据可视化,可用pyinstaller打包

更新时间:2023-05-27 12:38:26 阅读: 评论:0

pyqt5使⽤echarts做数据可视化,可⽤pyinstaller打包Echarts简介
后来,有⼤神开发了Pyecharts, 是⼀个⽤于⽣成 Echarts 图表的python类库,也⾮常好⽤。
关于ECharts和Pyecharts的资料⽹上⾮常多,就不细述了,⼤家⾃⼰找吧。
本⽂主要讲Pyqt5和Pyecharts的结合使⽤,Pyqt5和ECharts的结合使⽤。
Pyqt5的数据可视化
vnd在讲ECharts和Pyecharts之前,先说下pyqt5的数据可视化。
pyqt5的数据可视化⼯具很多。有pyqt5⾃带的QtChart可以做,有PyQtGraph可以做,有Plotly可以做,当然还有Pyecharts和Echarts可以做,等等等等。
colleagues
个⼈也刚开始做数据可视化,这⼏个⼯具都摸了⼀下,发现最后还是Pyecharts和Echarts最好⽤,最美观,最⽅便。
⽽且,考虑到pyqt5打包的问题,这⼏个库(除了QtChart),都存在同样的困难。所以,最终我选的就是Pyecharts和Echarts。
Pyecharts和Echarts,为什么我⼀直分开说呢?因为在pyqt5的程序⾥,你可以单单使⽤Pyecharts来实现数据可视化,也可以单单使⽤Echarts来实现数据可视化。
Pyecharts和Echarts的底层原理肯定是⼀样的,但在pyqt5的程序⾥去实现,差别却很⼤。
Pyecharts相对⽅便,因为直接⽤的python语⾔来实现,但有个问题让我⽆法接受,因为⽤pyinstaller竟然⽆法打包Pyecharts! ⽹上关于这个问题的解决⽅案很多,但我尝试了,都没有⽤。我还尝试去修改Pyecharts源码,⼤半天也没实现,终于放弃。
最后,通过⼀位⼤神的⽂章《Python数据可视化:PyQt与ECharts的完美结合⽅案》,发现在pyqt5的程序⾥,直接使⽤echarts,其实也很⽅便,很好⽤,⽽且使⽤pyinstaller打包,⽆任何障碍,因为根本没有不需要加载任何类库模块,就是直接编辑HTML⽂本就⾏了。
下⾯,Pyecharts和Echarts的两种实现代码,我都分享⼀下,希望对⼤家有帮助。
废话不说,上代码。
pyqt5和pyecharts的结合使⽤,但⽆法使⽤pyinstaller打包
【如下代码,完全复制,直接运⾏,即可使⽤】
class MainWindow(QMainWindow):
def __init__(lf, *args, **kwargs):
super().__init__(*args, **kwargs)
javaappletlf.tWindowTitle('My Browr')
lf.showMaximized()
lf.webview = QWebEngineView()
lf.tCentralWidget(lf.webview)
>>>>>>>>>##
<_creat_echarts_html()
def goto_creat_echarts_html(lf):
>>>>>>>>>>#
the_html_content ='''
<!--
THIS EXAMPLE WAS DOWNLOADED FROM /examples/zh/editor.html?c=datat-link -->
<!DOCTYPE html>
<html >
dead and gone
<head>
<meta chart="utf-8">
</head>
<body >
<div id="container" ></div>
<script type="text/javascript" src="/npm/echarts@5/dist/echarts.min.js"></script>
<!-- Uncomment this line if you want to dataTool extension
<script type="text/javascript" src="/npm/echarts@5/dist/extension/dataTool.min.js"></script>        -->
<!-- Uncomment this line if you want to u gl extension
<script type="text/javascript" src="/npm/echarts-gl@2/dist/echarts-gl.min.js"></script>
-->
<!-- Uncomment this line if you want to echarts-stat extension
<script type="text/javascript" src="/npm/echarts-stat@latest/dist/ecStat.min.js"></script>
-->
<!-- Uncomment this line if you want to u map
<script type="text/javascript" src="/npm/echarts@5/map/js/china.js"></script>
<script type="text/javascript" src="/npm/echarts@5/map/js/world.js"></script>
vision-->
<!-- Uncomment the two lines if you want to u bmap extension
<script type="text/javascript" src="api./api?v=2.0&ak=<Your Key Here>"></script>
<script type="text/javascript" src="/npm/echarts@5/dist/extension/bmap.min.js"></script>
-->
<script type="text/javascript">
var dom = ElementById("container");
2012北京高考英语var myChart = echarts.init(dom);
var app = {};
var option;
tTimeout(function () {
option = {
legend: {},
tooltip: {
trigger: 'axis',
showContent: fal
},
datat: {
source: [
['product', '2012', '2013', '2014', '2015', '2016', '2017'],
['Milk Tea', 56.5, 82.1, 88.7, 70.1, 53.4, 85.1],
['Matcha Latte', 51.1, 51.4, 55.1, 53.3, 73.8, 68.7],
['Chee Cocoa', 40.1, 62.2, 69.5, 36.4, 45.2, 32.5],
['Walnut Brownie', 25.2, 37.1, 41.2, 18, 33.9, 49.1]
['Walnut Brownie', 25.2, 37.1, 41.2, 18, 33.9, 49.1]
]
},
xAxis: {type: 'category'},
yAxis: {gridIndex: 0},
po是什么意思
grid: {top: '55%'},
ries: [
{type: 'line', smooth: true, riesLayoutBy: 'row', emphasis: {focus: 'ries'}},            {type: 'line', smooth: true, riesLayoutBy: 'row', emphasis: {focus: 'ries'}},            {type: 'line', smooth: true, riesLayoutBy: 'row', emphasis: {focus: 'ries'}},            {type: 'line', smooth: true, riesLayoutBy: 'row', emphasis: {focus: 'ries'}},            {resident
type: 'pie',
id: 'pie',
betrayalradius: '30%',
center: ['50%', '25%'],
emphasis: {focus: 'data'},
label: {
formatter: '{b}: {@2012} ({d}%)'
},
encode: {
itemName: 'product',
value: '2012',
tooltip: '2012'
}
}
]
};
<('updateAxisPointer', function (event) {
var xAxisInfo = event.axesInfo[0];
if (xAxisInfo) {
var dimension = xAxisInfo.value + 1;
myChart.tOption({
ries: {
id: 'pie',
label: {
formatter: '{b}: {@[' + dimension + ']} ({d}%)'
},
encode: {
value: dimension,
tooltip: dimension
}
}
});
}
});
myChart.tOption(option);
});
if (option && typeof option === 'object') {
myChart.tOption(option);
}
</script>
</body>
</html>
'''
ccni>>>>>>>>###
lf.webview.tHtml(the_html_content)
>>>>>>>>>###
>##程序⼊门
>>>>>>>>>###
if __name__ == "__main__":
app = QApplication(sys.argv)
w = MainWindow()

本文发布于:2023-05-27 12:38:26,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/124515.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:实现   数据   可视化   打包   问题
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图