一个简单的flask、echarts可视化实例

进阶版本见博客:从0开始搭建Flask-Echarts数据可视化项目



一、项目结构

在这里插入图片描述



二、代码

1.app.py

# -*- coding:utf-8 -*-
# Created by ZhaoWen on 2020/9/28

from flask import Flask
from flask import render_template
from flask_sqlalchemy import SQLAlchemy


app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///game.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
db = SQLAlchemy(app)


class Tbl_Video_Game_Sales(db.Model):
    __tablename__ = 't_video_game_sales'
    Rank = db.Column(db.String(255),primary_key=True)   #销售排名
    Name = db.Column(db.String(255))     #游戏名称
    Platform = db.Column(db.String(255))    #该游戏发布平台
    Year = db.Column(db.Integer)    #发布年份(1980-2016)
    Genre = db.Column(db.String(255))   #游戏类型
    Publisher = db.Column(db.String(255))    #出版公司
    NA_Sales = db.Column(db.DECIMAL(255,2))  #北美区域销量(以百万为单位计数)
    EU_Sales = db.Column(db.DECIMAL(255,2))  #欧美区域销量(以百位为单位计数)
    JP_Sales = db.Column(db.DECIMAL(255,2))  #日本区域销量(以百位为单位计数)
    Other_Sales = db.Column(db.DECIMAL(255,2))   #其他国家销量(以百位为单位计数)
    Global_Sales = db.Column(db.DECIMAL(255,2))   #全球销量(以百位为单位计数)


@app.route('/line')
def line_show():
    db.create_all()
    db.session.commit()

    game = dict()
    for y in range(2009,2016,1):
        game[y] = Tbl_Video_Game_Sales.query.filter(Tbl_Video_Game_Sales.Year == y).count()
    return render_template('line-chart.html',game = game)


if __name__ == '__main__':
    app.run(debug=True)

2.templates/line-chart.html

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>demo</title>
        <script src="/static/echarts.min.js"></script>
        <style>
            #main{
                width: 1000px;
                height: 500px;
                margin-left: auto;
                margin-right: auto;
                margin-top:20px;
            }

            #content-id{
                text-align: center;
                font-size: 30px;
                padding-top: 20px;
            }
        </style>
    </head>
    <body>
        <div id="main"></div>
    </body>
    <script>
        var line_chart = echarts.init(document.getElementById('main'));
        var option = {
            title:{
                text:'2010年~2015年发行游戏数量增长趋势',
                subtext:'单位:个 (数据纯属虚构)'
            },
            tooltip:{},
            xAxis:{
                type:'category',
                data:[{%for g in game%}'{{ g }}',{% endfor %}]
            },
            yAxis:{},
            series:[{
                type:'line',
                data:[{% for g in game%}{{game[g]}},{% endfor %}]
            }]
        };
        line_chart.setOption(option);
    </script>
</html>


三、效果展示

在这里插入图片描述



上述代码以及数据我已经打包传到csdn上了,有需要自行下载:flask、echarts可视化小实例

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值