📜  Python Bokeh – 在谷歌地图上绘制字形(1)

📅  最后修改于: 2023-12-03 15:33:58.405000             🧑  作者: Mango

Python Bokeh – 在谷歌地图上绘制字形

介绍

Bokeh是一个基于Python的交互式数据可视化库。它可以创建绚丽的图形,专业的仪表板和数据应用程序,以便用户能够轻松地传达他们的数据。

这篇文章将向你介绍如何使用Bokeh创建一个带有字形的谷歌地图。

所需工具

为了完成此项目,你需要以下工具:

  • Python 3.6+
  • Anaconda环境(可选)
  • Bokeh 2.0+
  • Google API密钥
如何获得Google API密钥

要使用谷歌地图API,你需要一个API密钥。请按照以下步骤获取API密钥:

  1. 登录谷歌云端平台(https://console.cloud.google.com)。
  2. 创建一个项目并为其命名。
  3. 启用谷歌地图API。
  4. 创建API密钥并将其保存。

在获得API密钥后,你可以开始创建自己的Bokeh地图!

Bokeh地图
步骤1: 导入所需库

首先,我们需要导入所需库:

from bokeh.io import output_file, show
from bokeh.models import (
    GMapPlot, GMapOptions, ColumnDataSource, Circle, Text)
from bokeh.resources import INLINE
from bokeh.plotting import figure
from bokeh.util.string import encode_utf8
步骤2: 配置谷歌地图选项

我们需要在GMapOptions中配置谷歌地图选项。使用自己的Google API密钥替换“your_api_key_here”。

map_options = GMapOptions(
    lat=30.2669444, lng=-97.7427778, 
    map_type="roadmap", zoom=11,
    api_key="your_api_key_here")
步骤3: 创建GMapPlot

接下来我们创建GMapPlot:

plot = GMapPlot(
    x_range=GMapOptions().map_type, 
    y_range=GMapOptions().map_type,
    map_options=map_options,
    plot_width=1000,
    plot_height=700
)
步骤4: 配置谷歌地图

在此步骤中,我们将配置谷歌地图元素:

plot.title.text = "Bokeh Map"
plot.api_key = "your_api_key_here"
plot.title.align = 'center'

circle = Circle(x="lng", y="lat", size=10, fill_color="blue", 
    fill_alpha=0.8, line_color=None)
plot.add_glyph(source, circle)

text = Text(x="lng", y="lat", text="text", text_color="black", 
    text_font_size="10pt", text_align="center")
plot.add_glyph(source, text)
步骤5: 显示地图

最后,我们可以保存并显示地图。

output_file("bokeh_map.html")
show(plot)
完整代码

下面是完整的Python模块,可以在Jupyter Notebook或Python运行窗口中运行:

from bokeh.io import output_file, show
from bokeh.models import (
    GMapPlot, GMapOptions, ColumnDataSource, Circle, Text)
from bokeh.resources import INLINE
from bokeh.plotting import figure
from bokeh.util.string import encode_utf8

output_file("bokeh_map.html")


map_options = GMapOptions(
    lat=30.2669444, lng=-97.7427778, 
    map_type="roadmap", zoom=11,
    api_key="your_api_key_here")

plot = GMapPlot(
    x_range=GMapOptions().map_type, 
    y_range=GMapOptions().map_type,
    map_options=map_options,
    plot_width=1000,
    plot_height=700
)

plot.title.text = "Bokeh Map"
plot.api_key = "your_api_key_here"
plot.title.align = 'center'

source = ColumnDataSource(data=dict(lat=[30.2861,  30.2855], 
    lng=[-97.7394, -97.7494], text=["Hello", "World"]))

circle = Circle(x="lng", y="lat", size=10, fill_color="blue", 
    fill_alpha=0.8, line_color=None)
plot.add_glyph(source, circle)

text = Text(x="lng", y="lat", text="text", text_color="black", 
    text_font_size="10pt", text_align="center")
plot.add_glyph(source, text)

show(plot)
结论

Bokeh非常适合创建交互式数据可视化,通过使用Bokeh,我们可以轻松地创建各种图形和仪表板,以传达数据并让人印象深刻。

在本文中,我们介绍了如何使用Bokeh创建带有字形的谷歌地图。我们分享了所有必需组件和步骤,并提供了Python模块,以便你可以开始创建自己的Bokeh地图。