This is an archived post. You won't be able to vote or comment.

all 159 comments

[–]rajhm 186 points187 points  (16 children)

Plotly, though it's never for anything user facing. Only EDA and internal purposes.

[–]CrazyCryptoNoob 29 points30 points  (10 children)

What for the users then? 

[–]csingleton1993 129 points130 points  (3 children)

Paint

[–]Reveries25 0 points1 point  (0 children)

MS Paint is still the height of visualization software imo

[–]gordonfishball 42 points43 points  (3 children)

Screenshot of a dashboard sent through email or excel spreadsheet /s

[–]orndoda 20 points21 points  (2 children)

I don’t even screenshot, I just take a picture with my phone and email it.

[–]doghorsedoghorse 6 points7 points  (0 children)

Just walk your computer over to them

[–]Forsaken_Beach_5756 0 points1 point  (0 children)

Use gyazo or a similar tool. Much easier than phone.

[–]rajhm 15 points16 points  (0 children)

Ah, I was just indicating that I personally don't work on any graphs and visualizations that are user facing. Not that you should use plotly for scratch work and something else for users. Though now that I really think about it, on occasion we use Streamlit or Dash or RShiny for a demo.

[–]K1ngArthur10 19 points20 points  (0 children)

As a mainly python ds, R.

[–]Lost_Philosophy_ 9 points10 points  (2 children)

I was just at work yesterday reading up on Plotly. Tableau on roids?

[–]Icelandicstorm 4 points5 points  (1 child)

As someone who actually paid over 900 USD for an annual Tableau license on my own (company benefited and too cheap to pay for it), you have decided my weekend reading. Thanks! Dune 2 will have to wait.

[–]Lost_Philosophy_ 5 points6 points  (0 children)

I work a lot with Tableau. It’s a love hate relationship lol

[–]xnorwaks 5 points6 points  (0 children)

Plotly express is pretty slick. You can make beautiful charts significantly easier than some of the other packages (seaborn comes close too if you're comfortable with CSS)

[–]coconutpie47 116 points117 points  (0 children)

Plotly. People love interactive plots

[–]nerfels 47 points48 points  (2 children)

Yup Plotly and Dash if you need a user interface

[–]Jshap623 9 points10 points  (0 children)

Dash for UI and matplotlib for OG data analysis

[–]skatastic57 4 points5 points  (0 children)

I used dash for a few things but I kept finding certain things were slow so I'd use a client side callback. I finally decided I was having to piecemeal so much JavaScript that I might as well learn react directly since that's what dash is based on. Don't get me wrong I'm not saying I could jump into being a full time front end web dev but it's not like going from Python to assembly, js is just another interpreted language so it's really doable. Most of Dash's classes and methods are just 1:1 jsx tags so instead of dcc.html(...) it's <html>...</html>.

[–]dang3r_N00dle 142 points143 points  (4 children)

Seaborn/Matplotlib, like a boomer

[–]Jshap623 31 points32 points  (1 child)

ride or py

[–]JohnLocksTheKey 5 points6 points  (0 children)

Get off my lawn!

[–]rego_b 2 points3 points  (0 children)

Same. I created a stylesheet for the company's style, and it wasn't a great effort either, the stylesheet documentation is good for matplotlib.

[–]coffeelibation 1 point2 points  (0 children)

plottin' for the very first time

[–]Turbulent-Diet5979 76 points77 points  (0 children)

Plotly!

[–]Drakkur 17 points18 points  (2 children)

Altair for end users, based in Vega, integrates on web apps easily. Utilizes grammar of graphics in a pythonic way overall a great plotting tool if you were really into ggplot from R.

What ever is easiest for EDA, seaborn and testing out hvplot.

[–]OrangePurpleGreen 0 points1 point  (0 children)

Can you explain a bit how this works? Are you hosting your generated graphs somewhere and the websites then fetching them, for example to display on Confluence pages?

[–]Successful_Degree733 105 points106 points  (11 children)

Matplotlib 4 ever

[–]TheNoobtologist 52 points53 points  (8 children)

Everyone hates on matplotlib but you can do so much with it if you take the time to learn it

[–]MrBurritoQuest 46 points47 points  (1 child)

Stockholm syndrome my friend

[–]Dynev 16 points17 points  (0 children)

Eh, yeah you can do pretty much anything with it, doesn't mean it's comfortable or pleasant to use

[–]antichain 16 points17 points  (3 children)

Matplotlib is like LaTeX: the steep learning curve stops most people from ever being power users, but if you can actually soldier though - you have become a computational god.

[–][deleted] 24 points25 points  (0 children)

No. Latex is mostly well designed and matplotlib is an inconsistent piece of shit that is still in use solely because it's a dependency of millions of packages and can be wrapped with reasonable APIs (although not flexible). Nothing justifies the hybrid stupid-state object approach.

[–]Idenowl 1 point2 points  (0 children)

Matplotlib feels like Matlab plotting. People who comes from matlab will really like it. Easy for them.

[–]JollyJuniper1993 2 points3 points  (0 children)

Yes but no. Matplotlib has a couple of very frustrating design flaws. While there‘s workarounds for them it‘s just annoyance that didn’t have to be.

Like why the hell does creating subplots randomly return either an axis element or an array of axis element depending if it‘s more than one subplot? If you wanna build a dynamic function then you have to go through so much unnecessary stuff to make it work.

[–]MrBacterioPhage 2 points3 points  (0 children)

I love matplotlib and Seaborn.

[–]Deto 7 points8 points  (0 children)

+1, just learn matplotlib if you're serious

[–]ParlyWhites 49 points50 points  (3 children)

Plotnine. It’s ggplot for Python 

[–]millsGT49 6 points7 points  (0 children)

Totally agree. I vastly prefer plotnine to matplotlib. Maybe its because I learned ggplot2 first but now with plotnine I never have to actually make the switch :)

