最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Flask使用Pyecharts在單個(gè)頁面展示多個(gè)圖表的方法

 更新時(shí)間:2019年08月05日 09:22:41   作者:碼蟻編程  
這篇文章主要介紹了Flask使用Pyecharts在單個(gè)頁面展示多個(gè)圖表的方法,在Flask頁面展示echarts,主要有兩種方法,文中給大家介紹的非常詳細(xì),需要的朋友可以參考下

在Flask頁面展示echarts,主要有兩種方法:

方法1、原生echarts方法

自己在前端引入echarts.js文件、自己創(chuàng)建div、自己初始化echarts對象、自己從官網(wǎng)復(fù)制并且配置圖表、自己給echarts對象設(shè)置配置項(xiàng)實(shí)現(xiàn)繪制,這種方法的缺點(diǎn)是配置項(xiàng)都是js的形式比較繁瑣,對于后端開發(fā)人員來說有點(diǎn)過于參與前端js部分的配置開發(fā);

這種方式參照echarts官網(wǎng)的方式,其實(shí)跟flask沒有多大關(guān)系,php/java不同后端語言都一樣,地址

方法2:使用pyecharts

pyecharts主要是做了一件事情,把js的配置option,完全抽離使用Python代碼配置,把js的數(shù)據(jù)結(jié)構(gòu)使用python的代碼結(jié)構(gòu)實(shí)現(xiàn),讓后端開發(fā)只需要配置數(shù)據(jù)就能搞定圖表,真的很像matplotlib,當(dāng)然echarts的強(qiáng)大使得pyecharts更強(qiáng)大;

但是這里真的要吐槽pyecharts,因?yàn)樗喾N輸出圖表結(jié)果的方式,沒有一種是能夠和flask完美配合的:

  • render()方法:默認(rèn)會在當(dāng)前目錄生成 render.html 文件;這是什么鬼,什么場景會用到這種方式,竟然是默認(rèn)的方式?真是怪異;
  • render()方法傳入路徑參數(shù):傳入路徑參數(shù),如 bar.render(“mycharts.html”),這種方法好一點(diǎn),可以設(shè)定文件路徑,但是為毛要輸出一個(gè)HTML,另外一點(diǎn),我做一個(gè)網(wǎng)頁,難道這個(gè)網(wǎng)頁上除了這個(gè)圖表沒有其他數(shù)據(jù)和展示了?只有一個(gè)大大的echarts圖表?
  • render_notebook()方法:這個(gè)方法能用在notebook中,這個(gè)我不吐槽,因?yàn)槿绻褂胣otebook,這個(gè)方法很好用,但是我要用于flask網(wǎng)頁展示;
  • render_embed()方法:來自pyecharts的flask一章中的Markup(c.render_embed()),我估計(jì)作者根本沒寫過flask代碼,不然為毛flask網(wǎng)頁中只能展示一個(gè)echarts圖表,我其他的數(shù)據(jù)展示,怎么用這個(gè)方法設(shè)置?我試圖把render_embed()的結(jié)果傳遞給flask模板,結(jié)果發(fā)現(xiàn)這個(gè)函數(shù)的返回是一個(gè)整個(gè)HTML;
  • chart.dump_options()方法:這個(gè)方法是唯一一個(gè)我覺得能和flask配合不錯(cuò)的方法,能夠?qū)崿F(xiàn)一個(gè)flask網(wǎng)頁中繪制很多個(gè)圖表;然而卻依然需要自己引入echarts.js文件、自己設(shè)定div、自己初始化echarts對象、自己給echarts對象設(shè)置圖表配置,唯一簡化的就是圖表配置是來自于python服務(wù)端;

最后給出使用chart.dump_options()方法給一個(gè)flask網(wǎng)頁配置多個(gè)圖表的方法代碼:

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準(zhǔn)備一個(gè)具備大?。▽捀撸┑腄om -->
  <div id="main" style="width: 600px;height:400px;"></div>
  <script type="text/javascript">
    // 基于準(zhǔn)備好的dom,初始化echarts實(shí)例
    var myChart = echarts.init(document.getElementById('main'));
    // 使用剛指定的配置項(xiàng)和數(shù)據(jù)顯示圖表。
    myChart.setOption({{ bar_data | safe }});
  </script>
 
  <!-- 為ECharts準(zhǔn)備一個(gè)具備大?。▽捀撸┑腄om -->
  <div id="main2" style="width: 600px;height:400px;"></div>
  <script type="text/javascript">
    // 基于準(zhǔn)備好的dom,初始化echarts實(shí)例
    var myChart2 = echarts.init(document.getElementById('main2'));
 
    // 指定圖表的配置項(xiàng)和數(shù)據(jù)
    var option2 = {{ bar_data | safe }};
 
    // 使用剛指定的配置項(xiàng)和數(shù)據(jù)顯示圖表。
    myChart2.setOption(option2);
  </script>
</div>
 
</body>
</html>

展示輸出:

總結(jié)

以上所述是小編給大家介紹的Flask使用Pyecharts在單個(gè)頁面展示多個(gè)圖表的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

最新評論

道真| 呼和浩特市| 章丘市| 泸溪县| 庆安县| 万全县| 疏勒县| 灵石县| 钟山县| 定兴县| 宁乡县| 阿荣旗| 莱阳市| 大新县| 西和县| 武胜县| 罗江县| 青海省| 柯坪县| 邓州市| 绥中县| 肥西县| 西平县| 隆林| 黑河市| 会同县| 济源市| 越西县| 普兰县| 普宁市| 潞西市| 巴中市| 安福县| 报价| 贞丰县| 黄石市| 南涧| 宣汉县| 宁蒗| 连江县| 连南|