|
1 | 1 | """A Streamlit visualization panel for the simple_graph.py example script.""" |
2 | 2 |
|
3 | 3 | import streamlit as st |
| 4 | +from amplitude_enum import AmplitudeEnum |
4 | 5 | from streamlit_echarts import st_echarts |
5 | 6 |
|
6 | 7 | import nipanel |
7 | 8 |
|
8 | 9 |
|
9 | 10 | st.set_page_config(page_title="Simple Graph Example", page_icon="📈", layout="wide") |
10 | 11 | st.title("Simple Graph Example") |
| 12 | +col1, col2, col3, col4, col5, col6 = st.columns(6) |
11 | 13 |
|
12 | 14 | panel = nipanel.get_panel_accessor() |
13 | | -time_points = panel.get_value("time_points", [0.0]) |
14 | | -sine_values = panel.get_value("sine_values", [0.0]) |
15 | | -amplitude = panel.get_value("amplitude", 1.0) |
16 | | -frequency = panel.get_value("frequency", 1.0) |
17 | 15 |
|
18 | | -col1, col2, col3, col4, col5 = st.columns(5) |
19 | 16 | with col1: |
20 | | - st.metric("Amplitude", f"{amplitude:.2f}") |
| 17 | + amplitude_tuple = st.selectbox( |
| 18 | + "Amplitude", |
| 19 | + options=[(e.name, e.value) for e in AmplitudeEnum], |
| 20 | + format_func=lambda x: x[0], |
| 21 | + index=0, |
| 22 | + ) |
| 23 | + amplitude_enum = AmplitudeEnum[amplitude_tuple[0]] |
| 24 | + panel.set_value("amplitude_enum", amplitude_enum) |
21 | 25 | with col2: |
22 | | - st.metric("Frequency", f"{frequency:.2f} Hz") |
| 26 | + base_frequency = st.number_input("Base Frequency", value=1.0, step=0.1) |
| 27 | + panel.set_value("base_frequency", base_frequency) |
| 28 | + |
23 | 29 | with col3: |
24 | | - st.metric("Min Value", f"{min(sine_values):.3f}") |
| 30 | + frequency = panel.get_value("frequency", 0.0) |
| 31 | + st.metric("Frequency", f"{frequency:.2f} Hz") |
| 32 | + |
| 33 | +time_points = panel.get_value("time_points", [0.0]) |
| 34 | +sine_values = panel.get_value("sine_values", [0.0]) |
25 | 35 | with col4: |
26 | | - st.metric("Max Value", f"{max(sine_values):.3f}") |
| 36 | + st.metric("Min Value", f"{min(sine_values):.3f}") |
27 | 37 | with col5: |
| 38 | + st.metric("Max Value", f"{max(sine_values):.3f}") |
| 39 | +with col6: |
28 | 40 | st.metric("Data Points", len(sine_values)) |
29 | 41 |
|
30 | 42 | # Prepare data for echarts |
|
0 commit comments