GOOGLE ADS

jeudi 28 avril 2022

Lors de l'enregistrement de Holoviews DynamicMap à l'aide de hv.save(), seuls trois cadres sont rendus

Je souhaite exporter mon HoloViews DynamicMap tel qu'il est affiché dans un bloc-notes Jupyter, mais il n'exporte que trois cadres dans le fichier HTML résultant. J'ai créé l'exemple de code suivant pour illustrer le problème que je rencontre, qui est une version simplifiée de l'exemple sur https://holoviews.org/reference/containers/bokeh/DynamicMap.html

import numpy as np
import holoviews as hv
hv.extension('bokeh')
def sine_curve(phase, freq=0.5):
xvals = [0.1* i for i in range(100)]
return hv.Curve((xvals, [np.sin(phase+freq*x) for x in xvals]))
dmap = hv.DynamicMap(sine_curve, kdims=['phase']).redim.range(phase=(0.,1.))
dmap # to render interactively in Jupyter notebook
hv.save(dmap, 'test.html')

Si je l'exécute dans un cahier Jupyter, le curseur affichera 11 diagrammes de phase différents (chaque déphasage de 0,1). Cependant, une fois que je l'ai enregistré sous test.html, il ne restituera que trois diagrammes de phase au total (0, 0,5, 1). Existe-t-il un moyen de rendre toutes les images du fichier HTML ?


Solution du problème

La solution était de remplacer .redim.range(phase=(0.,1.))par .redim.values(phase=full_set_of_values)where full_set_of_values = [0., 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.]. Voir https://github.com/holoviz/holoviews/issues/5273 pour plus d'informations.

Aucun commentaire:

Enregistrer un commentaire

Comment utiliseriez-vous .reduce() sur des arguments au lieu d'un tableau ou d'un objet spécifique ?

Je veux définir une fonction.flatten qui aplatit plusieurs éléments en un seul tableau. Je sais que ce qui suit n'est pas possible, mais...