下面的代码给我以下错误:
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
即可(无需设置 start
或 end
):
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/