用DataV Atlas探索杭州美食

简介: 本指南介绍如何使用DataV Atlas进行数据可视化。首先,通过链接领取试用额度并登录产品控制台。控制台包含示例数据,如“hangzhou_poi_sample”和“hangzhou_districts”。通过简单几步创建地理分析项目,可对数据进行样式配置。示例分析包括各区美食偏好、高评分火锅店定位及杭州美食分布情况,通过SQL查询和可视化技术,帮助理解数据背后的有趣现象。更改底图样式和添加SQL数据源进一步增强分析效果。

登录产品控制台
1、领取DataV Atlas试用额度 https://free.aliyun.com/?searchKey=atlas;
2、打开产品控制台地址:https://atlas.datav.aliyun.com/,使用阿里云账号登录即可
查看数据中心样例数据
控制台登录默认进入的就是数据中心页,Atlas 数据中心提供了两个默认数据连接:
• Atlas 演示数据库:存放 Atlas 官方提供的一些演示案例数据,会不定期更新进一些数据集供用户试用
• 体验空间:免费提供 100MB 空间供用户上传自有的数据来体验产品功能
{F713E438-A978-42DE-9839-9048B39D3701}.png
本次实验数据两张表存放于 Atlas 演示数据库的 public 文件夹下:
• "public"."hangzhou_poi_sample":杭州餐饮娱乐店样例数据,包括分类、地理位置和消费者评价等
• "public"."hangzhou_districts":杭州市行政区划数据,包括行政区划名称、行政区划代码、行政区划级别、行政区划中心点经纬度、行政区划边界等
在列表中点击表名称即可预览该数据,支持地图模式以及数据表模式预览,支持查看表记录数量以及存储占用
{3CB2B00F-2D43-4635-BCDF-5E89E3297032}.png
{95FD59B3-C52D-4AEC-BF27-4BA6B3804CDF}.png
{B135D14B-74A8-48C6-9A05-34BD12AD3459}.png
创建可视化项目

  1. 下面我们基于这两份样例数据开始我们的杭州美食探索之旅,点击顶部菜单从数据中心切换到 我的项目 ,点击 新建地理分析项目
    {2D33946E-E729-4EA1-B8FF-C17BEC83A324}.png
    2.默认会弹出添加数据对话框,选择 Atlas 演示数据库 下 "public"."hangzhou_poi_sample" 表添加到项目
    {544E98A2-37F8-4954-B870-F30F2977C5FF}.png
    3.添加至项目后会默认创建出一个可视化图层,点击左侧图层列表可以对图层进行样式配置
    {CEBCF843-8698-447D-8EF4-3A70D6D1C772}.png
    下面我们利用 SQL 来对这份样例数据进行一些好玩有趣的分析:
    1、杭州各个区的吃货都爱吃些啥?
    接下来为大家演示一下如何通过将行政区数据表与美食兴趣点数据表进行关联分析
    新建一个 SQL 数据源,添加如下 SQL,这段 SQL 通过聚合出每个区数量最多的二级分类类别作为该区域的标签,并排除小吃快餐、水果生鲜、面馆以及本帮江浙菜
    WITH CategoryCounts AS (SELECT b.name AS 区域名称,
                            p.二级分类        AS 二级分类,
                            COUNT(p.二级分类) AS 类型数量,
                            b.geom            as geom
                     FROM public.hangzhou_districts b
                              JOIN public.hangzhou_poi_sample p ON ST_Contains(b.geom, p.geom)
                     WHERE 一级分类 = '美食'
                       AND 二级分类 not in ('小吃快餐', '水果生鲜', '面馆', '本帮江浙菜')
                     GROUP BY b.name, p.二级分类, b.geom),
    
    RankedCategories AS (SELECT 区域名称,
                              二级分类,
                              类型数量,
                              row_number() OVER (PARTITION BY 区域名称 ORDER BY 类型数量 DESC) as rank,
                              geom
                       FROM CategoryCounts)
    
    SELECT 区域名称,
    二级分类,
    类型数量,
    区域名称 || '
    ' || '美食标签:' || 二级分类 as 标注字段,
    geom
    
    FROM RankedCategories
    WHERE rank = 1;
    {56182727-C047-40DB-B977-B456494E89B8}.png
    通过二级分类标签的类别进行着色还是不够直观,我们调整一下 SQL 语句,调整输出的CategoryCounts 中的 b.geom(行政区的几何字段) 字段为ST_PointOnSurface(b.geom)得到行政区内的标注点
    WITH CategoryCounts AS (SELECT b.name AS 区域名称,
                            p.二级分类        AS 二级分类,
                            COUNT(p.二级分类) AS 类型数量,
                     ST_PointOnSurface(b.geom) as geom --计算标注点
                     FROM public.hangzhou_districts b
                              JOIN public.hangzhou_poi_sample p ON ST_Contains(b.geom, p.geom)
                     WHERE 一级分类 = '美食'
                       AND 二级分类 not in ('小吃快餐', '水果生鲜', '面馆', '本帮江浙菜')
                     GROUP BY b.name, p.二级分类, b.geom),
    
    RankedCategories AS (SELECT 区域名称,
                              二级分类,
                              类型数量,
                              row_number() OVER (PARTITION BY 区域名称 ORDER BY 类型数量 DESC) as rank,
                              geom
                       FROM CategoryCounts)
    
    SELECT 区域名称,
    二级分类,
    类型数量,
    区域名称||'
    '||'美食标签:'||二级分类 as 标注字段,
    geom
    
    FROM RankedCategories
    WHERE rank = 1;
    再次添加一个 SQL 数据源,粘贴上以上 SQL
    我们将半径置为 0,打开文字标签,选择标注字段作为标签,调整一下字号和颜色,这样叠加后就可以清晰的看出各个行政区美食最多的二级分类是哪些类型了
    {855C1F1B-84B8-4FF0-857F-ACEEBDE41C26}.png
    2、高端大气上档次的火锅去哪吃?
    如果想请吃火锅又想请吃点评分高、上档次并且性价比高,我们该如何利用 DataV Atlas 进行分析呢?很简单,我们可以通过以下 SQL 筛选出美食分类中的火锅店,然后选择评分大于四分,人均消费在 200 以上的
    SELECT
    "店名",
    "人均消费",
    "评分",
    geom -- 别忘记带上
    FROM
    "public"."hangzhou_poi_sample"
    WHERE
    "一级分类" = '美食'
    AND "二级分类" = '火锅'
    AND "评分" > 4
    AND "人均消费" > 200
    将上述 SQL 创建一个新的自定义 SQL 数据源,我们使用纯色带点透明作为颜色,根据评分作为半径的映射字段,映射区间设置为 5-15,再调整一下描边颜色和粗细
    {BC5B5FF2-C2B0-4AD4-9221-79C14C2E7935}.png
    我们选择这个图层点击右侧的更多操作按钮,选择复制图层,创建一个新的图层
    {866AD5BD-AD1F-4433-A5C3-6B3ACD407339}.png
    再对复制的图层,调整半径的映射为 人均消费 字段,再调整一下颜色为跟之前的图层对比度高的颜色
    {67BF0ABF-7905-4607-94BE-D4F96EE6B107}.png
    我们放大看一下,可以看到绿色的为人均消费,底下蓝色的为评分,我们想要找的高性价比自然是评分高人均低的,也就是环状的,小圈在上大圈在下
    {AA1DA419-A66C-42BE-A51B-35C973D56727}.png
    这样看起来还不是很清晰,我们再基于这个复制一个图层来作为标注图层,设置半径为 0 不显示点,打开标注选项,选择店名作为标签字段,调整标注的颜色和字号大小,记得打开顶部的 碰撞检测 开关来使标注更加清晰明了,还是很明显看出这些火锅店大部分都是海鲜火锅,毕竟海鲜也确实贵一些
    {39882664-EC21-45A8-985F-09E0CBAB293B}.png
    3、为啥杭州被称为“美食荒漠”?背后成因的数据分析
    更改底图
    为了使得数据可视化的效果更明显,我们可以点击左侧的地图工具按钮来将默认的远山黛白色底图更改为雅士灰深色底图,并去掉底图默认的标注
    {C4303470-9585-4C3F-B3E7-E2FD0CDE504E}.png
    添加 SQL 数据源
    刚刚我们通过直接选择表的形式很方便地添加数据库中的任意一张空间表进行可视化,现在我们点击左侧数据源列表,通过底部的添加数据按钮以自定义 SQL 编写的方式来进行更强大的分析
    {D0F49FD8-FBF9-460E-91A3-47690B2EBAE3}.png
    在底部弹出的 SQL 编辑器内添加以下 SQL 来计算杭州范围 500 米半径蜂窝网格中每个格子内的娱乐美食店铺数量,点击运行按钮
    -- 计算杭州范围 500 米半径蜂窝网格中每个格子内的美食店铺数量
    SELECT
    count(*) as 店铺数量,
    hexes.geom as geom
    FROM ST_HexagonGrid(
          500.0 / 111000.0,--使用的的坐标系单位是度,1度约等于111千米,这里的意思是使用半径为500米的网格
          ST_SetSRID(ST_EstimatedExtent('public', 'hangzhou_poi_sample', 'geom')::geometry, 4326)
    
    ) AS hexes
      INNER JOIN
    
    public.hangzhou_poi_sample AS p
    ON ST_Intersects(p.geom, hexes.geom) AND 一级分类 = '美食'
    GROUP BY hexes.geom;
    {69F8FA82-AC7F-432E-8C9F-7DB75447328D}.png
    对店铺数量进行颜色映射可视化
    在左侧图层列表选择生成的蜂窝多边形的图层,点击颜色右侧的数据映射按钮,选择店铺数量字段进行映射,映射类型选择连续映射,预设模式我们选择极值映射(方便我们观察高值和低值数据对比),在色板中选择合适的色板,我们再将描边调细,颜色设置一些半透明来更清楚的看到填充颜色的映射规律,通过缩放底图可以很清楚的看到杭州的美食都聚集在哪些区域
    {01178838-762C-4A05-A700-DF80D5031DE4}.png
    对网格内人均消费进行聚合可视化
    我们修改一下上述 SQL,再次创建一个自定义 SQL 数据源
    SELECT
    hexes.geom as geom,
    AVG(人均消费) as 人均消费
    FROM ST_HexagonGrid(
          500.0 / 111000.0,--使用的的坐标系单位是度,1度约等于111千米,这里的意思是使用半径为500米的网格
          ST_SetSRID(ST_EstimatedExtent('public', 'hangzhou_poi_sample', 'geom')::geometry, 4326)
    
    ) AS hexes
      INNER JOIN
    
    public.hangzhou_poi_sample AS p
    ON ST_Intersects(p.geom, hexes.geom) AND 一级分类 = '美食' AND 人均消费 IS NOT NULL
    GROUP BY hexes.geom;
    这次我们选择三维拉伸面的展现形式来展示,为避免干扰可以暂时关闭其他图层的显示(通过图层列表项右侧的👀进行控制)
    {DC186EF4-1C4D-4E8C-A4B3-5005CD7AE042}.png
    卷帘对比
    点击右上角视图按钮可以切换分屏视图以及滑动视图进行对比分析
    {FFD7B0E2-D693-4398-A9BD-C842E1593012}.png
    {7A87DA3B-36E8-4F45-BE51-99F700C6A2A5}.png
    通过分析我们可以发现,杭州美食分布是非常不均衡的,人口和GDP大区-余杭区,美食数量少且高分店铺少,鉴于余杭区是互联网公司的聚集地,网络声量最大,由此造成了“杭州是美食荒漠”的网络论断!