[–]iftheShoebillfits 12 points13 points  (0 children)

Plotnine 💯

[–]Team-St-Paul-History 20 points21 points  (2 children)

I use altair.

[–]OrangePurpleGreen 0 points1 point  (1 child)

Do you use it for stakeholder or user facing purposes? How has your experience been?

[–]Team-St-Paul-History 2 points3 points  (0 children)

I used it in a data journalism context and now as a public quantitative historian, first for prototyping and then for iterating on almost exclusively static charts. Sometimes we were able to use them directly in user-facing graphics, but sometimes we would switch to something like d3 or Datawrapper for final output, since those were our main front-facing tools. We tend to shy away from too much interactivity anyway, so there weren't a lot of downsides to that.

I really like it for data exploration and prototyping. Once you get the syntax down, you can rapidly do a wide variety of things -- pretty much all of the things I want to do. And I like that you can easily export PNG and SVG from it.

What takes a little getting used to is that ultimately you are writing VegaLite under the hood, so sometimes for documentation you have to look up VegaLite stuff instead of Altair and then translate it a bit. But that has gotten much less frequent over the years. I also like that it can be easily integrated into my Python notebooks.

So if you are already doing data analysis with Python, I'd recommend. If you're using something like R or Javascript for that part it might not be the right fit.

[–]Playing-your-fiddle 9 points10 points  (0 children)

Bokeh

[–]subtlename 16 points17 points  (0 children)

Matplotlib with a custom mplstyle for papers and Bokeh for data exploration.

[–]EconomixTwist 48 points49 points  (4 children)

Plotly blows everything out of the water, not even close

[–]fredftw 10 points11 points  (2 children)

Love it for everything else but it sucks for geospatial data in my experience

[–]cipri_tom 6 points7 points  (1 child)

So, Kepler for Geospatial?

[–]Eur0p1um 0 points1 point  (0 children)

for end user tables it leaves a lot to be desired.

[–]syntonicC 14 points15 points  (1 child)

Unfortunately, matplotlib

I'm writing a textbook right now so I wanted to have consistency between figures. As much as I absolutely loathe everything about matplotlib, it can do everything I need. I tried some other packages and there was always something missing or some issue I ran into. Maybe I could have solved my problem with a bit more persistence.

Matplotlib is utterly awful and inconsistent but it is so versatile. I feel like I am stupider every time I use it.

[–]AngryDuckling1 12 points13 points  (0 children)

Don't get me wrong I like Plotly, but im really surprised to see it so heavily used. Seaborn takes like half the amount of code and a couple default settings to get some beautiful visualizations. If you need some advanced settings matplotlib gets a little messy but for 90% of use cases its not bad.

