Giter Club home page Giter Club logo

nicholasmamo / multiplex-plot Goto Github PK

View Code? Open in Web Editor NEW
107.0 6.0 16.0 96.51 MB

Multiplex: visualizations that tell stories—A Python library to create and annotate beautiful network graph visualizations, text visualizations and more.

Home Page: https://nicholasmamo.github.io/multiplex-plot/

License: GNU General Public License v3.0

Python 99.01% Shell 0.25% Makefile 0.12% Batchfile 0.14% HTML 0.11% CSS 0.36%
matplotlib python natural-language-processing information-retrieval text-visualization data-science data-visualisation network-visualization graphs graph-visualization

multiplex-plot's Introduction

Multiplex

Multiplex

Visualizations should tell a story, and tell it in a beautiful way. Multiplex is a visualization library for Python built on these principles using matplotlib. This library aims to make it as easy as possible for you to transform data into beautiful visualizations that tell a story.

The instructions in this README.md file will get you a copy of the project up and running. For use-cases of Multiplex, check out the Jupyter Notebook examples. To read more about Multiplex, read the documentation.

Who is Multiplex for?

Multiplex is aimed at data scientists, researchers, students and all those who work with data and are familiar with Python.

Why should I use Multiplex?

If Multiplex is based on matplotlib, why not use matplotlib directly?

Multiplex does not replace matplotlib. Anything that you can do with Multiplex, you can also do with matplotlib.

Multiplex makes it easier to create beautiful visualizations. This is achieved by providing:

  • 4 custom matplotlib styles;
  • Functionality to caption visualizations;
  • Functionality to annotate any visualization with text; and
  • New types of visualizations not available in matplotlib:
    • 100% bar chart,
    • Network graph,
    • Slope graph,
    • Population chart, and
    • Text-only visualizations.

Multiplex automatically lays out your data so that you can focus on telling your story.

How do I use Multiplex?

Prerequisites

Multiplex is based on matplotlib. You can install matplotlib using pip: python -m pip install -U matplotlib. More details about it are available in matplotlib's repository.

Multiplex also uses the following libraries in certain visualizations:

Installing

You can install Multiplex using pip: python -m pip install -U multiplex-plot.

Quickstart

Creating visualizations with Multiplex is very easy. For example, you can create a text-only visualization in just 10 lines of code, including all styling options:

import matplotlib.pyplot as plt
from multiplex import drawable
plt.style.use('styles/multiplex.style')
viz = drawable.Drawable(plt.figure(figsize=(10, 2)))
paragraph = """Anthony Lopes is a Portuguese professional footballer who plays for Olympique Lyonnais as a goalkeeper. He came through the youth ranks at Lyon, being called to the first team in 2011 and making his debut the following year."""
style = { 'align': 'justify', 'fontfamily': 'serif', 'alpha': 0.9, 'lineheight': 1.25, 'lpad': 0.1, 'rpad': 0.1 }
viz.draw_text_annotation(paragraph, **style)
viz.set_title('Profile: Anthony Lopes', loc='left')
viz.set_caption("""Wikipedia is a useful repository to get more information about anything. Below is an excerpt from the Wikipedia profile of footballer Anthony Lopes.""")
viz.show()

Example text annotation

All it takes to draw a simple text visualization is 10 lines of code:

  1. 3 lines to import matplotlib, Multiplex and the visualization style;
  2. 3 lines to set up the visualization object, load the data and set the style;
  3. 4 lines to draw and show the visualization, including a title and caption.

Multiplex does all the tedious work for you: the layout, alignment and more. At the same time, you can take as much control as you want.

Using Multiplex is very easy, but you can get started by checking out the Jupyter Notebook tutorials for an easy-to-follow tour of Multiplex's capabilities.

Example visualizations

Example bar chart

Example slope graph

Example time series

Example network graph

Built with

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Authors

License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details

Acknowledgments

multiplex-plot's People

Contributors

nicholasmamo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

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