办公问答网

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 114|回复: 0

【Power BI】绘制可视化数据地图

[复制链接]

2

主题

6

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2023-4-28 11:37:16 | 显示全部楼层 |阅读模式
今天做数据大屏,顺带写一个powerbi中数据地图的绘制教程
【1】获取地图json文件
http://datav.aliyun.com/portal/school/atlas/area_selector
使用阿里云地图数据平台下载json格式的中国区域地图




直接点击其他类型中的下载按钮,下载json文件
下载好后,我们使用记事本或者是vscode打开


:120000,"name":"天津市","center":[11
随便截取一段我们可以看见其省份名是以天津市/河北省此类储存的,所以后续我们在整理地图数据时需要将地名储存为对应的格式,否则会出现错误,导致地图数据无法一一对应
【2】转换地图json文件格式
上面我们刚刚下载好的地图json文件并不可以在powerbi中直接使用,所以我们需要将阿里云上下载的geojson转换为topo json
topo json转换为在线转换
这里我们随便网上找个网站就OK了,这里我用的是:
https://mapshaper.org/




【3】准备绘图数据
以上我们就准备好了绘图的底图文件,那我们就开始下一步,准备绘图需要的数据。
往往大家的数据都是准备好的,这里我结合自己的工作再演示一段语料提取的过程
【3-1】从mysql中提取语料


如上图,mysql数据库中,我希望将discribe字段中包含的省份信息提取出来,而后存入priv字段中
我们直接使用ChatGPT完成代码


直接给出最后代码如下:
UPDATE gfzx SET priv =  CASE      WHEN `discribe` LIKE '%北京%' THEN '北京市'      WHEN `discribe` LIKE '%上海%' THEN '上海市'      WHEN `discribe` LIKE '%天津%' THEN '天津市'      WHEN `discribe` LIKE '%重庆%' THEN '重庆市'      WHEN `discribe` LIKE '%黑龙江%' THEN '黑龙江省'      WHEN `discribe` LIKE '%吉林%' THEN '吉林省'      WHEN `discribe` LIKE '%辽宁%' THEN '辽宁省'      WHEN `discribe` LIKE '%内蒙古%' THEN '内蒙古自治区'      WHEN `discribe` LIKE '%河北%' THEN '河北省'      WHEN `discribe` LIKE '%山西%' THEN '山西省'      WHEN `discribe` LIKE '%陕西%' THEN '陕西省'      WHEN `discribe` LIKE '%甘肃%' THEN '甘肃省'      WHEN `discribe` LIKE '%青海%' THEN '青海省'      WHEN `discribe` LIKE '%山东%' THEN '山东省'      WHEN `discribe` LIKE '%安徽%' THEN '安徽省'      WHEN `discribe` LIKE '%江苏%' THEN '江苏省'      WHEN `discribe` LIKE '%浙江%' THEN '浙江省'      WHEN `discribe` LIKE '%湖北%' THEN '湖北省'      WHEN `discribe` LIKE '%湖南%' THEN '湖南省'      WHEN `discribe` LIKE '%河南%' THEN '河南省'      WHEN `discribe` LIKE '%江西%' THEN '江西省'      WHEN `discribe` LIKE '%广东%' THEN '广东省'      WHEN `discribe` LIKE '%广西%' THEN '广西壮族自治区'      WHEN `discribe` LIKE '%海南%' THEN '海南省'      WHEN `discribe` LIKE '%四川%' THEN '四川省'      WHEN `discribe` LIKE '%贵州%' THEN '贵州省'      WHEN `discribe` LIKE '%宁夏%' THEN '宁夏回族自治区'      WHEN `discribe` LIKE '%云南%' THEN '云南省'      WHEN `discribe` LIKE '%西藏%' THEN '西藏自治区'      WHEN `discribe` LIKE '%香港%' THEN '香港特别行政区'      WHEN `discribe` LIKE '%澳门%' THEN '澳门特别行政区'     WHEN `discribe` LIKE '%新疆%' THEN '新疆维吾尔自治区'       WHEN `discribe` LIKE '%台湾%' THEN '台湾省'      ELSE ''  END;


如上图,运行后,我们就完成了文本的提取和转换(这里我们注意提前在mysql中建立priv字段)
下面我我们看看结果:


下面我们就可以在powerbi中加载数据并进行可视化绘图了。
【3-2】连接到数据源
一般来说,我们如果使用excel,直接导入即可,这里我使用的是mysql的云数据库,给大家简单演示一下过程,更详细的内容可以自行百度拓展
在powerbi中选择 获取数据-更多-然后选择你需要的数据源,链接


下面我们需要输入数据库的凭据


如果你是本地服务器,可以直接写localhost或者是127.0.0.1
因为我是云服务器,所以填写对应的公网ip即可
数据库一栏填写对应的数据库名即可
由于我已经链接过了,所以此步跳过,进入下一步


由图我们可以看出我们的数据是下午三点刷新的,现在已经是九点了,所以我们需要将数据进行刷新
【如果你是刚刚导入的,可以忽略此步】



然后我们等待数据刷新完毕即可,由于我们数据量比较大,所以耐心等待数据刷新完即可
【4】数据可视化
至此,数据已经准备完毕,下面我们在powerbi中进行可视化
【4-1】准备视觉对象
powerbi中,视觉对象可以理解为可视化模板,通过选择相应的数据到视觉对象中,然后将其绘制为可视化对象
由于powerbi自带的地图可视化对象不好用,这里我们链接到app 中下载需要的视觉对象/启用预览版本的形状地图控件


这里我们通过启用powerbi自带的形状地图控件来完成可视化
https://learn.microsoft.com/zh-cn/power-bi/visuals/desktop-shape-map
按照上面的教程即可启用形状地图控件,这略过不表


【4-2】绘制地图
如上图,我们选择形状地图控件,拖入相关需要绘图的字段,我们发现,初始提供的是美国地图,所以我们需要导入中国地图去绘制,这里就要用到我们之前转换的topo json格式的中国地图



在设置视觉对象格式中,我们选择地图设置,这里使用自定义地图


导入需要的地图即可
而后我们只需要拖动字段到对应的框框里,即可完成可视化


上面是我已经完成美化的图,标题加粗,设置为透明背景,增加同色系阴影


此时就可以通过点选相关区块实现交互,还可以对字段进行针对性的修改美化,这里就不过多叙述了


不过,有时只用地图可能不够直观,这里我们可以在地图上面再绘制一个背景透明的条形图来展示
【这里途中还有个问题,就是福建省的内容是缺失的,所以我们需要检查我们的代码,看看是不是有错误,这里我们就不再修改了,感兴趣的大家可以去研究一下】
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|办公问答网

GMT+8, 2025-3-20 03:58 , Processed in 0.082725 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc. Templated By 【未来科技 www.veikei.com】设计

快速回复 返回顶部 返回列表