Join the chat at build status

pyfolio is a Python library for performance and risk analysis of financial portfolios developed by Quantopian Inc. It works well with the Zipline open source backtesting library.

At the core of pyfolio is a so-called tear sheet that consists of various individual plots that provide a comprehensive image of the performance of a trading algorithm. Here is an example of a tear sheet of a the Zipline algo included as one of our example notebooks: example tear 0 example tear 1 example tear 2 example tear 3 example tear 4 example tear 6 example tear 7 example tear 5

See also slides of a recent talk about pyfolio.


(Optional) Virtual Environment

For development on pyfolio itself, you might want to use a virtual environment to avoid dependency conflicts between pyfolio and other python projects you have. To get set up with a virtual env, run:

mkvirtualenv pyfolio

before running the install commands below.

To install pyfolio via pip issue the following command:

pip install pyfolio

For development, clone the git repo and run python develop and edit the library files directly. Make sure to reload or restart the IPython kernel when you make changes.

pyfolio has the following dependencies: - numpy - scipy - pandas - matplotlib - seaborn - pymc3 (optional) - zipline (optional; requires master, not 0.7.0)

Some of Pyfolio's functionality, such as the Bayesian tearsheet, requires PyMC3 and Theano. To get set up, you can run:

pip install theano
pip install git+

If you are on OSX and using a non-framework build of python you may need to set your backend:

echo "backend: TkAgg" > ~/.matplotlib/matplotlibrc


A good way to get started is to run the examples in a Jupyter notebook.

To get set up with an example, you can:

Run a Jupyter notebook server via:

jupyter notebook

From the notebook list page(usually found at http://localhost:8888/), navigate over to the examples directory, and open any file with a .ipynb extension.

Execute the code in a notebook cell by clicking on it and hitting Shift+Enter.


If you find a bug, feel free to open an issue on our github tracker.

You can also join our mailing list.


If you want to contribute, a great place to start would be the help-wanted issues.


For a full list of contributors, see