Interactive plotting for scientific app
I am building a platform for the analysis of samples from spectrum data. I am looking for advice on what plotting library to use, given I want to create something quite sophisticated in Streamlit. I have included an image below, of a commercial app, which has some UI features we would like to implement.
Requirements (see screenshot below for examples of what I mean!)
A single plot featuring
- Faint line of incoming data
- Another line of inference of important points in the data (on the image below, these two are very closely superimposed so not too obvious)
- Further marks / points / overlay reference DB data (these are the vertical arrow marks along the top of the graphing area - these are also listed in the table to the right)
- Zoomability / Area selectability, which can then be input to callbacks in Streamlit (in this screenshot the user has just drawn a square, which it will then zoom to, and update the table to the right to show relevant reference information).
- Again, more call-backability, say, selecting a peak and telling Streamlit to remove it from a dataframe.
What library might be best for me? In particular, I’d like the callbacks in Streamlit to work nicely, and have mouse-overs to highlight datapoints. I would also like to be able to select items from the table, and that be highlighted on the plot. I have some experience with matplotlib
altair
and plotly
, although I am new to plotting and find all three a little difficult to use!
I’m really grateful for any thoughts or advice