{"id":13910793,"url":"https://github.com/NicholasMamo/multiplex-plot","last_synced_at":"2025-07-18T10:31:23.152Z","repository":{"id":37677347,"uuid":"228419977","full_name":"NicholasMamo/multiplex-plot","owner":"NicholasMamo","description":"Multiplex: visualizations that tell stories—A Python library to create and annotate beautiful network graph visualizations, text visualizations and more.","archived":false,"fork":false,"pushed_at":"2022-12-08T11:33:19.000Z","size":98826,"stargazers_count":109,"open_issues_count":4,"forks_count":16,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-10-18T13:15:44.455Z","etag":null,"topics":["data-science","data-visualisation","graph-visualization","graphs","information-retrieval","matplotlib","natural-language-processing","network-visualization","python","text-mining","text-visualisation","text-visualization","visualisation","visualizations","viz","vizualisation"],"latest_commit_sha":null,"homepage":"https://nicholasmamo.github.io/multiplex-plot/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NicholasMamo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-12-16T15:42:43.000Z","updated_at":"2024-10-01T23:35:07.000Z","dependencies_parsed_at":"2023-01-25T12:45:09.143Z","dependency_job_id":null,"html_url":"https://github.com/NicholasMamo/multiplex-plot","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicholasMamo%2Fmultiplex-plot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicholasMamo%2Fmultiplex-plot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicholasMamo%2Fmultiplex-plot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicholasMamo%2Fmultiplex-plot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NicholasMamo","download_url":"https://codeload.github.com/NicholasMamo/multiplex-plot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226388814,"owners_count":17617334,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-science","data-visualisation","graph-visualization","graphs","information-retrieval","matplotlib","natural-language-processing","network-visualization","python","text-mining","text-visualisation","text-visualization","visualisation","visualizations","viz","vizualisation"],"created_at":"2024-08-07T00:01:45.709Z","updated_at":"2024-11-25T19:32:13.210Z","avatar_url":"https://github.com/NicholasMamo.png","language":"Python","readme":"![Multiplex](https://raw.githubusercontent.com/NicholasMamo/multiplex-plot/master/assets/logo.png)\n\n# Multiplex\n\nVisualizations should tell a story, and tell it in a beautiful way.\nMultiplex is a visualization library for Python built on these principles using [matplotlib](https://github.com/matplotlib/matplotlib/).\nThis library aims to make it as easy as possible for you to transform data into beautiful visualizations that tell a story.\n\n\u003e The instructions in this README.md file will get you a copy of the project up and running.\n\u003e For use-cases of Multiplex, check out the [Jupyter Notebook examples](https://github.com/NicholasMamo/multiplex-plot/tree/master/examples).\n\u003e To read more about Multiplex, read the [documentation](https://nicholasmamo.github.io/multiplex-plot/).\n\n## Who is Multiplex for?\n\nMultiplex is aimed at data scientists, researchers, students and all those who work with data and are familiar with Python.\n\n## Why should I use Multiplex?\n\n\u003e If Multiplex is based on matplotlib, why not use matplotlib directly?\n\nMultiplex does not replace matplotlib.\nAnything that you can do with Multiplex, you can also do with matplotlib.\n\nMultiplex makes it easier to create beautiful visualizations.\nThis is achieved by providing:\n\n* [4 custom matplotlib styles](https://github.com/NicholasMamo/multiplex-plot/blob/master/examples/0.%20Styles.ipynb);\n* Functionality to caption visualizations;\n* Functionality to annotate any visualization with text; and\n* New types of visualizations not available in matplotlib:\n\t* 100% bar chart,\n\t* Network graph,\n    * Slope graph,\n    * Population chart, and\n\t* Text-only visualizations.\n\nMultiplex automatically lays out your data so that you can focus on telling your story.\n\n## How do I use Multiplex?\n\n### Prerequisites\n\nMultiplex is based on [matplotlib](https://github.com/matplotlib/matplotlib).\nYou can install matplotlib using pip: `python -m pip install -U matplotlib`.\nMore details about it are available in [matplotlib's repository](https://github.com/matplotlib/matplotlib).\n\nMultiplex also uses the following libraries in certain visualizations:\n\n* [networkx](https://github.com/networkx/networkx)\n* [pandas](https://github.com/pandas-dev/pandas)\n\n### Installing\n\nYou can install Multiplex using pip: `python -m pip install -U multiplex-plot`.\n\n### Quickstart\n\nCreating visualizations with Multiplex is very easy.\nFor example, you can create a text-only visualization in just 10 lines of code, including all styling options:\n\n```python\nimport matplotlib.pyplot as plt\nfrom multiplex import drawable\nplt.style.use('styles/multiplex.style')\nviz = drawable.Drawable(plt.figure(figsize=(10, 2)))\nparagraph = \"\"\"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.\"\"\"\nstyle = { 'align': 'justify', 'fontfamily': 'serif', 'alpha': 0.9, 'lineheight': 1.25, 'lpad': 0.1, 'rpad': 0.1 }\nviz.draw_text_annotation(paragraph, **style)\nviz.set_title('Profile: Anthony Lopes', loc='left')\nviz.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.\"\"\")\nviz.show()\n```\n\n![Example text annotation](https://raw.githubusercontent.com/NicholasMamo/multiplex-plot/master/examples/exports/2-simple-text.png)\n\nAll it takes to draw a simple text visualization is 10 lines of code:\n\n1. 3 lines to import matplotlib, Multiplex and the visualization style;\n2. 3 lines to set up the visualization object, load the data and set the style;\n3. 4 lines to draw and show the visualization, including a title and caption.\n\nMultiplex does all the tedious work for you: the layout, alignment and more.\nAt the same time, you can take as much control as you want.\n\nUsing Multiplex is very easy, but you can get started by checking out the [Jupyter Notebook tutorials](https://github.com/NicholasMamo/multiplex-plot/tree/master/examples) for an easy-to-follow tour of Multiplex's capabilities.\n\n## Example visualizations\n\n![Example bar chart](https://raw.githubusercontent.com/NicholasMamo/multiplex-plot/master/examples/exports/5-natural-gas.png)\n\n![Example slope graph](https://raw.githubusercontent.com/NicholasMamo/multiplex-plot/master/examples/exports/6-slope.png)\n\n![Example time series](https://raw.githubusercontent.com/NicholasMamo/multiplex-plot/master/examples/exports/3-time-series.png)\n\n![Example network graph](https://raw.githubusercontent.com/NicholasMamo/multiplex-plot/master/examples/exports/4-marvel.png)\n\n## Built with\n\n* [matplotlib](https://github.com/matplotlib/matplotlib)\n* [networkx](https://github.com/networkx/networkx)\n* [pandas](https://github.com/pandas-dev/pandas)\n\n## Versioning\n\nWe use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/NicholasMamo/multiplex-plot/tags).\n\n## Authors\n\n* **Nicholas Mamo** - *Library development* - [NicholasMamo](https://github.com/NicholasMamo)\n\n## License\n\nThis project is licensed under the GNU General Public License v3.0 - see the [LICENSE](LICENSE) file for details\n\n## Acknowledgments\n\n* [PurpleBooth](https://gist.github.com/PurpleBooth/109311bb0361f32d87a2) for this README template\n* Cole Nussbaumer Knaflic's [Storytelling with Data](http://www.storytellingwithdata.com/) for the inspiration\n","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNicholasMamo%2Fmultiplex-plot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FNicholasMamo%2Fmultiplex-plot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNicholasMamo%2Fmultiplex-plot/lists"}