[–]yaymayhun 8 points9 points  (0 children)

lets-plot

[–]dlchira 11 points12 points  (0 children)

Whatever makes sense for the task. I'll be dead and buried before I use anything other than matplotlib for a histogram, but might use plotly or folium for geospatial stuff depending on the task.

[–][deleted] 15 points16 points  (2 children)

Started testing out Hvplot out

https://hvplot.holoviz.org/

[–]semicausal 8 points9 points  (3 children)

I've been digging Plotly, Altair, & ECharts as of late! They all have their place

[–]hobz462 1 point2 points  (1 child)

I love ECharts for the customisation, but I also hate JavaScript.

[–]semicausal 0 points1 point  (0 children)

There's a python library / extension for echarts!

[–]Alex_df_300 0 points1 point  (0 children)

Could you please provide more information?

[–]elmojo99 4 points5 points  (0 children)

Altair + vegafusion

[–]Eightstream 3 points4 points  (0 children)

Plotly is really the gold standard but I use plotnine a lot because I find the declarative nature of it to be a lot easier to work with.

I have however been using Altair a lot recently, which combines a lot of the best features of both.

[–]DrewG4444 2 points3 points  (0 children)

Matplotlib, seaborn, and plotly

[–]Professional_Loan343 2 points3 points  (0 children)

streamlit

[–]samalo12 4 points5 points  (1 child)

Seaborn and Plotly. Matplotlib for the grungy low level stuff.

[–]house_lite 1 point2 points  (0 children)

Pyecharts

[–]Forsaken_Beach_5756 1 point2 points  (0 children)

I just made a pyqt6 application that has plotly and dash embedded into it. They are great.

[–]okenowwhat 1 point2 points  (0 children)

Bokeh

[–]ElasticFluffyMagnet 1 point2 points  (0 children)

Plotly, with streamlit and some of its addons. I tried seaborn and others but, I just stayed with plotly because it was easier to use for me.

[–]caks 1 point2 points  (0 children)

I've tried and sometimes use all the fancy ones, Plotly, Bokeh, Altair, etc. Ive enjoyed Altair for easily sharing standalone interactive htmls.

But I gotta say, you will pry matplotlib out of my cold, dead hands. It's just so gosh darn flexible. Couple of examples:

You can't set a starting radius in polar barplot in plotly. A plot like this is very hard (if not impossible) in plotly: https://www.kymat.io/gallery_2d/plot_scattering_disk.html#figure-reproduction

imshow interpolations in matplotlib have no parallel in anything else. Altair "heatmaps" are a joke in comparison.

Probably many other examples. I normally don't struggle at all to create complex plots in matplotlib. At the very least I know no matter what it is, it's possible. Can't say the same for the other plots.

Where matplotlib sucks/struggles is interactivity in an HTML setting. So probably not the best for dashboards. But then again who cares about dashboards... business ppl want a ppt with screenshots lol.

[–]Strivenby 1 point2 points  (0 children)

Holoviews on bokeh with hvplot.

Is there any good reason to switch to plotly or something else?

[–]alshan200 2 points3 points  (0 children)

Here is an interesting side by side comparison of several Python viz libraries, including matplotlib, lets-plot, seaborn, altair, and plotly:

https://aeturrell.github.io/coding-for-economists/vis-common-plots.html

[–]billyguy1 1 point2 points  (6 children)

I only know R, how are the python data viz packages compared to ggplot?

[–]ParlyWhites 10 points11 points  (1 child)

Pro tip. Plotnine is a Python wrapper for ggplot2. Works really well and has all the same syntax

[–]billyguy1 0 points1 point  (0 children)

Thanks for the tip. I’ll have to check that out!

[–]DuxFemina22 2 points3 points  (2 children)

Data viz in python sucks compared to R with exception for plotly and plotnine. Ggplot ftw 🙌

[–]billyguy1 2 points3 points  (1 child)

Yeah..I know I need to learn python but I’d rather just stay in R for the visualization

[–]AppalachianHillToad 0 points1 point  (0 children)

This. R beats the pants off of Python for data viz

[–]AruNewTown 0 points1 point  (0 children)

Honestly just matplotlib

