If you've done any plotting in python, you've almost certainly used matplotlib. While it offers a simple approach to making plots, they are sometimes... well they can be a bit ugly, by default.
I'll go over two quick tips to give your plots a little more personality:
- Replacing the default styles
- Making prettier titles
Note There are plenty of other plotting options with their own styles (seaborn, plotly, bokeh, etc.), but matplotlib is the most widely used, so that's what I'll focus on
You can skip to the repl.it below to play around with these styles!
Next time you type in that import statement, consider adding just one more line:
import matplotlib.pyplot as plt plt.style.use('ggplot')
Now when you make a plot, it will use the styles found in ggplot, a popular plotting library in R.
There are plenty of other options, such as fivethirtyeight and seaborn-colorblind!
Note: If you don't want to apply one style to every plot, you can do:
with plt.style.context('ggplot'): plt.plot(x, y)
Matplotlib puts titles in the center, right at the top. Did you know you can move that title around? Did you know that you can have multiple titles? We can use both to make nicer titles:
plt.title("The Main Title", loc='left', fontsize=18) plt.title("a subtitle", loc='right', fontsize=13, color='grey')
If you have something plotted already, then this moves your main title to the left, and adds a smaller and greyed-out subtitle on the right. It's a great way to give your plots more context, and make them look better!
I'll even leave you with a function that makes this easier to implement:
def fancy_titles(t1, t2, ax=None): if ax: ax.set_title(t1, loc='left', fontsize=18) ax.set_title(t2, loc='right', fontsize=13, color='grey') else: plt.title(t1, loc='left', fontsize=18) plt.title(t2, loc='right', fontsize=13, color='grey') plt.plot(x, y) fancy_titles("A Cool Title", "a cooler subtitle")
Lastly, here's a repl.it, so you can play around with different styles: