我正在使用GeoViews,我想知道是否可以在GeoViews中将滑块作为输入来作为拟人化地图的输入。
我在gdf中还有另一个变量,即year。可以使用滑块显示按年份显示的Total_Crimes吗?
编辑:添加了更多信息:
gdf数据框具有以下变量。
beat_num Year Total_Crimes beat district sector geometry
111 2012 1449 1 01 1 POLYGON ((-87.62451050462798 41.88829675314376...
111 2013 1645 1 01 1 POLYGON ((-87.62451050462798 41.88829675314376...
111 2014 1636 1 01 1 POLYGON ((-87.62451050462798 41.88829675314376...
111 2015 1642 1 01 1 POLYGON ((-87.62451050462798 41.88829675314376...
111 2016 1836 1 01 1 POLYGON ((-87.62451050462798 41.88829675314376...
我基本上将gdf按 beat_num 和 Year 分组,并找出每个组的Total_Crimes。 gdf的数据类型:
beat_num int64
Year int64
Total_Crimes int64
beat object
district object
sector object
geometry object
完整代码:
import geopandas as gpd
import holoviews as hv
import geoviews as gv
import geoviews.tile_sources as gts
hv.extension('bokeh')
geometries = gpd.read_file('geo_export_3b3b25c2-a600-40c3-a663-2f7ad8dc2b9c.shp')
#Reading the shape file for each beat_num.
geometries['beat_num']=geometries['beat_num'].apply(int)
#Converted the beat_num to integers
gdf = gpd.GeoDataFrame(pd.merge(ca_df, geometries))
#dataframe ca_df has total crimes for each beat_num and each year and merged it with geometries to get shape for each beat_num.
plot_opts = dict(tools=['hover'], width=750, height=700, color_index='Total_Crimes',
colorbar=True, toolbar='above', xaxis=None, yaxis=None)
gts.ESRI *gv.Polygons(gdf, vdims=['beat_num', 'Total_Crimes'], label='Chicago Crime Data').opts(plot=plot_opts,style=dict(alpha=0.7))
答案 0 :(得分:1)
是的,如果需要,在GeoViews中总是可以有一个滑块!我不能从代码片段中清楚地知道您在做什么,但是我猜测gdf是一个GeoPandas数据框,大概会将纬度和经度作为关键维度。要获得滑块,则需要为年份添加一个附加的关键尺寸('kdim')。如果尚未以这种方式汇总数据,则可能还需要按年份汇总数据。 pyviz.org和geoviews.org上有一些示例可以帮助您入门,或者可以发布更完整的示例。