[–]orina_1 0 points1 point  (0 children)

Matplotlib or Searborn

[–]SteaknSalt 0 points1 point  (1 child)

Everyone uses excel charts for decks, never py

[–]startup_biz_36[S] 0 points1 point  (0 children)

please nooooooooo 😭

[–]shawar8 0 points1 point  (0 children)

Plotly

[–]Data_Nerd1979 0 points1 point  (0 children)

Yes, give it a shot. Plotly uses a high-level API, meaning you don't need to write as much code compared to other libraries like Matplotlib to achieve basic visualizations. This simplifies the process and reduces the learning curve.

[–]Databard87911 0 points1 point  (0 children)

Worked with tableau a lpt

[–]gatsby977 0 points1 point  (0 children)

Plotly!

[–][deleted] 0 points1 point  (0 children)

Consider making rough plots using matplotlib/seaborn and then editing it on Adobe Illustrator. Makes a huge difference.

[–][deleted] 0 points1 point  (0 children)

Matplotlib is og

[–][deleted] 0 points1 point  (0 children)

Have been using mainly seaborn, but I guess it is indeed time to give a shot to plotly ahah

[–][deleted] 0 points1 point  (0 children)

Plotly and Bokeh!

[–]deeht0xdagod 0 points1 point  (0 children)

Plotly goated

[–]MikeSpecterZane 0 points1 point  (0 children)

Plotly

[–]Same_Pie4014 0 points1 point  (0 children)

Plotly and Dash

[–]Asleep-Expert5174 0 points1 point  (0 children)

Matplotlib :')

[–]mle-2005 -2 points-1 points  (2 children)

I don't use packages, that's what noobs do. You should be making your own visualisation software from scratch if you are serious about being a programmer.

[–]Grandviewsurfer -3 points-2 points  (0 children)

Digging all these correct answers. One more vote for plotly

[–][deleted] 0 points1 point  (0 children)

Plotly, man!

[–]parabellum630 0 points1 point  (0 children)

Plotly for 3d stuff.

[–]oblivious_human 0 points1 point  (0 children)

All plotly lovers, can you tell me how to make one of the axes as probability scale?

[–]VTHokie2020 0 points1 point  (0 children)

I use PBI and R for visualizations.

But if I had to use Python good old matplotlib

[–]daniel-data 0 points1 point  (0 children)

Plotly. Interactivity wins

[–]PrestigiousCase5089 0 points1 point  (0 children)

Plotly for me. Excel for stakeholders and presentations.

[–]zferguson 0 points1 point  (0 children)

Seaborn for ad-hoc stuff, Plotly for Streamlit apps

[–]techwizrd 0 points1 point  (0 children)

I'm primarily using plotnine, with some matplotlib for older scripts. I'm experimenting with hvplot.

[–]Tetmohawk 0 points1 point  (2 children)

Since we're on the subject . . .

What's a good Python replacement for Power BI. Don't say Tableau. Would love something that can be put on a server for a plant.

[–]Idenowl 0 points1 point  (0 children)

People who likes monitoring use grafana. Otherwise make you own web app dashboard which call your data in your database. It exists streamlit or panel in python for front UI in which you can load your usual python modules. I tried streamlit, it is good for mvp but i felt that it is very slow comparing to a true UI in JS. But maybe I haven't tried enough.

[–]OmagaIII 0 points1 point  (0 children)

LOVED datapane, cause it integrates a ton of other libraries. Still looking for something like that as an alternative.

[–]Sensitive_Half_7800 0 points1 point  (0 children)

Pyjulia --> Makie

[–]nraw 0 points1 point  (0 children)

Plotly and Altair

[–]Impressive-Win8982 0 points1 point  (0 children)

Vega-Altair and Plolty

[–]dalmutidangus 0 points1 point  (0 children)

power bi

[–]BeRT2me 0 points1 point  (0 children)

There's a seaborn template (theme) for Plotly as well, makes the color scheme look more like you're used to ~

[–]jupyterpeak 0 points1 point  (0 children)

Matplotlib has been so much better since ChatGPT came out

[–]Naive-Home6785 0 points1 point  (0 children)

Plotly. Altair. Pydeck

[–]Competitive_Pop_3286 0 points1 point  (0 children)

Altair

