Most suitable plotting library for me?

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 :smiling_face:

1 Like