markusschanta/awesome-jupyter

Add HoloViz Panel

MarcSkovMadsen opened this issue · 4 comments

Panel is a very powerful app framework that works very well in the Jupyter Notebook. It allows you to develop tools that works inside the notebook, on a server and also in a browser powered by pyodide. Panel is a part of the HoloViz ecosystem that includes hvPlot, HoloViews and other frameworks for data viz.

It provides capabilities in the area of ipywidgets, Voila, Streamlit and Dash but with its own powerful twists. It integrates with the tools you know and love including Matplotlib, Bokeh, Plotly and Altair. You can use ipywidgets with Panel and panel widgets with Ipywidgets.

Panel has very strong support for Altair. Including events. See https://panel.holoviz.org/reference/panes/Vega.html. I'm also working on supporting Vega/ Altair big data viz via Vega Fusion at https://pypi.org/project/panel-vegafusion/.

I believe it works really well in the Financial/ Trading space where I work. I also see engineers and scientists being very happy about it.

I'm a user of and contributor to Panel. I run https://awesome-panel.org which started out as an awesome list :-)

I believe Panel deserves to be listed :-)

I would like to contribute an addition.


The below apps can be developed in Jupyter. They can run in the Jupyter notebook.

gapminders-speedup

streaming-videostream-speedup

stumpy-dashboard

vega_selection


Panel provides the Jupyter Panel Preview

penguins_jlab_720p_fast.mp4

Panel provides the jupyter-panel-proxy extension that enables you to add an icon in the jupyterlab launcher to launch a directory of Panel apps.


Panel provides a customized version of Jupyterlite in which Panel can be developed and run. Check out https://panelite.holoviz.org. This is currently experimental. But rapidly improving.

Hi Marc, nice to meet you and thank you for the very compelling case to add Panel to this list! The whole Panel ecosystem looks awesome. This is a great way to expose the results and insights from any data analysis project.

In terms of the logistics of getting all the pieces on the list in the right place:

  • I have already merged #134. Thank you for that one!
  • #132 and #133 add the same item in two different categories. To keep things concise/clear/fair, the Awesome style guide/linter strongly recommends putting items in one category only. Does that seem reasonable? Between #132 and #133, I have a slight preference for #133 (Frontend). What do you think?
  • #135 will (after me having added the Panel link in #134) likely produce lint errors because of a duplicate link. (NB: I believe duplicate links in descriptions are fine if they help with comprehension/connectivity. Duplicate list items are a different case.) There are other instances in the list where I added linter overrides to avoid this. Do you want to try to merge the new master into #135 (will produce errors) and add overrides to fix it? If you have any trouble/short on time, I'm happy to do it too!

Hi @markusschanta

Also nice to meet you. Thanks for your review.

  • If choosing between #132 and #133, I would also pick 133. The reason I added two similar PRs where because Voila also had that. I've updated #133 with a bit of the text from #132.
  • I've updated #135 as suggested and it now passes the tests.

Great, thank you for making the changes. I merged #133, #134 and #135 before the holidays. (NB: I botched resolution of the merge conflict in #135 after merging in the other two first. To fix it, I added PaneLite in #137.)

Think Panel is now well-represented on the list. If you have any other suggestions that should go on awesome-jupyter, please feel free to add them. Once again, thank you for your contributions, @MarcSkovMadsen !

Thanks for a nice process. Happy new year and best wishes for 2023