7 ms·
Comprehensive Guide on Data Visualization with Pandas
- teodorlu 7y agoHere's a dataset link that doesn't require registering with Kaggle: https://www.teodorheggelund.com/static/world-happiness-report-2019.zip
- kyberias 7y agoLeave those peaceful furry creatures alone, please.
- lawlorino 7y agoI really am not sure how "comprehensive" I would call this, after glancing over it it looks like one of the million currently existing basic pandas plotting guides.
- rcarrigan87 7y agoYeah, this doesn't seem to add much...was hoping for something a little deeper.
- trts 7y agoIs this actually a new feature of pandas? I've only used other libraries like seaborn and matplotlib.
- fr1tkot 7y agoIt's not new, I remember using the .plot function 2 or 3 year ago. Seaborn is much better anyway though, so don't bother switching. And the pandas plots are ugly
- BeetleB 7y agoIIRC, if you import seaborn, then pandas plots will use seaborn styling. I don't think seaborn is a standalone plotting library - it's merely provides styling. So you can have your cake and eat it too.
- SiempreViernes 7y agoSeaborn adds new plotting functions, not merely a new style, though I'm not sure that qualifies it to be called standalone. Certainly Seaborn has matplotlib as a dependency.
- squaresmile 7y agoYou can use plt.style.use("seaborn") [0] to just use the style. Style sheets reference [1] [0] https://matplotlib.org/tutorials/introductory/customizing.html https://matplotlib.org/tutorials/introductory/customizing.ht... [1] https://matplotlib.org/gallery/style_sheets/style_sheets_reference.html https://matplotlib.org/gallery/style_sheets/style_sheets_ref...
- mayankkaizen 7y agoIt is wrong to say Seaborn only provides styling. There are many types of plots available in Seaborn which are Not available in Matplotlib. It might not be extensive, but what it does, it does better than Matplotlib.
- lawlorino 7y agoThis capability is at least a few years old which is when I first started using pandas. I believe it uses matplotlib on the backend for the plotting by default, and works pretty seamlessly with seaborn too.
- 7y ago
- abhishekjha 7y agoWhat should one do if after following those million guides it still doesn’t stick? I always end up googling what I want and hit SO. Is there something wrong with me or does numpy and pandas seem more difficult than they should be?
- lawlorino 7y agoI really wouldn't worry about it - I've been using Python for data work for the last 5 years or so and I have to look stuff all the time. Eventually the basic stuff sticks but it's like any kind of coding, I don't think anyone ever hits the point where they hardly ever have to Google stuff. One useful tip I can suggest is to create a repo for useful code snippets, so if you ever find yourself doing something new that you think you might need again, just spend a bit of time commenting and describing it and add it to the repo. That way instead of having to spend time searching you'll hopefully remember doing it before and be able to find it easily.
- xapata 7y agoBack in the old days, experts collected reference manuals. Googling things is the same as flipping through the pages of a manual.
- Foivos 7y agoAfter googling the same things every other week, I started using a snippets application (in my case it is SnippetsLab) where I wrote a nice description and keywords for every snippet. Life is so much easier that way.
- BeetleB 7y ago>Is there something wrong with me or does numpy and pandas seem more difficult than they should be? If you're only an occasional user, this will be your life forever. My experience with pandas is that if you use it heavily for 3 months, then things start to "stick" and you need to look it up less often. Unfortunately I changed jobs and have forgotten most of pandas, so I'm back to looking things up again.
- mjparrott 7y agoI’m not sure i would describe those graphs as “beautiful”
- min2bro 7y agoThese are raw matplotlib graphs. Its crude. Not sure what's the definition of beautiful?
- erikpukinskis 7y agoBeautiful means you want to post it on Instagram.
- whitehouse3 7y agoLately, `pip install pandas` is my first step after making a new virtual environment. Its read_sql and read_csv methods are magic. The resulting DataFrames are just like DataTables in C#. And for complex joins and aggregations, I can DataFrame.to_sql into an in-memory SQLite database. Pandas feels like the wrong tool for this job. I don't use multi-indexes or any statistical methods. I don't chart anything. But it's so darn convenient. If the time comes to optimize I can `import csv` directly and improve performance. But nothing beats it for prototyping. Are there better options in this space?
- maest 7y agoGenuine question - would you be willing to spend money for a better version of pandas? Better in some generic sense of lighter, faster, better API. I share your implied concern that pandas can be quite large and I personally disagree with a lot of the design decisions when it comes to the pandas API, but building an alternative tool would be a full time job. Unfortunately, there is no mechanism to support Python library developers and the expectation is for Python libraries to be free. I'm curious how many people would be ok paying for a Python library.
- _coveredInBees 7y agoI think that would be an uphill battle and very hard to succeed financially. I agree with you regarding the API being a mess, but pandas is so heavily entrenched in the datascience space (in Python land) that it is almost impossible for a free replacement to take over, let a lone a paid library.
- whitehouse3 7y agoAnd pandas is valuable particularly because it has so many users. I'd worry that a paid product would stagnate over time, or change to meet the needs of its largest customers, leaving me behind. I go out of my way to support open source projects. Closed source would be a much harder sell.
- deleted 7y ago[deleted]
- psv1 7y agoThe pandas wrappers around matplotlib are convenient but for anything that needs customising, you'll need to reach for the full matplotlib API anyway.
- min2bro 7y agoMost of the things like ticks and lims are covered which is above basics. But if you are looking for annotation or animations then you need coding in matplotlib though
- zer0faith 7y agoIt shows how to generate the different charts but it doesn't show you how to save them as a image.
- codeulike 7y agoI would have thought if you focused on bamboo leaves as the main visual motif then that would keep their attention.
- Dowwie 7y agoOther graphing libs for jupyter notebooks include: - Bokeh - Plotly - Seaborn These libraries were built to improve upon matplotlib or each other, weren't they? Yet, people continue to reach for "the original" ¯\(ツ)/¯
- fr1tkot 7y agoBokeh and Plotly obviously do much, much more than matplotlib, and if you want what they provide, you would go for those. Seaborn is more presentable-looking by default and easier to get things laid out in. I personally haven't used straight-up matplotlib for a long time.
- psv1 7y agoSeaborn isn't usable without matplotlib, nor does it aim to be. It gives you simple high-level calls and as soon as you need to tweak your plot you're back to matplotlib. (Similar to the pandas plotting shown in the article actually.) Bokeh is nice. And has made huge improvements over the past year or two. But it still doesn't directly compete with matplotlib because it's more focused on interactive plots.
- lazzlazzlazz 7y agoBokeh and Seaborn are very, very thin skins over matplotlib, and honestly don't improve the user experience at all. Only Altair has changed things for me.
- psv1 7y agoBokeh is not a skin over matplotlib.
- wodenokoto 7y agoBokehs rendering backend is bokehJS https://bokeh.pydata.org/en/latest/docs/dev_guide/setup.html https://bokeh.pydata.org/en/latest/docs/dev_guide/setup.html
- psv1 7y agoThe matlab plotting syntax got transferred to Python through matplotlib and got very deeply ingrained - was first, got popular, built into pandas and statsmodels, foundation of seaborn etc. Recently I saw a snippet of Julia code that uses "pyplot", I assume because people find it familiar and convenient. That API just refuses to die.
- j88439h84 7y agoPandas should listen to the unix philosophy a bit and remove its plotting API.
- mayankkaizen 7y agoDoes anybody here think that Pandas API design is ugly and inconsistent? It feels like hack after hack.
- WilliamEdward 7y agoI really only use Pandas for DataFrame structures. Doesn't really bother me if the rest of it is bad.
- bllguo 7y agoabsolutely. pandas is just something i put up with to be able to use everything else in python, i'd drop it in a heartbeat.
- lazzlazzlazz 7y agoI strongly recommend Altair (https://altair-viz.github.io/ https://altair-viz.github.io/) as an extremely Pandas-friendly alternative approach to data visualization. It's the first library that has successfully "hidden" the ugly, gnarled matplotlib layer underneath for me. It also looks killer.
- prepend 7y agoI like Altair, but it still has some annoying missing features like the inability to caption and footnote charts. Or the inability to format filters like sliders. It makes nice looking charts in html/d3, but is a hassle to save a real image because it requires chrome or Firefox. Which happens to not work in my CI environment. So at least matplotlib can save png without needing a bunch of stuff.
- piccolbo 7y agoAdd lack of support of polar coordinates. But every lib started immature, and altair is quite new. I think they could use a few good PRs though.
- piccolbo 7y agoSecond that but there is no matplotlib underneath AFAIK. It does html based interactive graphs using a variant of the grammar of graphics, with extensions for interactions. Grammar of graphics means a great, proven (see ggplot) compromise of power and simplicity. <shameless plug> If you need a library of one-liners built on top of altair (that is if you need some standard stats graph) I wrote altair_recipes (https://github.com/piccolbo/altair_recipes/ https://github.com/piccolbo/altair_recipes/ or pip install altair_recipes) for that. </shameless plug>
- Tycho 7y agoI recommend reading the official docs. I think they improved the plotting interface recently, and I learned a lot from reading through the guide: https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html https://pandas.pydata.org/pandas-docs/stable/user_guide/visu...
- tempodox 7y agoThe name “Pandas” is really misleading, especially in the title of this article. It's missing the phrase, “No animals were harmed in the making of these graphs”.
- scarby2 7y agoI had no idea what Pandas was (other than the plural of the cute fluffy creature). I was really hoping this was going to talk about how to use panda images to visualize data!