Hacker News new | past | comments | ask | show | jobs | submit login
Plotly.py 5.0 (plotly.com)
118 points by nicolaskruchten on June 21, 2021 | hide | past | favorite | 37 comments



I can attest first hand to how great Plotly is. I'm building Mito[1], an interactive spreadsheet that converts every edit you make into the equivalent Python code, it's also a Jupyter extension. We use Plotly for all of our visualizations -- letting users configure bar plots, histograms, scatter plots, etc similar to how you could in Excel. Plotly's API is really simple to use and it allows for interactivity right out of the box. It would have taken us months to recreate their functionality that we were able to get in days of implementation instead.

[1] https://trymito.io/hn


I’m wondering. How does that work in terms of pricing and license? Do you need to pay a fee to plotly?


Plotly.py is MIT-licensed and totally free for anyone for any purpose :)


Whoa Mito is pretty neat! Is there a way to export what I did via the GUI into lines of code?


What is its level of support for interactive 3D plots? Is it build on top of Matplotlib?


Plotly's 3D viz is built with WebGL & SVG, using libraries like regl & stack.gl. SVG is used for axes & text and WebGL for the high performance rendering of points and surfaces. Surfaces, lines, points, and subplots are all supported. See https://plotly.com/python/#3d-charts.

For more complex 3D objects, Dash users can use dash-vtk. This includes things like point clouds, CFD simulations, 3D mesh, or 3D images.


Dash is really the go-to library if you want to build some complex, flexible dashboards. I found for highly customized dashboards it's a lot easier just to program your own instead of squeezing Tableau's rules.


Plotly is quite nice but I find Dash's use of HTML for layouts a bit forced. For dashboards I have been using Panel, which supports plotly plots, which keeps things closer to pure python https://panel.holoviz.org/index.html

The Devs recently added support for templates which can handle dynamic layouts (i.e drag and drop). https://panel.holoviz.org/reference/templates/React.html#tem...


FYI re Dash & HTML - If you aren't using your own stylesheets with HTML, then I'd recommend dash_bootstrap_components.

Here's an example that uses almost entirely higher level components: https://dash-bootstrap-components.opensource.faculty.ai/exam...

We've also been working on `dash.templates`, which provide opinionated, prebuilt UIs - no layout code required: https://community.plotly.com/t/introducing-dash-labs-dash-2-...


Have similar experience with Plotly + Streamlit when PowerBI starts to collapse under its own weight :)

It’s also way simpler to just pull everything in and manipulate it in Pandas, if your data is not pristine from the get-go.


Yeah man. With Python you have access to huge amount of libraries (and have better code quality TBH) while in Tableau you have to use whatever they give you.

That said, Tableau is still useful for the "ordinary" dashboards, e.g. it's a lot easier if you just need to do some simple calculations and get your KPI. Tableau is still way faster than any other programming language.


How does Dash compare to Streamlit?


Sorry never played with Streamlit.


Plotly is fantastic - great to see another release. Have been using it to integrate charts into Oracle Application Express (APEX), which works really well, and provides for much more interactive data visualizations over the built-in APEX charts.


I'm a data analyst/engineer and I'm not very good at visualisations as they haven't been that important at my jobs. I know it sounds a bit weird. Recently I've been trying to make a Plotly-Dash report/webtool that will enable bidirectional flow of data. So far I haven't been able to get plotly running on Jupyter. The examples I've seen so far have been amazing. I wish I could make it work. Hopefully the latest version will help me produce plots inside Jupyter notebook for testing purposes.


You may want to try out perspective. It seems to be able to do what you want, I’ve been looking to try it myself.

https://perspective.finos.org/

Editable example

https://bl.ocks.org/texodus/45b868833c9f456bd39a51e606412c5d


Thanks mate. Will look into it. I've been following this youtube tutorial to set up a basic report frame from my data sources.

https://www.youtube.com/watch?v=0mfIK8zxUds


This looks awesome. Probably really good for a financial dashboard. I'm trying to use Plotly Dash to mimic an invoice that'll have a few line items for our products. My data is updated monthly.


Icicle chart uses a divergent colormap when it should probably use a sequential one.

Sometimes I wish I never saw that one talk


In this case it's intentional: highlighting divergence from the global average :)


What talk are you referring to?


I used plotly in its earlier versions for my research. So glad they continue to develop it.


Related: Some time ago I remember reading that Plotly sent the data back to plotly’s servers. Is that old news / is there fully-local plotting now?


This is definitely out of date! As of version 4.0, released two years ago, Plotly is "offline/local by default". Check out our docs: https://plotly.com/python/is-plotly-free/#can-i-use-plotly-f...


oh that's fantastic. I saw a plotly demo many years ago when you sponsored my local PUG, and while it looked cool, I never gave it a chance because I assumed it was just a web service.


Many years ago, indeed it was, but now you can use it and rest easy that your data isn't transiting through our servers unless you install the chart_studio module as well.


I fell victim to this a couple of years back! Sometime later I discovered I'd inadvertently published a public dashboard that I really shouldn't have.


Ouch. That definitely doesn't happen any more since v4 came out two years ago.


Congratulations, this looks a really nice release!

I'm wearing the Plotly t-shirt I got at PyCon UK years ago and it's started a few conversations. It's the best-fitting branded t-shirt I've had - if you have any left and want to send me another :)


What do people here think of plotly when compared to matplotlib? I've read through some of the api documentation and have created graphs with the latter, but don't have much experience with plotly.


Personally, I find matplotlib far more intuitive. It's really easy to just get a plot from the repl in about 3 seconds. It also give you the kind of control you need to produce a publication style figure. But it is really limited if you want basic interactivity, like an informative tooltip. Plotly has much better interactivity. You basically get the tooltips and nice zooming for free. But plotly sucks when it comes to creating one off plots. The whole thing is tied to display in a browser, which I find incredibly annoying. If you aren't building a web page, and aren't using a Jupyter notebook, it's quite the pain.


It's really nice for exploring data. I find whenever I have ~5+ series on a single axis on mpl I start to struggle to differentiate colours & lines etc. I sort of addressed that by getting creative with dash styles etc, but still it's not ideal. Plotly is much more dynamic & I love the call outs etc. I do find it much less intuitive and less well documented than mpl and it's fussy about the shape of the data you give it. Maybe this new version improves on those things.


I'd love to hear more about what you found fussy in terms of shape of data... I've worked really hard to make Plotly Express as flexible as possible in terms of input formats (https://plotly.com/python/px-arguments/) and Graph Objects will eat pretty much anything list-like :)


Hey, thanks for the response - it was actually exactly what you seem to have addressed re the wide & long formats. I'm still using v4.1 and ended up writing my own reshapeForPlotly() function which just called the pandas melt function. Will update to v5 now which sounds like it will simplify things.

I think Plotly is great, btw! I use it a lot with streamlit for quick visualisations of big datasets. Thanks for your work on it. I always found the relationship between plotlyexpress & graph_objects confusing but the docs seem much more explanatory now than I remember from a year or so ago and the code snippets on the main plotly site seem much more abundant. Hopefully as it gets more widely used, the community support on stackoverflow etc will build too.


Love the Icicle charts.

Anyone know if they will become available in Ploty.js?


They already are! Features land in Plotly.js first before being integrated into Plotly.py :)


Awesome - thanks!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: