bqplot Linee piene di blocchi tooltip
Sto cercando di tracciare una previsione di serie temporale, circondata da una serie temporale di intervallo di incertezza ombreggiato, e fare in modo che i suggerimenti funzionino sia per la linea che per il perimetro dell'incertezza.
import pandas as pd
from bqplot import *
daterange = pd.date_range(start='2020-01-01', freq='1D', periods=20)
df = pd.DataFrame(index=daterange)
df['fcst'] = np.sin(np.arange(0,20)*2*np.pi / 20)
tt_ex = Tooltip(fields=['x', 'y' ], labels=['', ''], formats=["%B %Y", ',.2f'])
x_sc = DateScale()
y_sc = LinearScale()
fcst_vals = np.arange(0,20)*2*np.pi / 20
x_ax_fcst = Axis(scale=x_sc)
y_ax_fcst = Axis(scale=y_sc, orientation='vertical', tick_format='.2f')
fcst_uncertainty = Lines(x=[daterange.append(daterange[::-1])],
y=[((df['fcst']+0.2).append((df['fcst'][::-1]-0.2)))],
fill_colors=['blue'],
fill='inside',
marker = 'cross',
stroke_width=1,
close_path=True,
scales={'x': x_sc, 'y': y_sc},
tooltip=tt_ex)
fcst_uncertainty.fill_opacities = [0.2]
fcst_line = Lines(x=[daterange], y=[df['fcst']],
scales={'x': x_sc, 'y': y_sc},
marker='circle', colors=['blue'],
tooltip=tt_ex)
example_fig = Figure(marks=[
fcst_line,
fcst_uncertainty
], axes=[x_ax_fcst, y_ax_fcst])
display(example_fig)
Ma il riempimento sta bloccando il suggerimento per la serie temporale principale che si trova all'interno dell'area riempita. C'è un modo semplice per aggirare questo? Se rimuovo il riempimento, funziona come desiderato. Ma io voglio il riempimento. Ho provato a creare un altro oggetto Lines senza un'interazione del tooltip e facendo in modo che fosse l'oggetto pieno, ma neanche quello ha funzionato. Grazie!
Risposte
Ti prenderai a calci ... riordina i segni nella Figurechiamata per mettere prima l'incertezza e poi la linea. L'ordine dell'elenco funziona in modo simile a zorderin matplotlib.
example_fig = Figure(marks=[
fcst_uncertainty,
fcst_line,
], axes=[x_ax_fcst, y_ax_fcst])
A proposito, bell'esempio.