Git Product home page Git Product logo

mpltex's Introduction

mpltex

mpltex is a python package for producing publication quality images using matplotlib, which is inspired by Olga Botvinnik's python package prettyplotlib. Tutorial can be found at www.yxliu.group.

The internal matplotlib color cycle is replaced by Tableau classic 10 color scheme which looks less saturated and more pleasing to eyes. The colors of this scheme is reordered, which is different from current version of matplotlib v3. 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.

mpltex should work properly both in Python 2 and 3. If not, please file an issue at Github.

Quickstart

1. Install

$ pip install mpltex

Required Packages

  • matplotlib. Can be installed via pip install matplotlib.
  • palettable. Can be installed via pip install palettable.

2. Usage

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).

Available Decorators

  • 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 mpltex.linestyle_generator function. Note that since version 0.5, linestyles is a shorthand for linestyle_generator.

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')

Contribute

Fork the project at github.com and file a pull request.

Links

mpltex's People

Contributors

liuyxpp avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.