Ricercar commited on
Commit
d471ad5
1 Parent(s): 319290c

Create test_altair.py

Browse files
Files changed (1) hide show
  1. test_altair.py +50 -0
test_altair.py ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import altair as alt
2
+ import streamlit as st
3
+ import pandas as pd
4
+ import numpy as np
5
+
6
+ from streamlit_vega_lite import vega_lite_component, altair_component, _component_func
7
+
8
+ hist_data = pd.DataFrame(np.random.normal(42, 10, (200, 1)), columns=["abc"])
9
+ print(hist_data)
10
+
11
+ @st.cache_resource
12
+ def altair_histogram():
13
+ brushed = alt.selection_interval(encodings=["x"], name="brushed")
14
+
15
+ return (
16
+ alt.Chart(hist_data)
17
+ .mark_bar()
18
+ .encode(alt.X("abc:Q", bin=True), y="count()")
19
+ .add_selection(brushed)
20
+ )
21
+
22
+ chart = altair_histogram()
23
+ res = st.altair_chart(chart, use_container_width=True)
24
+ # print(res)
25
+ event_dict = altair_component(altair_chart=altair_histogram())
26
+ chart_dict = chart.to_dict()
27
+ print(chart_dict)
28
+ altair_chart = chart.copy()
29
+ datasets = {}
30
+
31
+ def id_transform(data):
32
+ """Altair data transformer that returns a fake named dataset with the
33
+ object id."""
34
+ name = f"d{id(data)}"
35
+ datasets[name] = data
36
+ return {"name": name}
37
+
38
+ alt.data_transformers.register("id", id_transform)
39
+
40
+ with alt.data_transformers.enable("id"):
41
+ chart_dict = altair_chart.to_dict()
42
+ # st.write(event_dict)
43
+
44
+ event_dict = _component_func(spec=chart_dict, **datasets, key=None, default={})
45
+ # print(chart_dict)
46
+
47
+ r = event_dict.get("abc")
48
+ if r:
49
+ filtered = hist_data[(hist_data.abc >= r[0]) & (hist_data.abc < r[1])]
50
+ st.write(filtered)