Вложение DynamicMap внутри DynamicMap не поддерживается - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть разные графики временных рядов для разных временных рядов, которые я сделал голограммой, теперь я строю графики для разных диапазонов широт, затем получаю исключение: - Исключение: вложение DynamicMap в DynamicMap не поддерживается.Убедитесь, что обратный вызов DynamicMap возвращает наложение элемента или (Nd).Если вы применили операцию, убедитесь, что она не является динамической, установив dynamic = False.

: DynamicMap [Lat and Lon:]: DynamicMap [Date and Time:] Я не получаю график в виде вложения динамической карты,

Я пытался сделать растеризацию на последнем финальном сюжете.это не сработало

    latlon_selPLot={f'lat:{k[0]} lon:{k[1]}':finalplot(k) for k in 
    [[(12,15),(80,85)],[(13,18),(81,95)]]}
    dd=df_div.opts(width=200, height=100)
    hmap11 = hv.HoloMap(latlon_selPLot, kdims='Lat and Lon :' )
    tiles*rasterize(hmap11)



 # Below is the code i am using , where i have to make change , 
 # so that i get holomap of lat_lon_selPlot when i select one 
 #lat_lon range then that particular area plot is shown .


 allplot={k.strftime("%Y-%m-%d %H:%M:%S"):plotthis(k)for k in 
 perdelta(strt, strt + timedelta(days=1), timedelta(hours=18))}
 allplot2={k.strftime("%Y-%m-%d %H:%M:%S"):plotsecond(k)for k in 
 perdelta(strt, strt + timedelta(days=1), timedelta(hours=18))}
 ....

 tiles = gv.tile_sources.Wikipedia
 hmap1 = hv.HoloMap(allplot, kdims='Date and Time :' )
 hmap2 = hv.HoloMap(allplot2, kdims='Date and Time :')

def finalplot(rng):

        finalplot=rasterize(hmap1.redim.range(Latitude=rng[0], 
        Longitude=rng[1])).options(**opts)*hmap2
        return finalplot

latlon_selPLot={f'lat:{k[0]} lon:{k[1]}':finalplot(k) for k in 
[[(12,15),(80,85)],[(13,18),(81,95)]]}
dd=df_div.opts(width=200, height=100)
hmap11 = hv.HoloMap(latlon_selPLot, kdims='Lat and Lon :' )
tiles*hmap11

Я хочу, чтобы мой holomap lat_lon_selPlot также работал.

Ответы [ 2 ]

0 голосов
/ 20 сентября 2019

Для выбора только выбранного диапазона широты я делаю еще один процесс для панели.выбор.но сначала выбирается select.value, и когда я меняю значение select.value другого, график не меняется.где я делаю не так?как я могу связать с jlink, мой jlink правильный?

tiles = gv.tile_sources.Wikipedia
hmap1 = hv.HoloMap(allplot, kdims='Date and Time :' )
hmap2 = hv.HoloMap(allplot2, kdims='Date and Time :')
finalplot=tiles*rasterize(hmap1).options(**opts)*hmap2
dd=df_div.opts(width=200, height=100)

select = pn.widgets.Select(name='States', options=['TN','AP', 'Odisha'])
 latmin = [7, 13, 19]
 latmax = [14, 19, 22]
 longmin = [77, 79, 85]
 longmax = [83, 85, 88]
if (select.value=='TN'):
    hhmap = rasterize(hmap1.redim.range(Latitude=(latmin[0],latmax[0]), Longitude= 
 (longmin[0], longmax[0])))
   select.jslink(finalplot, value='object')
    finalplot=tiles*hhmap*hmap2

 elif (select.value=='AP'):
      hhmap =rasterize(hmap1.redim.range(Latitude=(latmin[1],latmax[1]), Longitude= 
 (longmin[1], longmax[1]))).options(**opts)
   select.jslink(finalplot, value='object')
    finalplot=tiles*rasterize(hhmap)*hmap2

else:
    hhmap = rasterize(hmap1.redim.range(Latitude=(latmin[2],latmax[2]), Longitude= 
   (longmin[2], longmax[2]))).options(**opts)
    select.jslink(finalplot, value='Odisha')
    finalplot=tiles*rasterize(hhmap)*hmap2
 # else:
 #     tiles*rasterize(hmap1).options(**opts)*hmap2

 finalplot=tiles*rasterize(hhmap).options(**opts)*hmap2
  finalplot=pn.Column(dd, finalplot, select).servable()    
  # finalplot=pn.Column(dd, finalplot).servable()
 finalplot

Как я могу связать другие опции select.value, чтобы при изменении select.value появлялся другой график?

0 голосов
/ 20 сентября 2019

rasterize - это так называемая динамическая операция, которая означает, что она возвращает DynamicMap, который обновляется всякий раз, когда изменяется один из его потоков.В случае rasterize это позволяет ему обновляться всякий раз, когда изменяется диапазон вашего графика.Если вы не хотите динамического поведения, вы должны указать dynamic=False в вызове растрирования, в вашем случае это означает, что у вас будет:

def finalplot(rng):
    return rasterize(hmap1, x_range=rng[1], y_range=[0], dynamic=False).options(**opts)*hmap2

Это говорит о том, что вы все равно вложили бы HoloMaps втот случай.Чтобы решить эту проблему, вам нужно будет позвонить `.collate``

hmap11 = hv.HoloMap(latlon_selPLot, kdims='Lat and Lon :' ).collate()
...