J'aimerais tracer une série de données temporelles avec 3 colonnes, une pour chaque courbe. J'aimerais que chaque courbe ait sa propre couleur et affiche également une légende, comme suit hvplot()
le fait par défaut.
Voici un exemple complet :
import numpy as np
import pandas as pd
import hvplot.pandas
import datetime
from holoviews.operation.datashader import datashade
n=1000
start = datetime.datetime(2010, 10, 1, 0) # Start time
datetimerange = [start + datetime.timedelta(minutes=1)*i for i in range(n)]
A = np.random.randint(5, size=n)
B = np.random.randint(20, 40, size=n)
C = np.random.randint(10, 20, size=n)
d = {'datetime': datetimerange, 'A': A, 'B': B, 'C': C}
df = pd.DataFrame(d).set_index('datetime')
df.hvplot(cmap=['red', 'blue', 'green']) + datashade(df.hvplot(cmap=['red', 'blue', 'green']))
Voici le résultat (sans datashader à gauche, avec datashader à droite) :
Lorsque l'on passe le graphe à datashader, les couleurs et la légende sont perdues. L'utilisation de la fonction datashade=True
argument de hvplot
a le même résultat.
Il y a un tutoriel sur le traçage de séries temporelles dans la documentation Datashader mais c'est assez compliqué, il utilise datashader.transfer_functions.shade()
comme base pour manipuler les graphiques sans beaucoup d'introduction sur la façon dont cela fonctionne et sur la façon dont les graphiques peuvent être manipulés. l'API n'est pas beaucoup plus claire . J'aimerais juste conserver ces caractéristiques de base que bokeh/hvplot fournit par défaut, je ne suis pas sûr de la raison pour laquelle datashader ne les préserve pas, donc je ne sais pas ce qu'il faut faire.
Comment puis-je signaler au datashader de conserver les différentes couleurs et de tracer une légende ?