欢迎访问宙启技术站
智能推送

Python中使用Bokeh绘制地理图的示例

发布时间:2024-01-03 14:57:01

Bokeh是一种交互式数据可视化库,它支持在Python中绘制地理图。使用Bokeh可以创建各种各样的地理可视化,例如散点图、热力图、区域图等。

在使用Bokeh绘制地理图之前,首先需要安装Bokeh库并导入相关的模块:

pip install bokeh
from bokeh.plotting import figure, output_file, show
from bokeh.tile_providers import CARTODBPOSITRON, get_provider
from bokeh.models import ColumnDataSource, HoverTool

接下来,我们可以使用Bokeh绘制一个简单的地理图。下面的示例将绘制一张包含若干城市的地理图:

# 创建地理图
output_file("city_map.html")
tile_provider = get_provider(CARTODBPOSITRON)

p = figure(x_range=(-2000000, 6000000), y_range=(-1000000, 7000000),
           x_axis_type="mercator", y_axis_type="mercator")
p.add_tile(tile_provider)

# 绘制城市坐标
lon = [116.4074, 121.4737, 139.6917]
lat = [39.9042, 31.2304, 35.6895]
names = ["Beijing", "Shanghai", "Tokyo"]

p.circle(x=lon, y=lat, size=10, fill_color="red", line_color="black")

# 添加城市名称提示
source = ColumnDataSource(data=dict(x=lon, y=lat, names=names))
tooltips = [
    ("Name", "@names")
]
p.add_tools(HoverTool(tooltips=tooltips, renderers=[p.circle]))

show(p)

在上述代码中,首先我们创建了一个地理图p,指定了地理坐标范围,并指定了使用mercator投影。然后我们使用get_provider函数获取地图的背景样式,这里使用了CARTODBPOSITRON样式。

接下来,我们绘制了三个城市的坐标点,使用了circle函数绘制散点图,并指定了点的大小、填充颜色和边框颜色。

最后,我们为图形添加了城市名称的提示框,通过ColumnDataSource将城市的坐标和名称关联起来,然后使用HoverTool工具来添加提示框,并指定了要显示的名称。

运行上述代码后,会生成一个名为city_map.html的HTML文件,打开该文件即可看到绘制的地理图。

通过上述示例,我们可以看到使用Bokeh绘制地理图非常简单,只需要简单的几行代码就可以实现。你可以根据自己的需求修改代码,绘制不同类型的地理图。