Проблема в вашем примере заключается в том, что опция framewise
не придерживалась, вероятно, из-за встроенных параметров (.opts(color='orange')
. Поэтому наиболее простое переписывание вашего кода выглядит следующим образом:
testAreaHmap = hv.HoloMap({d: hv.Area.stack((hv.Area(df_in[df_in.day==d], 'Datetime', 'V1', label='V1')*\
hv.Area(df_in[df_in.day==d], 'Datetime', 'V2', label='V2')))
for d in selected_days}, kdims=['d'])
testAreaHmap.opts(opts.Area(framewise=True, color=hv.Cycle(['orange', 'blue'])))
Здесь мы отделяем объявление данных от установки опций, что обычно является рекомендуемым подходом. Другой подход к переписыванию такого рода кода заключается в использовании возможностей HoloView для применения групповых операций. Если вы используете.to
API это будет выглядеть так:
area_v1 = hv.Dataset(df_in).to(hv.Area, 'Datetime', 'V1', 'day', label='V1')
area_v2 = hv.Dataset(df_in).to(hv.Area, 'Datetime', 'V2', 'day', label='V2')
stacked_areas = (area_v1 * area_v2).map(hv.Area.stack, hv.Overlay)
stacked_areas.opts(opts.Area(color=hv.Cycle(['orange', 'blue']), framewise=True))
Обе версии производят это: