利用FLASK+ECharts構(gòu)建網(wǎng)站

FLASK簡(jiǎn)介

Flask是Armin ronacher用 Python 語言基于 Werkzeug 工具箱編寫的輕量級(jí)Web開發(fā)框架。其 WSGI 工具箱采用 Werkzeug(路由模塊)熙兔,模板引擎則使用 Jinja2悲伶。這兩個(gè)也是 Flask 框架的核心。網(wǎng)上對(duì)此介紹較多住涉,具體可以參見:http://flask.pocoo.org/麸锉。

Echarts簡(jiǎn)介

ECharts,是一個(gè)純 Javascript 的圖表庫舆声,可在 PC 和移動(dòng)設(shè)備上運(yùn)行花沉,兼容當(dāng)前大部分瀏覽器,底層依賴Canvas 類庫 ZRender媳握,提供可個(gè)性化定制的數(shù)據(jù)可視化圖表碱屁。

ECharts是由數(shù)據(jù)驅(qū)動(dòng),通過數(shù)據(jù)的變化驅(qū)動(dòng)圖表展現(xiàn)的改變蛾找。編程過程就是獲取數(shù)據(jù)娩脾,填入數(shù)據(jù),系統(tǒng)自動(dòng)過度表現(xiàn)數(shù)據(jù)的變化打毛。Echarts提供了折線圖晦雨、柱狀圖架曹、散點(diǎn)圖、餅圖闹瞧、K線圖等組件绑雄,以及用于統(tǒng)計(jì)的盒形圖,用于地理數(shù)據(jù)可視化的地圖奥邮,熱力圖万牺,線圖,用于關(guān)系數(shù)據(jù)可視化的關(guān)系圖洽腺,treemap脚粟,多維數(shù)據(jù)可視化的平行坐標(biāo),還有用于 BI 的漏斗圖蘸朋,儀表盤核无,并且支持圖與圖之間的組合。具體可以參見:http://echarts.baidu.com/index.html藕坯。

FLASK+Echarts構(gòu)建數(shù)據(jù)繪圖網(wǎng)站

STEP1

參考如下代碼团南,構(gòu)建FLASK實(shí)例

from flask import Flask # 導(dǎo)入flask類 
#flask 類的實(shí)例化 
app = Flask(__name__)
 # flask 路由地址 / 
@app.route('/admin',methods=['GET','POST']) 
def admin(): 
    return 'Hello Flask' 

if __name__ == '__main__': 
    app.run() # 運(yùn)行flask
STEP2

在服務(wù)器端,獲取和處理外部數(shù)據(jù)炼彪。以下僅為示例吐根,具體應(yīng)用需要進(jìn)一步優(yōu)化處理。

import csv
import pandas as pd
from io import BytesIO
from urllib import request as url_req


@main.route('/admin',methods=['GET','POST'])
def admin():
    # 僅做示例辐马。從chinamoney網(wǎng)站獲取FR007拷橘、DR007數(shù)據(jù),跨度1年喜爷。
    url='http://www.chinamoney.com.cn/dqs/rest/cm-u-bk-currency/FrrHisExcel?lang=CN&startDate=2017-10-10&endDate=2018-10-09'
    s = url_req.urlopen(url).read()#.decode()  # 1 讀取數(shù)據(jù)串

    dfile=BytesIO(s)

    creader = pd.read_excel(dfile) # dfile
    tmp_creader = creader[:-2]
    tmp_creader = tmp_creader.sort_values('交易日期')

    date_list = tmp_creader['交易日期'].tolist()
    FR007_list = tmp_creader['FR007(%)'].tolist()
    DR007_list = tmp_creader['FDR007(%)'].tolist()
    SPREAD_list = (tmp_creader['FR007(%)'] - tmp_creader['FDR007(%)']) *100.0
    SPREAD_list = np.around(SPREAD_list,0).tolist()

    return render_template('index1.html',date_list=date_list, \
                                        FR007_list = FR007_list, \
                                        DR007_list = DR007_list, \
                                        SPREAD_list = SPREAD_list)

STEP3

在“templates”文件下的index1.html中冗疮,使用javascript制作Echarts圖例。實(shí)現(xiàn)兩圖并列檩帐。

<div id="main2" style="width: 800px;height:600px;margin: 0 auto;"></div>