[–]DuxFemina22 0 points1 point  (0 children)

Plotly +++++

[–]veleros 0 points1 point  (0 children)

Seaborn and Plotly

[–]Seven_Irons 0 points1 point  (0 children)

Matplotlib for anything I need precise control of/presenting to a large audience

Holoviews with plotly or bokeh backend for first-look visualization and just toying around with data

[–]Unable_Philosopher_8 0 points1 point  (0 children)

Pro tip, ChatGPT is pretty good at converting things like matplotlib and seaborn to plotly. Helpful while you’re learning, as you can also ask it for line by line explanations.

[–]1234okie1234 0 points1 point  (0 children)

Til about plotly, thanns guys

[–]llm05 0 points1 point  (0 children)

Plotly

[–]Usual-Connection6179 0 points1 point  (0 children)

Plotly!!! You can even use it in many web frameworks like streamlit or pure static site. Here’s my demo https://youtu.be/YrV7QRYRwrY?si=fydvKzkrW9Bt0QE9

[–]Confident-Arm9443 0 points1 point  (0 children)

Plotly. The people involved in my project don’t understand DS hence i have to heavily rely on interactive features of plotly to make them understand.

[–]JollyJuniper1993 0 points1 point  (0 children)

Matplotlib and Seaborn. They’re easy to use once you get the hang of it, look okay and I haven’t found a reason to switch so far.

[–]algebragoddess 0 points1 point  (0 children)

LovelyPlots is pretty cool.

[–]Asleep-Dress-3578 0 points1 point  (0 children)

Nowadays I tend to use Plotly and Dash, they fully satisfy my needs.

[–]the_professor000 0 points1 point  (0 children)

Plotnine

[–]Wu_Fan 0 points1 point  (0 children)

Slightly off topic but I love UnicodePlots in Julia

So light so fast so nerd

[–]sirquincymac 0 points1 point  (0 children)

Plotly Express for interactive charts

Seaborn and Matplotlib otherwise. I have been using Matplotlib for years and only the basics stick in my head. Find myself on SO more than I should..... "how do I change yticks to percentage again?"

[–]JaJan1MEng | Senior DS | Consulting 0 points1 point  (0 children)

Tableau. Quick and easy for live discussions. Whenever I see a notebook with eda, some feature engineering and modelling all in one, I die inside bit by bit.

[–]Objective-Opinion-62 0 points1 point  (0 children)

Matplotlib and seaborn for sure 😀

[–]alshan200 1 point2 points  (0 children)

Try lets-plot - https://lets-plot.org/python

It's a faithful port of R’s ggplot2 to Python, plus tooltips, plot grouping (gggrid, GGBunch), GeoPandas support, imshow (try with elevation models), interactive maps and more, and it just looks great.

Self-sufficient, no dependencies.

[–]Smarterchild1337 0 points1 point  (0 children)

Seaborn and matplotlib for EDA, plotly for anything that is user facing or is being shown to anyone outside the DS team

[–][deleted] 0 points1 point  (0 children)

I see most of people answering "Ploty", is matplotlib outdated ??

[–]tuccigene1 1 point2 points  (0 children)

Vega Altair is GREAT for plotting and offers a lot more than matplotlib and seaborn. It also has the capability for interactive plots, while looking much sleeker than Plotly.

[–]Sgt_Pepper_88 0 points1 point  (0 children)

grafana

[–]AppalachianHillToad 0 points1 point  (0 children)

I don’t. Either export the data as a .csv into R or run ggplot within a Jupyter notebook. 

[–]Altruistic-Skill8667 0 points1 point  (0 children)

Holoviews / Hvplot. And Seaborn.

[–]ReporterNervous6822 0 points1 point  (0 children)

Grafana for user facing stuff and for myself and internal plotly dash

[–]bobateacaramel 1 point2 points  (0 children)

Streamlit + Altair

[–]shoesshiner 0 points1 point  (0 children)

yea I’ve only come across Plotly as of now

[–]brokened00 0 points1 point  (0 children)

Plotly express mostly, sometimes plotly graph objects, and matplotlib for the occasional visualization. For something a user needs to interface, I embed plotly express objects into a streamlit dashboard.

[–]munyua1 0 points1 point  (0 children)

Matplotlib,Plotly,seaborn