过五关|28个数据可视化图表的总结和介绍( 四 )




图中三角的点就是我们数据集中包含的数据点
添加图层
Folium 中的默认地图是 OpenStreetMap 。我们可以添加具有不同图层 , 例如 Stamen Terrain、Stamen Water Color、CartoDB Positron 等 , 得到不同的图层表示
使用 folium.TileLayer 将多个图层添加单个地图中 , 并使用folium.LayerControl以交互方式进行切换 。
m=folium.Map(    location=[hosp_df[\"LATITUDE\"
.mean() hosp_df[\"LONGITUDE\"
.mean()
   zoom_start=6)folium.TileLayer('cartodbdark_matter').add_to(m)folium.TileLayer('cartodbpositron').add_to(m)folium.TileLayer('Stamen Terrain').add_to(m)folium.TileLayer('Stamen Toner').add_to(m)folium.TileLayer('Stamen Water Color').add_to(m)folium.LayerControl().add_to(m)m


可以看到右上角出现了图层选择的按钮
生成地图标记
在交互式地图中 , 标记对于指定位置非常重要 。 folium.Marker可以在给定位置创建一个标记
m=folium.Map(    location=[hosp_df[\"LATITUDE\"
.mean() hosp_df[\"LONGITUDE\"
.mean()
   zoom_start=8)hosp_df.apply(    lambda row: folium.Marker(        location=[row['LATITUDE'
row['LONGITUDE'

       ).add_to(m)    axis=1)m


自定义标记
也可以使用自定义标记
m=folium.Map(    location=[hosp_df['LATITUDE'
.mean() hosp_df['LONGITUDE'
.mean()
   zoom_start=8)def get_icon(status):  if status == \"OPEN\":    return folium.Icon(icon='heart'                       color='black'                       icon_color='#2ecc71'                       )  else:    return folium.Icon(icon='glyphicon-off'                       color='red')hosp_df.apply(    lambda row: folium.Marker(        location=[row['LATITUDE'
row['LONGITUDE'

       #color='red'        popup=row['ADDRESS'
       tooltip='<h5>Click here for more info</h5>'        icon=get_icon(row['STATUS'
)        ).add_to(m)    axis=1)m


生成气泡图
为了表示地图上的数值 , 我们可以通过将圆半径与其在数据集中的值绑定来绘制不同大小的圆 。 在我们的例子中 , 我们用每个中心表示覆盖的人口 , 其半径与其population值成正比 。
m=folium.Map(    location=[hosp_df['LATITUDE'
.mean() hosp_df['LONGITUDE'
.mean()
   zoom_start=8)def get_radius(pop):  return int(pop / 20)hosp_df.apply(    lambda row: folium.CircleMarker(        location=[row['LATITUDE'
row['LONGITUDE'

       radius=get_radius(row['POPULATION'
)        popup=row['ADDRESS'
       tooltip='<h5>Click here for more info</h5>'        stroke=True        weight=1        color=\"#3186cc\"        fill=True        fill_color=\"#3186cc\"        opacity=0.9        fill_opacity=0.25        ).add_to(m)    axis=1)m


生成标记簇
在数据点密集地图上工作时 , 使用标记簇可以以避免许多附近标记相互重叠造成的混乱的情况 。Folium 提供了一种设置标记簇的简单方法 , 将它们添加到 folium.plugins.MarkerCluster 实例
m=folium.Map(    location=[hosp_df['LATITUDE'
.mean() hosp_df['LONGITUDE'
.mean()
   zoom_start=8)cluster = MarkerCluster(name=\"Hospitals\")def get_icon(status):  if status == \"OPEN\":    return folium.Icon(icon='heart'                       color='black'                       icon_color='#2ecc71'                       )  else:    return folium.Icon(icon='glyphicon-off'                       color='red')hosp_df.apply(    lambda row: folium.Marker(        location=[row['LATITUDE'