bqplot gefüllt Zeilenblöcke Tooltip
Ich versuche, eine Zeitreihenprognose zu zeichnen, die von einer Zeitreihe mit schattierten Unsicherheitsintervallen umgeben ist, und Tooltips sowohl für die Linie als auch für den Umfang der Unsicherheit verwenden.
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)
Die Füllung blockiert jedoch den Tooltip für die Hauptzeitreihen innerhalb des gefüllten Bereichs. Gibt es einen einfachen Weg, dies zu umgehen? Wenn ich die Füllung entferne, funktioniert es wie gewünscht. Aber ich will die Füllung. Ich habe versucht, ein anderes Lines-Objekt ohne Tooltip-Interaktion zu erstellen und dieses als gefülltes Objekt zu verwenden, aber das hat auch nicht funktioniert. Vielen Dank!
Antworten
Sie werden sich selbst treten ... ordnen Sie die Markierungen im FigureAnruf neu an, um die Unsicherheit an erster Stelle und die Zeile an zweiter Stelle zu setzen. Die Reihenfolge der Liste funktioniert ähnlich wie zorderin matplotlib.
example_fig = Figure(marks=[
fcst_uncertainty,
fcst_line,
], axes=[x_ax_fcst, y_ax_fcst])
Nettes Beispiel übrigens.