Python “x_范围”的无效值Bokeh Gmap错误

Python “x_范围”的无效值Bokeh Gmap错误,python,google-maps,google-maps-api-3,plot,bokeh,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 我重新启动了我的计算机好几次,希望能

下面的代码给出了以下错误:

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 Maps保持了对绘图轴尺寸的完全控制。这与使用DataRange1d不一致,因为它们还试图控制轴尺寸,这可能导致不可预测和不希望的结果

在Bokeh检查这一点之前有一段时间,允许传递DataRange1d。一旦发现组合导致了问题,就会添加一个检查来明确禁止它。您只需使用Range1d,而无需设置开始或结束:


不过,我还应该向您指出这个函数,它使创建谷歌地图绘图变得更加简单。这和图很相似,因为一个合理的默认绘图是自动创建的,根本不需要创建和添加范围。它是在年宣布的。

这起作用了!你帮我省了几个小时无意识地盯着屏幕看。我很困惑,因为它昨天早上工作,下午就停止工作了。我很高兴它工作了,我最好的猜测是你现在使用的是另一个新版本的Bokeh。
plot = GMapPlot(

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

    map_options=map_options
)