首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >图表神器:pyecharts/qtpy的使用

图表神器:pyecharts/qtpy的使用

作者头像
企鹅号小编
发布2018-01-08 17:23:34
5.6K0
发布2018-01-08 17:23:34
举报
文章被收录于专栏:编程编程

echarts是百度开源的一款js的图表库,界面很酷炫,使用也不复杂。但还是不够pythonic,对吧。

pyecharts来了。

先看一个图,还不错对吧:

django里是可以直接支持的,

importmath

fromdjango.httpimportHttpResponse

fromdjango.templateimportloader

frompyechartsimportLine3D

frompyecharts.constantsimportDEFAULT_HOST

defindex(request):

template = loader.get_template('myfirstvis/pyecharts.html')

l3d = line3d()

context =dict(

myechart=l3d.render_embed(),

host=DEFAULT_HOST,

script_list=l3d.get_js_dependencies()

)

returnHttpResponse(template.render(context, request))

defline3d():

_data = []

fortinrange(,25000):

_t = t /1000

x = (1+0.25* math.cos(75* _t)) * math.cos(_t)

y = (1+0.25* math.cos(75* _t)) * math.sin(_t)

z = _t +2.0* math.sin(75* _t)

_data.append([x, y, z])

range_color = [

'#313695','#4575b4','#74add1','#abd9e9','#e0f3f8','#ffffbf',

'#fee090','#fdae61','#f46d43','#d73027','#a50026']

line3d = Line3D("3D line plot demo",width=1200,height=600)

line3d.add("", _data,is_visualmap=True,

visual_range_color=range_color,visual_range=[,30],

is_grid3D_rotate=True,grid3D_rotate_speed=180)

returnline3d

html里的模板如下,包括3个变量即可:

Proudly presented by PycCharts{% for jsfile_name in script_list %} {% endfor %} {}

有没有把问题复杂化,仁者见仁,相信后端的开发者会喜欢。

这原本就是html/js的模式,在网页里使用不算难事,但可否在GUI的程序里使用呢,如本文开头的图示就是pyqt里的调用。很自然想到是pyqt里嵌入图片,那就变成静态的了,echarts最大的优点是,它是动态图,你可以改变它的轴,时间,还是显示样式等。否则使用matplotlib就好了。

我们可以把pyecharts生成的html使用webview控件来呈现。

这里再引入一个库QtPy,

Provides an abstraction layer on top of the various Qt bindings (PyQt5, PyQt4 and PySide) and additional custom QWidgets.

它构建在pyqt5/pyside之上,还有一些自定义的控件。这个也不需要额外安装,anaconda里本来就有。

Qt慢慢淘汰了古老的Webkit ,用WebEngine框架代替掉了。Webengine与webkit不同的是它是基于Chromium引擎的,也就是集成谷歌的引擎。所以这里我们使用WebEngine。

如果说在网页里使用echarts也很容易的话,那要在gui的程序里使用,再自己去写js,然后一个个去拼成网页,那工作量大,且不好维护,那pyecharts就是一个神器了。

明天用真实的数据去展现一下。

关于作者:魏佳斌,互联网产品/技术总监,北京大学光华管理学院(MBA),特许金融分析师(CFA),资深产品经理/码农。偏爱python,深度关注互联网趋势,人工智能,AI金融量化。致力于使用最前沿的认知技术去理解这个复杂的世界。

本文来自企鹅号 - AI量化实验室媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文来自企鹅号 - AI量化实验室媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档