python - ' 'x_range' Bokeh Gmap 错误的值无效

标签 python google-maps google-maps-api-3 plot bokeh

下面的代码给我以下错误:

ValueError: Invalid value for 'x_range', MapPlot ranges may only be Range1d, not data ranges

考虑到直到今天我的代码都没有出现任何错误,我几乎可以肯定代码没有任何问题。

我认为这不相关,但在我在命令终端中运行以下命令后它停止工作:

sudo lsof -t -i tcp:5000 -s tcp:listen | sudo xargs kill

我多次重新启动计算机(希望重置端口),但也没有成功。

我的代码如下:

from bokeh.models import (
   GMapPlot, GMapOptions, ColumnDataSource, Circle, DataRange1d, PanTool, 
   WheelZoomTool, BoxSelectTool
)
from bokeh.io import output_file, show, output_notebook

output_notebook()


map_options = GMapOptions(lat=30.29, lng=-97.73, map_type="roadmap", zoom=11)

plot = GMapPlot(
x_range=DataRange1d(), y_range=DataRange1d(), map_options=map_options
)

plot.title.text = "Austin"


plot.api_key = "INSERT PERSONAL GOOGLE API KEY"


completed_lats = [30.265872,30.2900002]

completed_longs = [-97.749270,-97.733322]

completed_source = ColumnDataSource( data=dict(
    lat=completed_lats,
    lon=completed_longs,))

completed_dots = Circle(x="lon", y="lat", size=50, fill_color="blue",
                        fill_alpha=0.1, line_color=None)
plot.add_glyph(completed_source, completed_dots)


plot.add_tools(PanTool(), WheelZoomTool(), BoxSelectTool())

show(plot)

最佳答案

实际上代码有问题,就是这样:

plot = GMapPlot(

    x_range=DataRange1d(), y_range=DataRange1d(), # BAD

    map_options=map_options
)

正如消息所述,只有 Range1d 可以与 GMapPlot 一起使用。这是因为与常规 Bokeh 图不同,Google map 保持对图轴尺寸的完全控制。这与使用 DataRange1d 不一致,因为这些尝试控制轴尺寸,这可能会导致不可预测和不良的结果。

Bokeh 之前曾检查过这一点,并允许传递 DataRange1d。一旦发现组合导致问题,就会添加一项检查以明确禁止它。您只需使用 Range1d 即可(无需设置 startend):

plot = GMapPlot(

    x_range=Range1d(), y_range=Range1d(), # GOOD

    map_options=map_options
)

但是,我还应该向您指出 gmap函数,这使得创建 Google map 绘图变得更加简单。它很像 figure ,因为会自动创建合理的默认绘图,根本不需要创建和添加范围。公告于version 0.12.5 .

关于python - ' 'x_range' Bokeh Gmap 错误的值无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48331950/

相关文章:

python - 从段落中提取热字符之间的多个字符串

python - 在列表中查找最大值时出现意外值 None - Python 3 递归

google-maps - Google map -街景静态图像

javascript - 如何让 Google map 在 Visual Studio Web 表单中工作?

javascript - 为什么我的有效 kml 在加载到谷歌地图时显示为 "INVALID_DOCUMENT"

javascript - 如何删除谷歌地图控件

javascript - 带有 Rhomobile 的 Google map Javascript V3 API

python - 如何在 Python 中将任何文件路径作为命令行参数从一个程序传递到另一个程序?

python - 通过内部设置的列去除重复的行

javascript - 标记不显示