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.
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
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.
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.
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.
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.
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.
[1] https://trymito.io/hn