Flask使用Pyecharts在单个页面展示多个图表的方法

作者:码蚁编程 时间:2021-10-12 18:16:35 

在Flask页面展示echarts,主要有两种方法:

方法1、原生echarts方法

自己在前端引入echarts.js文件、自己创建div、自己初始化echarts对象、自己从官网复制并且配置图表、自己给echarts对象设置配置项实现绘制,这种方法的缺点是配置项都是js的形式比较繁琐,对于后端开发人员来说有点过于参与前端js部分的配置开发;

这种方式参照echarts官网的方式,其实跟flask没有多大关系,php/java不同后端语言都一样,地址

方法2:使用pyecharts

pyecharts主要是做了一件事情,把js的配置option,完全抽离使用Python代码配置,把js的数据结构使用python的代码结构实现,让后端开发只需要配置数据就能搞定图表,真的很像matplotlib,当然echarts的强大使得pyecharts更强大;

但是这里真的要吐槽pyecharts,因为它包含多种输出图表结果的方式,没有一种是能够和flask完美配合的:

  • render()方法:默认会在当前目录生成 render.html 文件;这是什么鬼,什么场景会用到这种方式,竟然是默认的方式?真是怪异;

  • render()方法传入路径参数:传入路径参数,如 bar.render(“mycharts.html”),这种方法好一点,可以设定文件路径,但是为毛要输出一个HTML,另外一点,我做一个网页,难道这个网页上除了这个图表没有其他数据和展示了?只有一个大大的echarts图表?

  • render_notebook()方法:这个方法能用在notebook中,这个我不吐槽,因为如果使用notebook,这个方法很好用,但是我要用于flask网页展示;

  • render_embed()方法:来自pyecharts的flask一章中的Markup(c.render_embed()),我估计作者根本没写过flask代码,不然为毛flask网页中只能展示一个echarts图表,我其他的数据展示,怎么用这个方法设置?我试图把render_embed()的结果传递给flask模板,结果发现这个函数的返回是一个整个HTML;

  • chart.dump_options()方法:这个方法是唯一一个我觉得能和flask配合不错的方法,能够实现一个flask网页中绘制很多个图表;然而却依然需要自己引入echarts.js文件、自己设定div、自己初始化echarts对象、自己给echarts对象设置图表配置,唯一简化的就是图表配置是来自于python服务端;

最后给出使用chart.dump_options()方法给一个flask网页配置多个图表的方法代码:

Python代码:


@app.route("/show_pyecharts")
def show_pyecharts():
 bar = (
   Bar()
     .add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
     .add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
 )
 # print(bar.render_embed())
 # print(bar.dump_options())
 return render_template(
   "show_pyecharts.html",
   bar_data=bar.dump_options()
 )

Flask模板代码:


<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
 <script src="/static/echarts.min.js"></script>
</head>
<body>
<h1>柱状图</h1>
<div>
 <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
 <div id="main" style="width: 600px;height:400px;"></div>
 <script type="text/javascript">
   // 基于准备好的dom,初始化echarts实例
   var myChart = echarts.init(document.getElementById('main'));
   // 使用刚指定的配置项和数据显示图表。
   myChart.setOption({{ bar_data | safe }});
 </script>

<!-- 为ECharts准备一个具备大小(宽高)的Dom -->
 <div id="main2" style="width: 600px;height:400px;"></div>
 <script type="text/javascript">
   // 基于准备好的dom,初始化echarts实例
   var myChart2 = echarts.init(document.getElementById('main2'));

// 指定图表的配置项和数据
   var option2 = {{ bar_data | safe }};

// 使用刚指定的配置项和数据显示图表。
   myChart2.setOption(option2);
 </script>
</div>

</body>
</html>

展示输出:

Flask使用Pyecharts在单个页面展示多个图表的方法

总结

以上所述是小编给大家介绍的Flask使用Pyecharts在单个页面展示多个图表的方法,网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

来源:http://www.crazyant.net/2419.html?utm_source=tuicool&utm_medium=referral

标签:Flask,Pyecharts,图表
0
投稿

猜你喜欢

  • 基于Django OneToOneField和ForeignKey的区别详解

    2021-10-17 11:01:21
  • 常用正则表达式例子及评注说明

    2008-01-03 13:04:00
  • Python 统计数据集标签的类别及数目操作

    2023-04-08 12:04:09
  • 网站LOGO设计规范的思考--2.网络LOGO的设计

    2007-10-14 11:02:00
  • iPhone应用设计趋势[译]

    2009-11-27 19:52:00
  • python 返回一个列表中第二大的数方法

    2022-06-01 00:17:47
  • Python数据分析之pandas比较操作

    2021-11-23 05:14:22
  • 教你轻松学会SQL Server记录轮班的技巧

    2009-02-19 17:38:00
  • Bootstrap实现渐变顶部固定自适应导航栏

    2023-08-23 00:52:40
  • Python中字典(dict)和列表(list)的排序方法实例

    2021-11-30 11:15:18
  • python3发送邮件需要经过代理服务器的示例代码

    2023-07-27 01:00:44
  • 交互设计模式(三)-Tagging(标签)

    2009-10-19 20:46:00
  • Python模拟登录网易云音乐并自动签到

    2023-05-28 03:10:05
  • http通过StreamingHttpResponse完成连续的数据传输长链接方式

    2023-06-04 03:33:45
  • python实战游戏之史上最难最虐的扫雷游戏没有之一

    2021-03-08 04:43:03
  • JS打开新窗口的2种方式

    2023-07-07 02:44:49
  • 几个图片按比例缩放的代码

    2008-02-13 08:51:00
  • 基于鼠标点击跟踪的用户点击行为分析

    2008-04-24 19:22:00
  • 分享个asp文件缓存代码,使程序从缓存读数据

    2011-03-09 19:47:00
  • AspJpeg组件:介绍、注册、高级使用方法

    2010-01-25 12:42:00
  • asp之家 网络编程 m.aspxhome.com