楼主: 时光永痕
1163 0

[数据挖掘新闻] 地图乐趣:第1部分 [推广有奖]

  • 0关注
  • 14粉丝

svip3

学术权威

12%

(VIP/贵宾)八级

1%

威望
0
论坛币
26 个
通用积分
57.2238
学术水平
4 点
热心指数
4 点
信用等级
4 点
经验
34180 点
帖子
2732
精华
0
在线时间
321 小时
注册时间
2020-7-21
最后登录
2024-8-1

楼主
时光永痕 学生认证  发表于 2020-9-4 19:17:39 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
地图乐趣:第1部分
我喜欢地图。这不只是个书呆子。地图是非常有用的可视化工具,可以解决许多业务问题。当然,也有许多标准的BI工具也可以生成地图,例如Tableau。我的经验是,编码人员提供了更多的自定义选项。特别是当涉及到目的地/城市/村庄不大(或众所周知)或数据不是很“干净”(例如,以不同方式编写的同一城市)时,如果您必须对数据进行预处理。我处理所有这些以及更多。因此,我更喜欢使用python创建地图。
在开始绘制地图之前,请阅读数据,并在需要时进行转换和清理。无论如何,获取标准的序言(如果您没有自己的序言,请从以前的一篇文章中获取我的内容)。然后,继续进行地图序言:
导入大叶#基本传单图开始
从folium.plugins导入MarkerCluster   #您需要它来聚类目标
从folium.plugins导入MiniMap   #这是如果要将小地图包括到大地图中
从folium导入插件
从叶片导入FeatureGroup#进行功能自定义
从IPython.core.display导入HTML   #添加html
为功能导入branca.element#
从folium.plugins中导入HeatMap#如果要创建一个热图
步骤1:建立基础版面
map1 = folium.Map(location = [10
让我们仔细看一下括号中的选项。
location = [10
瓷砖是您的布局。正如folium网站上所说,“该库具有来自OpenStreetMap,Mapbox和Stamen的许多内置磁贴集,并支持具有Mapbox或Cloudmade API密钥的自定义磁贴集。” 我在目前最喜欢的黑白布局上应用了。始终了解客户最终希望或期望看到的内容。如果您要使用颜色来突出显示标签,那么为背景使用谨慎的颜色是个好主意。
attr =“ Katharina Glass博士”添加自定义内容,例如您的姓名或部门名称等。
请记住,我们的地图现在称为“ map1”。 要查看地图,请输入:  map1。
步骤2.让我们在地图上绘制一些数据
画一个圆
folium.CircleMarker(radius = 3,
    位置= [53.5278
    popup ='</ b>我的家乡</ b>',
    颜色=“红色”,
    fill =假
).add_to(map1)
现在,我们有一个红色圆圈,弹出式窗口“我的家乡”位于德国汉堡。我将向您展示如何进一步自定义所有这些参数。
标题
要在地图上添加标题,需要编写一些html代码。但这很容易。对于我的许多项目,跟踪地图的最后更新日期是有意义的。因此,我还将在这里与您分享如何有效地做到这一点。
今天= dt.datetime.now()。strftime(“%Y-%m-%d%H:%M”)
title_html ='''
             <h3 align =“ center” style =“ font-size:16px”> <b> A-城市</ b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
             <span <p>最新更新:&nbsp; {date} </ p> </ span>
             </ h3>'''.format(date = today)                    
map1.get_root()。html.add_child(folium.Element(title_html))
小地图
您可以向地图添加小地图。offset参数将帮助您获取所需的缩放系数。再三考虑小地图是否真的可以使您更好地可视化并增加功能。
minimap = MiniMap(zoom_level_offset = -8)
map1.add_child(map1)
添加地点
读取数据(如果尚未完成的话)。对于此示例,我将从地理数据库中获取名称以字母“ A”开头的城市和人口。因此,我有741个城市,但都没有城市名称,地理位置,人口和其他信息。
将位置放到列表中:
位置= df [[''lat','lng']]
locationlist = location.values.tolist()
然后,绘制城市:
对于范围(0,len(位置列表))中的i:
  folium.Marker(locationlist
                  popup = df ['city']
                 icon = folium.Icon(color ='darkblue',icon ='info',prefix ='fa')
             ).add_to(map1)
您可以自定义弹出窗口和图标。我将在后续博客文章中向您展示。
当您有大量数据点时,我们的地图将变得非常混乱。解决方案是使用群集使可视化效果更好。
简单集群
Folium具有非常好的聚类选项:
MarkerCluster()
marker_cluster = MarkerCluster()。add_to(map1)
对于范围(0,len(位置列表))中的点:
    folium.Marker(locationlist [point],popup = df ['city'] [point],
                  icon = folium.Icon(color ='darkblue',icon ='info',prefix ='fa')
                 ).add_to(marker_cluster)
圆圈内的数字表示该区域中标签的数量。您可以自定义叶片聚类算法。我将在后续帖子中展示如何。
保存
map1.save('我的A城市c.html')
我的%20A-cities%20map.html
注意:尝试操作时,必须从头开始重新运行地图。否则,标签仅在较旧的标签上。
下次,我将向您展示如何自定义内容并添加更多功能。

关注 CDA人工智能学院 ,回复“录播”获取更多人工智能精选直播视频!


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Location datetime ipython HeatMap Tableau

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-5 21:10