基于python3.6+pyecharts+flask实现数据可视化
pyecharts这个库啊……这个库业障重,建议谨慎使用(不是
裸连pyecharts的官网持续loading,于是直接pip装完,也不需要额外配置其他的内容
官网教程看的不清不楚,所有例程都是用render渲染的,你一个网页只用一个图表的吗?不知道是什么样的需求会产生这种代码,而查到的大部分代码最终发现是对python2.7支持的,新版V1和旧版完全不兼容,经过一番折腾,总算搞定了最小系统,分享一下以便后人乘凉
routes.py(flask的部分不细说,仅展示核心部分,使用set传参,保证简洁性,需要同时展现更多的图表,仅需对page映射的list进行append即可
1 from pyecharts.charts import Line 2 from pyecharts import options as opts
1 c = ( 2 Line() 3 .add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]) 4 .add_yaxis("商家A", [5, 20, 36, 10, 75, 90]) 5 .add_yaxis("商家B", [15, 25, 16, 55, 48, 8]) 6 .set_global_opts(title_opts=opts.TitleOpts(title="Bar-基本示例", subtitle="我是副标题")) 7 ) 8 data.update({ 9 "page": [["c1", c.dump_options()], ["c2", c.dump_options()]] 10 }) 11 return render_template('your.html', data=data)
your.html(使用了bootstrap,上下分别为正文和js)
1 {% for i in data.page %} 2 <div id="{{ i[0] }}" style="width: 1000px; height: 400px"></div> 3 {% endfor %}
1 <script src="{{ url_for('static', filename='vendors/echarts/dist/echarts.min.js') }}"></script> 2 {% for i in data.page %} 3 <script type="text/javascript"> 4 var myChart = echarts.init(document.getElementById("{{ i[0] }}")); 5 myChart.setOption({{ i[1] | safe }}); 6 </script> 7 {% endfor %}
js中for循环必须在引入echarts.js之后,否则会报错找不到对象(不过放在后面也找不到对象
感谢:(这位dalao吐槽的非常犀利)
Flask使用Pyecharts在单个页面展示多个图表 http://www.crazyant.net/2419.html?utm_source=tuicool&utm_medium=referral