I needed jupyter as a medium of information sharing in my team but matplotlib has just too much of a learning curve to expect everyone to adopt it as tribal knowledge considering this was not a core part of their job. I found a compromise using the wonderful jupyter_pivottablejs library:<p><a href="https://github.com/nicolaskruchten/jupyter_pivottablejs" rel="nofollow">https://github.com/nicolaskruchten/jupyter_pivottablejs</a><p>Thus allowing you to tweak visualizations on the fly without touching code. My workflow is:<p>sql -> dataframe -> pivottable<p>This is not a dig at matplotlib which is undeniably powerful. More like an alternative for those of us that want to convey good-enough flexible interactive visualizations without getting into the minutia with matplotlib
State of visualization in Python by Jake Vanderplas:<p><a href="https://speakerdeck.com/jakevdp/pythons-visualization-landscape-pycon-2017" rel="nofollow">https://speakerdeck.com/jakevdp/pythons-visualization-landsc...</a>
Another useful guide is Ben Root's Anatomy of Matplotlib tutorial: <a href="https://github.com/WeatherGod/AnatomyOfMatplotlib" rel="nofollow">https://github.com/WeatherGod/AnatomyOfMatplotlib</a><p>I'm a bit biased, as I wrote this particular section (most of the rest is Ben's work), but the plotting method overview is a very useful cheatsheet: <a href="http://nbviewer.jupyter.org/github/WeatherGod/AnatomyOfMatplotlib/blob/master/AnatomyOfMatplotlib-Part2-Plotting_Methods_Overview.ipynb" rel="nofollow">http://nbviewer.jupyter.org/github/WeatherGod/AnatomyOfMatpl...</a><p>It gives you a compact visual representation of what the main plotting methods do and the differences between them.
I'm picking up reinformencent deep learning and documenting progress with jupyter notebook.<p>Improving my python on the way ( and knowing numpy and matplotlib) has been a great experience the last 2 days. Although the progress seems to be "slow" ( translating formulas, n armed bandits to code ...). My best tip: download cheatsheets for: numpy, pandas, matplotlib, python, ... has been good for getting to know the language and libraries for ML.<p>So this tutorial/information will be put in good hands at a very opportunistic time ;) Thanks!
A cool feature I recently learned about of matplotlib is that it supports LaTeX for text rendering [1]. You can go as far as rendering LaTeX math formatting for titles/labels, or just have the plot fonts match your text and/or figure captions so it fits nicely into your paper.<p>[1] <a href="http://matplotlib.org/users/usetex.html" rel="nofollow">http://matplotlib.org/users/usetex.html</a>
matplotlib is an example of unnecessarily complex and confusing "organic" API. That's why there is so much resentment to use it; trivial things need non-trivial internal understanding and confusing boilerplates.
One aspect of matplotlib that is often overlooked is the animation capabilities. There should be more animations in data-sciency stuff (there's a reason small gifs spread so easilly on the internet).
I want to vouch for Matplotlib, I can see it gets a bad reputation when compared to these new shiny frameworks like plotly, but it's vastly more powerful.<p>If you are a researcher and you want to publish in B&W (something still very common in fields like Physics and Astrophysics), no other plotting library for Python comes near.<p>You can choose filling patterns, line patterns, annotate with LaTeX, etc. And, although hard, you can make your final product look as polished and perfect as you want (and as you are willing to take the time). No other library for Python comes near in these aspects.<p>There are simpler tools and it's easy to get a good enough looking plot, but if you want to get that perfect one exactly as you need, there's no way around Matplotlib (at least amongst the well known Python plotting libraries).
MPL is my go-to graphing tool, but admittedly it's probably because I learned it first and now it's a habit. Almost every Python / Jupyter tutorial starts you out with MPL. But there are two things I like about it:<p>1. Easy to embed MPL graphics in Tkinter GUI's. Granted, my programs are not intended to be professional looking, but if I want to write stand alone software, e.g., for an automated experiment or industrial test, it invariably needs one or two graphs in a dialog.<p>2. If what you want is a static graph (no interaction), that's what MPL produces. With other packages that I've tried, every graph is its own JavaScript program running in the browser. A Jupyer notebook with dozens of graphs begins to hog down my computer.
This looks like a great resource! I am currently picking up deep learning and one of the things that they understandably don't cover much is how to use matplotlib.<p>But being able to visualise the problem or your solution is so important to build more intuition and become a better wannabe data scientist.
I used matplotlib for a very long time. Now, I suggest using bokeh<p><a href="http://bokeh.pydata.org/" rel="nofollow">http://bokeh.pydata.org/</a><p>I am finding the API a lot cleaner than Matplotlib, and it is very nice to have the ability to do integrated interactive plots in Jupyter.
Biggest matplotlib frustration:<p>I've spent hours trying to get matplotlib to render on screen on OSX, and followed countless stackoverflow and blog posts instructions.<p>I still can't.
Anyone know of a good tutorial for plotnine? I'm new to graphing in python and am attracted to this because it should crossover to ggplot2 in R (which I'd also like to learn, but doing python for now). Will ggplot2 tutorials for R be enough to get going with plotnine?
A fantastic and sorely needed tutorial for orienting matplotlib into modern usage. I really appreciated his description of the matlab-style API vs the object oriented API. Also how to use it with pandas' shortcut methods.
from my personal experience, mpl's 3D plotting capabilities are pretty terrible (just try log-scaling your axes) and looking into Mayavi as a replacement has been on the list for a while.