数据集
本篇的数据来源 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
}
],