matplotlib color cycle is replaced by Tableau classic 10 color scheme which looks less saturated and more pleasing to eyes.
Other available color schemes for multi-line plots are ColorBrewer Set 1 and Tableau classic 20.
For more information on these color schemes, see documentation of palettable.
mpltex also provide a way to generate highly configurable line styles with colors, line types, and line markers.
Hollow markers are supported.
$ pip install mpltex
- matplotlib. Can be installed via
pip install matplotlib.
- palettable. Can be
pip install palettable.
Examples and sample plots can be found here.
To use mpltex, just add one of
mpltex decorators before your plot functions.
import mpltex @mpltex.acs_decorator def myplot(): # plot images by matplotlib ... # Save the image. Give a file name without extension. # You can also save figure outside your_plot if you like. fig.save_fig('/path/to/save/fig/figname') # Then use your_plot in a normal way. myplot()
And it will create a plot ready for publishing in journals published by American Chemical Society (ACS).
mpltex.acs_decorator: output EPS images for publishing in ACS (American Chemical Society).
mpltex.aps_decorator: output EPS images for publishing in APS (American Physical Society).
mpltex.rsc_decorator: output EPS images for publishing in RSC (Royal Society of Chemistry).
mpltex.presentation_decorator: output PDF images for presentation slides (Keynote).
mpltex.web_decorator: output PNG images for web pages.
mpltex also provides several helper functions to facilitate production of specific type of images.
Following codes will produce a set of line arts with cycled line styles with the help of
Note that since version 0.5,
linestyles is a shorthand for
import matplotlib.pyplot as plt import mpltex @mpltex.acs_decorator def myplot(): # ... # generate data x and y fig, ax = plt.subplots(111) # The default line style is iterating over # color, line, and marker with hollow types. linestyles = mpltex.linestyles() # equivalently # linestyles = mpltex.linestyle_generator() for i in range(number_of_lines): ax.plot(x[i], y[i], label=str(i), **next(linestyles) ax.locator_params(nbins=5) # limit the number of major ticks ax.legend(loc='best') # show legend in a best location fig.tight_layout(pad=0.1) # make layout as tight as possible fig.savefig('/path/to/save/fig/figname')
Fork the project at github.com and file a pull request.