我喜欢地图。这不只是个书呆子。地图是非常有用的可视化工具,可以解决许多业务问题。当然,也有许多标准的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人工智能学院 ,回复“录播”获取更多人工智能精选直播视频!


雷达卡



京公网安备 11010802022788号







