【Python+Flask+Echarts】可视化练习题 ---- 餐饮数据雷达图




数据集

本篇的数据来源 https://www.kaggle.com/datasets
在这里插入图片描述
该数据集是关于可以向北京居民提供外卖服务的餐馆信息,包括北京的哪个地区,餐​​馆的食品类别,餐馆的品牌,餐馆的地址以及外卖的联系电话,通过一些简单的数据清洗处理绘制简单的图像 ☆ミ(o*・ω・)ノ

返回顶部


案例

① 需求

通过对数据集的分析,提出以下需求:统计北京各类型餐饮的雷达图~
在这里插入图片描述

  • 基本布局如下:

在这里插入图片描述

  • 分析:雷达图主要应用于企业经营状况——收益性、生产性、流动性、安全性和成长性的评价。

返回顶部


② 代码实现

▶ 读取数据集整体浏览

# 读取数据集
data = pd.read_csv("G:\Projects\pycharmeProject-C\Flask\dataset\TakeAway.csv",index_col=0)
print(data.isnull().sum())
print(data.loc[data.duplicated()])
print(data.columns)

大致浏览一下数据集,需求涉及的所在区县分类字段并没有大量的缺失值(空值),并且数据集整体也没有重复记录,基本可以直接使用。
在这里插入图片描述

返回顶部


▶ 统计每个区不同餐饮类型销售表现

# 提取数据
data_use = data[['分类','所在区县']].groupby('分类').agg(count=('所在区县','count'))
print(data.loc[data['分类']=='西餐'])
list = data_use.reset_index().values.tolist()

通过分组聚合统计出所有地区中,不同餐饮类型总量的统计。
在这里插入图片描述

返回顶部


▶ 可视化

Flask

# 可视化
app = Flask(__name__)
@app.route("/")
def index():
    lists = list
    return render_template("TakeAway_04.html",sheet = lists)
if __name__ == '__main__':
    app.run(debug=True)

HTML

<!DOCTYPE html>
<html lang="en" style="height:100%">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body style="height:100%">
<div style="height:100%" id="container"></div>
<script type="text/javascript" src="../static/echarts%20(1).js"></script>
<script type="text/javascript">
    var dom = document.getElementById("container");
    var myChart = echarts.init(dom);

    var data = [{% for item in sheet %}'{{ item.0 }}',{% endfor %}];
    var data1 = [{% for item in sheet %}{{ item.1 }}, {% endfor %}];

    var option = null;
    option = {
        title: {
            text: '餐饮类型收益雷达图'
        },
        legend: {
            show: true,
        },
        tooltip: {
            show: true,
            trigger: 'item'
        },
        radar: [                // 雷达图坐标系组件,只适用于雷达图
            {
                indicator: [    // 雷达图的指示器,用来指定雷达图中的多个变量(维度)
                    {name: data[0], max: 1500},
                    {name: data[1], max: 1500},
                    {name: data[2], max: 1500},
                    {name: data[3], max: 1500},
                    {name: data[4], max: 1500},
                    {name: data[5], max: 1500},
                    {name: data[6], max: 1500}
                ],
                center: ['50%', '50%'],
                radius: '45%',
            }
        ],
        series: [                           
            {
                type: 'radar',
                data: [
                    {
                        name: '餐饮类型收益',
                        value: data1
                    }
                ],
                areaStyle:{},       // 显示填充
                emphasis: {         // 设置高亮
                    lineStyle: {    // 线条样式
                        width: 4    // 线条宽度
                    }
                 },
                label: {            // 显示标签
                    show: true
                 }
            }
        ]
    };
    if (option && typeof option == "object") {
        myChart.setOption(option);
    }
</script>
</body>
</html>

返回顶部


③ 效果展示

在这里插入图片描述

注意:

  • radar组件是雷达图特有的,一般用于设置雷达图的指示器,以及雷达图的显示位置
radar: [                // 雷达图坐标系组件,只适用于雷达图
            {
                indicator: [    // 雷达图的指示器,用来指定雷达图中的多个变量(维度)
                    {name: data[0], max: 1500},
                    {name: data[1], max: 1500},
                    {name: data[2], max: 1500},
                    {name: data[3], max: 1500},
                    {name: data[4], max: 1500},
                    {name: data[5], max: 1500},
                    {name: data[6], max: 1500}
                ],
                center: ['50%', '50%'],
                radius: '45%',
            }
        ],
  • 雷达图的数据格式
data: [
	{
	    name: '餐饮类型收益',
	    value: data1
	}
],

返回顶部


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

骑着蜗牛ひ追导弹'

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

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

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

打赏作者

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

抵扣说明:

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

余额充值