使用 folium 包在 Google 地图上绘制 ICMR 批准的测试中心
Folium是一个强大的Python数据可视化库,主要用于帮助人们可视化地理空间数据。使用 Folium,只要知道其纬度和经度值,就可以创建世界上任何位置的地图。此外,Folium 创建的地图本质上是交互式的,因此您可以在地图渲染后进行放大和缩小,这是一个非常有用的功能。 Folium 建立在Python生态系统的数据处理能力和 Leaflet.js 库的映射能力之上。在Python中,数据经过处理,然后通过 Leaflet 地图上的 folium 进行可视化。
安装
在使用 Folium 之前,您可能需要使用以下两种方法之一将其安装在系统上。
$ pip install folium
或者
$ conda install -c conda-forge folium
我们将使用具有 7 列的 ICMR 数据集:实验室、地址、Pincode、城市、州、类型、纬度和经度。我们将在数据集中使用“ICMRTestingLabsWithCoords.csv”文件。要下载数据集,请单击此处。
入门
导入所需的库
import folium
import pandas as pd
导入数据集
df = pd.DataFrame(pd.read_csv(‘ICMRTestingLabsWithCoords.csv’))
仅将窗口聚焦在印度。我们将印度的坐标与缩放参数一起传递给 folium.Map()。
phone_map = folium.Map(location = [20.5937, 78.9629],
zoom_start=4.4)
制作标记
显示实验室的名称和类型,无论是私人的还是政府的。此外,为了传递标记的坐标,我们将为其编写Python代码。
locate = {}
for i, j, k, l in zip(df['latitude'],
df['longitude'],
df['lab'],
df['type']):
temp=[]
temp.extend((i, j))
locate['loc']=temp
marker = folium.Marker(location = locate['loc'],
popup = str(k)+' Type:'+str(l))
marker.add_to(phone_map)
我们将通过 4 列“纬度”、“经度”、“实验室”和“类型”运行 for 循环。首先,我们创建一个“临时”列表,其中包含我们遍历所有特定实验室时的纬度和经度。然后将这个特定的纬度和经度列表传递给字典定位。现在我们通过从 folium 调用 '.Marker' 并将定位字典传递给 location 和弹出窗口以字符串格式获取实验室名称和实验室类型来创建一个标记。标记的类型是“folium.map.Marker”。最后,我们从标记中调用 '.add_to' 并传入 phone_map。现在我们的引脚已经准备好,是时候显示绘制的引脚了。我们通过调用 phone_map 来做到这一点。
phone_map
完整代码:
Python3
import folium
import pandas as pd
phone_map = folium.Map(location=[20.5937, 78.9629],
zoom_start=4.4)
df = pd.DataFrame(pd.read_csv('ICMRTestingLabsWithCoords.csv'))
locate = {}
for i, j, k, l in zip(df['latitude'], df['longitude'],
df['lab'], df['type']):
temp = []
temp.extend((i, j))
locate['loc'] = temp
marker = folium.Marker(location=locate['loc'],
popup=str(k)+' Type:'+str(l))
marker.add_to(phone_map)
phone_map
输出: