在数字化时代,数据无处不在,将这些数据在地图上进行可视化对于各个领域的决策至关重要,包括环境研究、城市规划、公共卫生和市场营销等。本文旨在指导读者如何使用Plotly绘制地图,涵盖了地图创建的基础知识、高级制图技巧和交互功能,提供了一个全面的地理数据可视化概览。
下面,将介绍Plotly中可用的主要地图类型,并为每种类型提供示例代码。这些示例假设已经安装了Plotly(使用pip install plotly)并在Python环境中使用它。
Scattergeo地图适用于绘制地理散点图数据。它们可以在世界地图上显示纬度和经度。
使用场景:
当想在世界地图上显示地理位置作为单独的点时。这对于可视化不同地理区域的事件或对象的分布非常有用,例如城市、气象站或任何其他感兴趣的点。
import plotly.express as px
df = px.data.gapminder().query("country == 'Canada'")
fig = px.scatter_geo(df, locations="iso_alpha", size="pop", color="continent")
fig.show()
区域着色图使用颜色阴影显示特定区域的数据,例如人口密度或选举结果。
使用场景:
当需要通过不同颜色的阴影或着色来表示预定义区域(如国家、州或县)的统计数据时。区域着色图非常适合比较不同地理区域的数据,例如人口密度、选举结果或经济数据。
fig = px.choropleth(df, locations="iso_alpha", color="pop",
color_continuous_scale="Viridis")
fig.show()
与scattergeo类似,但增加了气泡大小来表示另一个维度的数据,例如人口。
使用场景:
当想展示数据的地理分布并通过气泡的大小强调变量的大小时。这对于可视化像人口大小、公司规模或与特定位置相关的数量等数据非常有用,允许在不同区域之间轻松比较大小。
fig = px.scatter_geo(df, locations="iso_alpha", size="pop",
size_max=55, color="continent", projection="natural earth")
fig.show()
密度热力图有助于显示地图上的点的密度,这可以帮助可视化现象的集中度。
使用场景:
当需要在地图上显示点的密度时,这有助于识别活动或现象在地理区域中的集中或模式。密度热力图非常适合可视化像犯罪事件、人口集中或特定区域内事件频率等数据点。
fig = px.density_mapbox(df, lat="lat", lon="lon", zoom=3)
fig.show()
可以使用Scattergeo或Mapbox在地图上绘制线条,这对于路线或旅程非常有用。
使用场景:
fig = px.line_mapbox(df, lat="lat", lon="lon", zoom=3)
fig.show()