目录
相关文章
|
8天前
|
弹性计算 人工智能 架构师
阿里云携手Altair共拓云上工业仿真新机遇
2024年9月12日,「2024 Altair 技术大会杭州站」成功召开,阿里云弹性计算产品运营与生态负责人何川,与Altair中国技术总监赵阳在会上联合发布了最新的“云上CAE一体机”。
阿里云携手Altair共拓云上工业仿真新机遇
|
4天前
|
机器学习/深度学习 算法 大数据
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
2024“华为杯”数学建模竞赛,对ABCDEF每个题进行详细的分析,涵盖风电场功率优化、WLAN网络吞吐量、磁性元件损耗建模、地理环境问题、高速公路应急车道启用和X射线脉冲星建模等多领域问题,解析了问题类型、专业和技能的需要。
2465 14
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
|
4天前
|
机器学习/深度学习 算法 数据可视化
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
2024年中国研究生数学建模竞赛C题聚焦磁性元件磁芯损耗建模。题目背景介绍了电能变换技术的发展与应用,强调磁性元件在功率变换器中的重要性。磁芯损耗受多种因素影响,现有模型难以精确预测。题目要求通过数据分析建立高精度磁芯损耗模型。具体任务包括励磁波形分类、修正斯坦麦茨方程、分析影响因素、构建预测模型及优化设计条件。涉及数据预处理、特征提取、机器学习及优化算法等技术。适合电气、材料、计算机等多个专业学生参与。
1505 14
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
|
1月前
|
运维 Cloud Native Devops
一线实战:运维人少,我们从 0 到 1 实践 DevOps 和云原生
上海经证科技有限公司为有效推进软件项目管理和开发工作,选择了阿里云云效作为 DevOps 解决方案。通过云效,实现了从 0 开始,到现在近百个微服务、数百条流水线与应用交付的全面覆盖,有效支撑了敏捷开发流程。
19274 29
|
1月前
|
人工智能 自然语言处理 搜索推荐
阿里云Elasticsearch AI搜索实践
本文介绍了阿里云 Elasticsearch 在AI 搜索方面的技术实践与探索。
18822 20
|
1月前
|
Rust Apache 对象存储
Apache Paimon V0.9最新进展
Apache Paimon V0.9 版本即将发布,此版本带来了多项新特性并解决了关键挑战。Paimon自2022年从Flink社区诞生以来迅速成长,已成为Apache顶级项目,并广泛应用于阿里集团内外的多家企业。
17515 13
Apache Paimon V0.9最新进展
|
6天前
|
编解码 JSON 自然语言处理
通义千问重磅开源Qwen2.5,性能超越Llama
击败Meta,阿里Qwen2.5再登全球开源大模型王座
375 11
|
1月前
|
存储 人工智能 前端开发
AI 网关零代码解决 AI 幻觉问题
本文主要介绍了 AI Agent 的背景,概念,探讨了 AI Agent 网关插件的使用方法,效果以及实现原理。
18698 16
|
3天前
|
算法 Java
JAVA并发编程系列(8)CountDownLatch核心原理
面试中的编程题目“模拟拼团”,我们通过使用CountDownLatch来实现多线程条件下的拼团逻辑。此外,深入解析了CountDownLatch的核心原理及其内部实现机制,特别是`await()`方法的具体工作流程。通过详细分析源码与内部结构,帮助读者更好地理解并发编程的关键概念。
|
3天前
|
SQL 监控 druid
Druid连接池学习
Druid学习笔记,使用Druid进行密码加密。参考文档:https://github.com/alibaba/druid
197 82