python—flask—echarts数据可视化简单练习

本文展示了如何利用Python的Flask框架和Echarts库创建一个数据可视化网页,通过读取CSV数据,绘制饼图展示电影累计票房。代码包括Flask应用设置、数据处理及Echarts配置,最终生成一个展示票房数据的动态饼图。
摘要由CSDN通过智能技术生成

B站学习记录:
echarts官网:https://echarts.apache.org/examples/zh/index.html
官网上有很多可视化例子:
在这里插入图片描述

py

"""
2022年
 
CSDN:抄代码抄错的小牛马
"""
from flask import Flask, render_template
import pandas as pd

app = Flask(__name__)
app.config.from_object(__name__)
app.config["JSON_AS_ASCII"] = False


@app.route("/")
def show():
    data = pd.read_csv("1.csv")
    # print(data)
    data = data.rename(columns={"电影名称":"name","累计票房(万)":"value"})
    # data = data.rename(columns={"电影名称": "name", '累计票房(万)': "value", '场均人次': "value"})

    data = data.to_dict(orient="records")
    print(data)

    return render_template("show.html",data=data)


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

HTML

 <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>展示</title>
    <!-- 引入 ECharts 文件 -->
    <script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.2/echarts.min.js"></script>
</head>
<body>
    <center>
    <div id="main" style="width:800px; height:600px; background:pink " ></div>
    <script type="text/javascript" >
        var myChart = echarts.init(document.getElementById('main'));
        var option = {
              backgroundColor: '#2c343c',
              title: {
                text: '艺恩票房',
                left: 'center',
                top: 20,
                textStyle: {
                  color: '#ccc'
                }
              },
              tooltip: {
                trigger: 'item'
              },
              visualMap: {
                show: false,
                min: 1,
                max: 60000000000,
                inRange: {
                  colorLightness: [0, 1]
                }
              },
              series: [
                {
                  name: '累计票房(万)',
                  type: 'pie',
                  radius: '55%',
                  center: ['50%', '50%'],
                  data:{{data|tojson}}.sort(function (a, b) {
                    return a.value - b.value;
                  }),
                  roseType: 'radius',
                  label: {
                    color: 'rgba(255, 255, 255, 0.3)'
                  },
                  labelLine: {
                    lineStyle: {
                      color: 'rgba(255, 255, 255, 0.3)'
                    },
                    smooth: 0.2,
                    length: 10,
                    length2: 20
                  },
                  itemStyle: {
                    color: '#c23531',
                    shadowBlur: 200,
                    shadowColor: 'rgba(0, 0, 0, 0.5)'
                  },
                  animationType: 'scale',
                  animationEasing: 'elasticOut',
                  animationDelay: function (idx) {
                    return Math.random() * 200;
                  }
                }
              ]
            };
            myChart.setOption(option);


    </script>
    </center>
</body>
</html>

最终效果:
在这里插入图片描述

拜~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

抄代码抄错的小牛马

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值