gpt4 book ai didi

python - 如何在 Bokeh 中使用 'DataRange1D'?

转载 作者:太空宇宙 更新时间:2023-11-03 21:30:18 24 4
gpt4 key购买 nike

大家好!我想按照视频使用 Bokeh 在 Google map 上创建圆圈。这是我的代码:

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

df=pd.read_csv('bikes_October18.csv') #read data from the csv file
df1=pd.DataFrame({'stations':df.start_station_name,'lat':df.start_station_latitude,'long':df.start_station_longitude})
df2=df1.drop_duplicates(subset='stations')
df3=pd.concat([df.start_station_name,df.end_station_name],axis=0)
a=df3.value_counts()
df2['frequncy']=df2.stations.map(a)
GeoInfo=df2

map_options=GMapOptions(lat=55.95415,lng=-3.20277,map_type='roadmap',zoom=3)
api_key=Goole_APIKEY

plot=GMapPlot(x_range=DataRange1d(), y_range=DataRange1d(),
map_options=map_options,api_key=api_key)
plot.add_tool(PanTool(),WheelZoomTool(),BoxSelectTool())
baseline=GeoInfo['frequncy'].min()-1.0
scale=3
source=ColumnDataSource(data=dict(lat=GeoInfo['lat'].tolist(),
long=GeoInfo['long'].tolist(),
rad=[(i-baseline)/scale for i in GeoInfo['frequncy'].tolist()]))
circle=Circle(x="long",y='lat',size="rad",fill_color='orange',fill_alpha=0.3)
plot.add_glyph(source,circle)

output_file('Edinburgh_bike_stations.html')
show(plot)

但是,存在一个值错误,显示“‘x_range’值无效,MapPlot 范围只能是 Range1d,而不是数据范围”。我不知道如何纠正它。有人能帮忙吗?顺便说一句,我不确定我是否正确使用了 API key 。我从谷歌获得了自己的 API key ,但我没有将其存储为环境变量。我直接调用为 api_key='my key value' 。我不确定它是否有效。对此还有什么建议吗?非常感谢!

最佳答案

如错误所述,DataRange1d 可能无法与 GMapPlot 一起使用。这是因为,与 Bokeh 完全控制范围开始/结束值的常规 Bokeh 图不同,Google map 图有所不同。特别是,谷歌地图绝对控制范围值的开始/结束,以便始终保持纵横比。这与 DataRange1d 模型 100% 不兼容,这就是 GMapPlot 不允许使用它们的原因。您应该改为配置 Range1d 对象。

plot=GMapPlot(x_range=Range1d(), y_range=Range1d(),
map_options=map_options,api_key=api_key)

但是,实际上,如果您使用的是 Bokejh 的任何较新版本,则应该使用更新的 gmap 函数来为您处理所有这些事情。此处描述:

https://docs.bokeh.org/en/latest/docs/user_guide/geo.html#google-maps

关于python - 如何在 Bokeh 中使用 'DataRange1D'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53563148/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com