首页 股吧 正文

plotly k线(600759股吧plotly k线 图 日期中断)

2023-10-21 18:10:35 10
神七论市
导言关于Python下桌面软件的开发已经有了许多数据可视化的库,如Matplotlib、Seaborn、PyQtgraph、Plotly等等,但这些库更适合于后端程序员的软件开发。

实际上在前端网页开发方面,也有许多许多美丽的界面规划计划,也包括许多许多数据可视化方面的强壮控件。根据此,咱们是否能够考虑这样一种桌面软件的开发架构计划,行将前端技能融入到Python开发中,结合PyQt界面库,将前端网页界面无缝集成到PyQt的窗口中,大部分的功用依托于前端技能来完成,而PyQt仅作少部分辅佐的比如窗口生成、事情处理等作业,根据这样的架构进行桌面软件的开发,既能充分运用Python的快速开发长处,又能运用老练的前端技能,应该是一个比较好的软件开发计划。

下面经过一个简略的比如来介绍这种计划的可行性,该例运用Python3言语,运用PyQ5界面库建立界面窗口结构,然后在窗口中嵌入ECharts库进行数据的可视化。

这儿略微简略介绍下ECharts库,它是一个运用 JavaScript 完成的开源可视化库,可流通的运转在 PC 和移动设备上,兼容当时绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依靠矢量图形库 ZRender,供给直观,交互丰厚,可高度个性化定制的数据可视化图表。它具有丰厚的可视化类型, 供给了惯例的折线图、柱状图、散点图、饼图、K线图,用于计算的盒形图,用于地舆数据可视化的地图、热力求、线图,用于联系数据可视化的联系图、treemap、旭日图,多维数据可视化的平行坐标,还有用于 BI 的漏斗图,仪表盘,而且支撑图与图之间的混搭等等。总归,ECharts库是一具十分强壮的数据可视化库。

实例运转界面该例运转界面状况如下图所示:

运用PyQt5规划软件界面结构,主界面分为上下两部分,上面是一个Widget窗口控件,在里面嵌入网页经过一个柱状图显现某两个公司产品的全年季度销量趋势比照状况,下面加了两个按钮控件,别离操控启停数据的实时更新(运用仿真数据,仅为演示实时绘图改写功用)及铲除作业。

该比如的文件组成结构如下图所示:

整个工程放在webDemo文件夹中,其间,Main.py、Main.ico、Main.ui别离为主程序、应用程序图标及规划师规划的界面文件,Ui_Main.py为将Main.ui转换为Python后的文件,html文件夹存放了网页相关的文件。

大体规划思路如下:

前端文件预备:下载ECharts的库文件,这儿运用的是echarts.min.js,编写柱状图网页文件bar.html;主界面规划:用规划师规划程序主界面文件Main.ui,并将其转换为对应的.py文件,即Ui_Main.py;主程序功用完成:编写主Python程序Main.py,建立界面,嵌入网页并完成槽函数功用。前端文件预备在官网下载库文件echarts.min.js后,剩余的作业是写bar.html文件,其首要内容包括:引进ECharts界面库、界说显现区域巨细、界说柱状图款式等等,其代码内容如下,比较好了解,添加了注释:

<!DOCTYPE html>\n<html>\n <head>\n <meta charset="utf-8">\n <!-- 引进 echarts.min.js -->\n <script src="echarts.min.js"></script>\n <style type="text/css">\n #main {height:100%; width:100%; position:absolute;}\n body {margin:0px; padding:0px; overflow:hidden;}\n </style>\n </head>\n <body>\n <!-- 为ECharts预备一个具有巨细(宽高)的Dom -->\n <div id="main"></div>\n <script type="text/javascript">\n // 根据预备好的dom,初始化echarts实例\n var myChart = echarts.init(document.getElementById('main'));\n\n option = {\n title: {\n text: '全年季度销量趋势比照图',\n left: 'center'\n },\n tooltip: {\n show: true\n },\n legend: {\n data: ['公司A', '公司B'],\n top: '8%',\n right: '10%'\n },\n xAxis: {\n type: 'category',\n data: ['第1季度', '第2季度', '第3季度', '第4季度'],\n name: '季度 / x',\n nameLocation: 'center',\n nameGap: 30\n },\n yAxis: {\n min: 0,\n max: 100,\n type: 'value',\n name: '销量 / y',\n nameLocation: 'center',\n nameGap: 40\n },\n series: [\n {\n name: '公司A',\n type: 'bar',\n data: [0, 0, 0, 0]\n },\n {\n name: '公司B',\n type: 'bar',\n data: [0, 0, 0, 0]\n }\n ]\n };\n myChart.setOption(option);\n\n function setValue(val1, val2){\n option.series[0].data = val1\n option.series[1].data = val2\n myChart.setOption(option)\n }\n\n window.onresize = myChart.resize ;\n\n </script>\n </body>\n</html>

留意,在上面代码中,界说了一个setValue函数,其意图是更新两条曲线的数据内容,其数据可由Python言语来调用时传入。

主界面规划运用规划师规划的主界面Main.ui如下图所示,包括一个QWidget控件及两个按钮控件:

该界面中涉及到的一切界面目标元素如下图所示:

主界面规划完成后,即可用PyUIC东西将其转换为Py文件Ui_Main.py。

主程序功用完成在主程序Main.py文件中,依托于规划师生成的界面文件,创立一个QWidget类用作主窗口的显现,其代码如下:

首要功用是界说主界面、加载网页文件及完成两个槽函数功用。经过“开端更新数据”按钮来发动或中止定时器函数,完成数据的实时改写,经过“清空数据”按钮来铲除柱状图数据。

首要代码解说如下:

第24-37行,运用QWebEngineView类界说一个webView视图,运用load函数加载网页文件bar.html,然后将其参加到上面的窗口布局中,留意,这儿仅程序初始化时加载了一次。

第39-42行,在定时器函数中改写柱状图数据,首要是运用了webView页上的runJavaScript函数来运转html文件中的setValue函数,并将发生的两条随机数据传递到该函数中。

第44-52行,操控柱状图数据改写的发动/中止动作。

第54-56行,经过传入全0数组,清空柱状图数据。

终究,整个主程序代码如下图所示:

总结至此,整个工程文件就悉数完成了,运转程序后,就会呈现开端的界面。经过这个比如能够看出,在Python言语中,结合PyQt库完全能够经过前端技能完成数据的可视化乃至界面的建立,这对前端程序员开发桌面软件来说,无疑是一种比较好的计划。本文由编码那些事原创,请重视+转发+保藏+点赞,带你一同长常识!

收藏
分享
海报
10