<script  type="text/javascript">
      
    // 基于準(zhǔn)備好的dom术幔,初始化echarts實(shí)例
    var myChart2 = echarts.init(document.getElementById('main2'));
    
    // 指定圖表的配置項(xiàng)和數(shù)據(jù)
    var option2 = {
        title: {
            text: '貨幣市場(chǎng)利率'
        },
        tooltip: {
            trigger:'axis'
        },
        legend: {
            data:['FR007','DR007','SPREAD']
        },
        xAxis: [{
                    type: 'category',
                    boundaryGap:false,
                    //nameRotate:30,
                    data: {{date_list|safe}} ,
                    gridIndex: 0
                },
                {
                    type: 'category',
                    boundaryGap:false,
                    //nameRotate:30,
                    data: {{date_list|safe}} ,
                    gridIndex:1
                }],
        // 定義雙Y軸
        yAxis: [{
                    type: 'value',
                    name: 'RATE(%)',
                    gridIndex: 0
                },
                {   
                    type: 'value',
                    name: 'FR-DR(bp)',
                    gridIndex: 1
                }],
        grid: [{
                    bottom: '50%'
                }, {
                    top: '60%'
                }],  

        series: [{
            name: 'FR007',
            type: 'line',
            data: {{FR007_list}},
         
        },
        {
            name: 'DR007',
            type: 'line',
            xAxisIndex: 0,
            yAxisIndex: 0,
            data: {{DR007_list}}
        } ,
        {
            name: 'SPREAD',
            type: 'bar',
            xAxisIndex: 1,
            yAxisIndex: 1,
            data: {{SPREAD_list }} 
        } ]
    };
    // 使用剛指定的配置項(xiàng)和數(shù)據(jù)顯示圖表。
    myChart2.setOption(option2);
         
</script>
STEP4

展示效果


貨幣市場(chǎng)利率.JPG

本人購買了云服務(wù)器轿塔,并在上面部署了FLASK+Echarts構(gòu)建的網(wǎng)站特愿,供學(xué)習(xí)交流仲墨。

http://111.231.194.77:8080/main/admin

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末勾缭,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子目养,更是在濱河造成了極大的恐慌俩由,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,639評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件癌蚁,死亡現(xiàn)場(chǎng)離奇詭異幻梯,居然都是意外死亡兜畸,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門碘梢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來咬摇,“玉大人,你說我怎么就攤上這事煞躬「嘏簦” “怎么了?”我有些...
    開封第一講書人閱讀 157,221評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵恩沛,是天一觀的道長(zhǎng)在扰。 經(jīng)常有香客問我,道長(zhǎng)雷客,這世上最難降的妖魔是什么芒珠? 我笑而不...
    開封第一講書人閱讀 56,474評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮搅裙,結(jié)果婚禮上皱卓,老公的妹妹穿的比我還像新娘。我一直安慰自己呈宇,他們只是感情好好爬,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著甥啄,像睡著了一般存炮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蜈漓,一...
    開封第一講書人閱讀 49,816評(píng)論 1 290
  • 那天穆桂,我揣著相機(jī)與錄音,去河邊找鬼融虽。 笑死享完,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的有额。 我是一名探鬼主播般又,決...
    沈念sama閱讀 38,957評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼巍佑!你這毒婦竟也來了茴迁?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,718評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤萤衰,失蹤者是張志新(化名)和其女友劉穎堕义,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體脆栋,經(jīng)...
    沈念sama閱讀 44,176評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡倦卖,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評(píng)論 2 327
  • 正文 我和宋清朗相戀三年洒擦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片怕膛。...
    茶點(diǎn)故事閱讀 38,646評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡熟嫩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出褐捻,到底是詐尸還是另有隱情邦危,我是刑警寧澤,帶...
    沈念sama閱讀 34,322評(píng)論 4 330
  • 正文 年R本政府宣布舍扰,位于F島的核電站倦蚪,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏边苹。R本人自食惡果不足惜陵且,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望个束。 院中可真熱鬧慕购,春花似錦、人聲如沸茬底。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽阱表。三九已至殿如,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間最爬,已是汗流浹背涉馁。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評(píng)論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留爱致,地道東北人烤送。 一個(gè)月前我還...
    沈念sama閱讀 46,358評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像糠悯,于是被迫代替她去往敵國和親帮坚。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評(píng)論 2 348