Визуализация newb ie здесь!
Я запрограммировал некоторые модели временных рядов, которые выводят из определенного набора данных прогресс трех связанных метрик.
Конкретно, каждая модель построена из другой набор данных и прогнозирует три траектории, для каждой из метрик.
Я хочу построить все прогнозы моделей и обучающий набор на графике так, чтобы:
- Я могу выбрать метрику c отображается на графике через выпадающее меню
- При наведении курсора на траекторию будут выделены точки данных, из которых была построена модель
- Для каждого показателя c выделены некоторые пороговые значения при некоторых указанных c значениях осей y
Как мне это сделать в altair?
Пока мой код выглядит так:
for metric in metrics:
for label, df in predictions[metric].items():
alt.Chart(predictions[metric]).mark_line().encode(
x="Year",
y=label
)
Где predictions
- это словарь, содержащий один DataFrame
для каждого показателя c со столбцами для прогнозов каждой модели. Но это буквально ничего не излагает.
Мои вопросы:
- Как мне нарисовать то, что я хочу, используя altair?
- Любые советы о том, как хранить данные временного ряда, чтобы упростить манипулирование с Altair, а не просто сложность DataFrames?
///////////////////// ////////////////////////////////////
РЕДАКТИРОВАТЬ
После немного поиграюсь и прочитав это Мне удалось сделать выпадение
alt.data_transformers.disable_max_rows()
select_box = alt.binding_select(options=list(predictions_df['variable'].unique()))
selection = alt.selection_single(name='y_axis', fields=['variable'], bind=select_box)
alt.Chart(predictions_df, width=800, height=600
).transform_filter(
alt.FieldGTPredicate(field='value', gt=0.)
).mark_line().encode(
x="Year",
y = alt.Y('value', scale=alt.Scale(type='log'), title='TODO'),
color="Model",
).add_selection(
selection
).transform_filter(
selection
)
Хотелось бы, чтобы название оси изменилось с выделением - и все еще не выяснилось остальные