Need some advice for building a network weathermap

Hello everyone, I’m currently trying to convert a weathermap made in Grafana to something more modern and scalable using Streamlit.

The network weathermap I’m talking about looks something like this. It’s going bad because it’s hard to add new links since it deals with lots of queries, thus making it slow. (This is not the main point though)

What I’m looking for, is some advice regarding some plotting and graph libraries that might be best suited for this work. I’ve already worked with plotly, altair and some other libraries using Streamlit and I think they may be viable, but I wanted to know if anyone has already make something similar and could offer some advice.

I’m basically trying to build a network weathermap that let’s the user add new links, see the connections, etc. Any advice would be greatly appreciated!

Hey there, thanks for sharing your question and welcome to the Streamlit community! :rocket: Your project sounds super interesting (and ambitious!). For building interactive, scalable network weathermaps in Streamlit, several graph libraries and components stand out:

  • Plotly: Great for interactive charts, but for complex, editable network diagrams, it may be limiting since it doesn’t natively support node-link editing or dynamic graph structures in the way you described. Still, it’s a solid choice for static or semi-interactive visualizations and integrates seamlessly with Streamlit via st.plotly_chart (docs).
  • streamlit-agraph: Specifically designed for interactive network graphs in Streamlit, allowing you to define nodes, edges, and even handle user interactions like adding links (docs, example).
  • yFiles Graphs for Streamlit: A powerful component for interactive, data-driven network visualizations, supporting auto-layouts, grouping, and user interaction events (announcement).
  • streamlit-flow: Lets you build beautiful, interactive flow diagrams with flexible nodes and edges, and supports capturing user interactions in Python (announcement).
  • Pyvis + NetworkX: Good for visualizing network graphs, but less interactive for editing in-app (discussion).

If you want users to add links and interact with the graph, I’d recommend starting with streamlit-agraph or yFiles Graphs for Streamlit. Both are actively maintained and designed for interactive network visualizations in Streamlit. If you have a minimum reproducible example or repo, please share it so the community can jump in with more targeted advice!

Sources: