Spaces:
Runtime error
Runtime error
none
commited on
Commit
·
50cf0f6
1
Parent(s):
4a4f597
buttons working better
Browse files- streamlit_viz.py +16 -44
streamlit_viz.py
CHANGED
|
@@ -188,12 +188,6 @@ def main():
|
|
| 188 |
frames = [go.Frame(data=graph_obj) for graph_obj in graph_objs]
|
| 189 |
# show them with streamlit
|
| 190 |
|
| 191 |
-
# this puts them all on the screen at once
|
| 192 |
-
# like each new one shows up below the previous one
|
| 193 |
-
# instead of replacing the previous one
|
| 194 |
-
#for fig in figures:
|
| 195 |
-
# st.plotly_chart(fig)
|
| 196 |
-
# time.sleep(1)
|
| 197 |
|
| 198 |
# This works the way I want
|
| 199 |
# but the plot is tiny
|
|
@@ -229,47 +223,28 @@ def main():
|
|
| 229 |
# this one finally set the speed
|
| 230 |
# no mention of how they figured this out but thank goodness I found it
|
| 231 |
# https://towardsdatascience.com/basic-animation-with-matplotlib-and-plotly-5eef4ad6c5aa
|
|
|
|
|
|
|
|
|
|
| 232 |
ani_fig = go.Figure(
|
| 233 |
data=graph_objs[0],
|
| 234 |
frames=frames,
|
| 235 |
layout=go.Layout(
|
| 236 |
updatemenus=[{
|
| 237 |
'type':'buttons',
|
| 238 |
-
# Streamlit's dark mode erases the text from this button
|
| 239 |
-
# but it shows up in light mode
|
| 240 |
-
# also, st.button() buttons show up fine in dark mode
|
| 241 |
-
|
| 242 |
-
# Trying some of these to see whether I can get the button text to show up
|
| 243 |
# https://plotly.com/python/reference/layout/updatemenus/
|
| 244 |
|
| 245 |
-
#
|
| 246 |
-
#
|
| 247 |
-
# `fill` value is rgb(244, 250, 255) still
|
| 248 |
-
# when I change this, the browser debugger says that the <text> tag is updating
|
| 249 |
-
# not the surrounding <rect>
|
| 250 |
-
# also there isn't any change in the <text> tag, it just updates
|
| 251 |
-
'bgcolor': '#00f',
|
| 252 |
-
|
| 253 |
-
# This does make the text show up so that's good
|
| 254 |
-
'font': {'color': '#639'},
|
| 255 |
-
# And this one works too
|
| 256 |
-
'bordercolor': '#f7b',
|
| 257 |
-
|
| 258 |
-
# set all buttons to inactive
|
| 259 |
-
# to see whether that gives them all bgcolor
|
| 260 |
-
# yep that works
|
| 261 |
-
#'active': -1,
|
| 262 |
-
|
| 263 |
-
# Or set showactive to False?
|
| 264 |
-
# Also works
|
| 265 |
'showactive': False,
|
| 266 |
-
|
| 267 |
-
#
|
| 268 |
-
#
|
| 269 |
-
|
| 270 |
-
#
|
| 271 |
-
|
| 272 |
-
|
|
|
|
| 273 |
'buttons':[{
|
| 274 |
'label':'Play',
|
| 275 |
'method': 'animate',
|
|
@@ -277,18 +252,15 @@ def main():
|
|
| 277 |
'frame': {'duration':5000},
|
| 278 |
'transition': {'duration': 2500},
|
| 279 |
}],
|
| 280 |
-
}
|
| 281 |
-
# Now this one gets the bgcolor
|
| 282 |
-
# and if I click it then the other button gets
|
| 283 |
-
# the bgcolor
|
| 284 |
-
# so a button only gets bgcolor if it's not "active"
|
| 285 |
-
{'label': 'Button 2', 'method':'skip'}
|
| 286 |
]
|
| 287 |
}]
|
| 288 |
)
|
| 289 |
)
|
| 290 |
st.plotly_chart(ani_fig)
|
| 291 |
|
|
|
|
|
|
|
| 292 |
|
| 293 |
if __name__=='__main__':
|
| 294 |
main()
|
|
|
|
| 188 |
frames = [go.Frame(data=graph_obj) for graph_obj in graph_objs]
|
| 189 |
# show them with streamlit
|
| 190 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 191 |
|
| 192 |
# This works the way I want
|
| 193 |
# but the plot is tiny
|
|
|
|
| 223 |
# this one finally set the speed
|
| 224 |
# no mention of how they figured this out but thank goodness I found it
|
| 225 |
# https://towardsdatascience.com/basic-animation-with-matplotlib-and-plotly-5eef4ad6c5aa
|
| 226 |
+
|
| 227 |
+
# this also has custom animation speeds in it
|
| 228 |
+
# https://plotly.com/python/custom-buttons/#reference
|
| 229 |
ani_fig = go.Figure(
|
| 230 |
data=graph_objs[0],
|
| 231 |
frames=frames,
|
| 232 |
layout=go.Layout(
|
| 233 |
updatemenus=[{
|
| 234 |
'type':'buttons',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 235 |
# https://plotly.com/python/reference/layout/updatemenus/
|
| 236 |
|
| 237 |
+
# Always show the background color on buttons
|
| 238 |
+
# streamlit breaks the background color of the active button in darkmode
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 239 |
'showactive': False,
|
| 240 |
+
# background color of the buttons
|
| 241 |
+
'bgcolor': '#fff',
|
| 242 |
+
# font in the buttons
|
| 243 |
+
'font': {'color': '#000'},
|
| 244 |
+
# border color of the buttons
|
| 245 |
+
'bordercolor': '#000',
|
| 246 |
+
|
| 247 |
+
# Play button
|
| 248 |
'buttons':[{
|
| 249 |
'label':'Play',
|
| 250 |
'method': 'animate',
|
|
|
|
| 252 |
'frame': {'duration':5000},
|
| 253 |
'transition': {'duration': 2500},
|
| 254 |
}],
|
| 255 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 256 |
]
|
| 257 |
}]
|
| 258 |
)
|
| 259 |
)
|
| 260 |
st.plotly_chart(ani_fig)
|
| 261 |
|
| 262 |
+
st.markdown(f'## {len(FEATS)}')
|
| 263 |
+
|
| 264 |
|
| 265 |
if __name__=='__main__':
|
| 266 |
main()
|