{"id":22754563,"url":"https://github.com/braniii/prettypyplot","last_synced_at":"2026-02-27T20:37:13.327Z","repository":{"id":64577126,"uuid":"350406950","full_name":"braniii/prettypyplot","owner":"braniii","description":"Publication-ready figures made easy","archived":false,"fork":false,"pushed_at":"2025-11-25T10:47:15.000Z","size":11696,"stargazers_count":11,"open_issues_count":1,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-02-21T09:01:59.727Z","etag":null,"topics":["matplotlib","scientific-visualization"],"latest_commit_sha":null,"homepage":"https://braniii.github.io/prettypyplot/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/braniii.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"docs/contributing.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":".zenodo.json","notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-03-22T16:07:34.000Z","updated_at":"2026-02-21T02:35:40.000Z","dependencies_parsed_at":"2024-05-17T21:39:33.668Z","dependency_job_id":"e2c93a3e-3505-4830-a588-f14a4def7cb9","html_url":"https://github.com/braniii/prettypyplot","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/braniii/prettypyplot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/braniii%2Fprettypyplot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/braniii%2Fprettypyplot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/braniii%2Fprettypyplot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/braniii%2Fprettypyplot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/braniii","download_url":"https://codeload.github.com/braniii/prettypyplot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/braniii%2Fprettypyplot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29912371,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T19:37:42.220Z","status":"ssl_error","status_checked_at":"2026-02-27T19:37:41.463Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["matplotlib","scientific-visualization"],"created_at":"2024-12-11T06:17:51.014Z","updated_at":"2026-02-27T20:37:13.323Z","avatar_url":"https://github.com/braniii.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg\n    src=\"https://raw.githubusercontent.com/braniii/prettypyplot/main/docs/gallery/images/logo_large.svg\" width=\"500\"\n  /\u003e\n\n  \u003cp\u003e\n    \u003ca href=\"https://zenodo.org/badge/latestdoi/350406950\" alt=\"DOI\"\u003e\n        \u003cimg src=\"https://zenodo.org/badge/350406950.svg\" alt=\"DOI\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/astral-sh/ruff\" alt=\"wemake-python-styleguide\" \u003e\n        \u003cimg src=\"https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/braniii/prettypyplot/actions/workflows/pytest.yml\" alt=\"Pytest\" \u003e\n        \u003cimg src=\"https://github.com/braniii/prettypyplot/actions/workflows/pytest.yml/badge.svg?branch=main\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://codecov.io/gh/braniii/prettypyplot\" alt=\"Code coverage\"\u003e\n        \u003cimg src=\"https://codecov.io/gh/braniii/prettypyplot/branch/main/graph/badge.svg\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://pypi.org/project/prettypyplot\" alt=\"PyPI\" \u003e\n        \u003cimg src=\"https://img.shields.io/pypi/v/prettypyplot\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://anaconda.org/conda-forge/prettypyplot\" alt=\"conda version\"\u003e\n        \u003cimg src=\"https://img.shields.io/conda/vn/conda-forge/prettypyplot\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://pepy.tech/project/prettypyplot\" alt=\"Downloads\" \u003e\n        \u003cimg src=\"https://pepy.tech/badge/prettypyplot\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://img.shields.io/pypi/pyversions/prettypyplot\" alt=\"PyPI - Python Version\"\u003e\n        \u003cimg src=\"https://img.shields.io/pypi/pyversions/prettypyplot\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/braniii/prettypyplot/-/blob/main/LICENSE\" alt=\"PyPI - License\" \u003e\n        \u003cimg src=\"https://img.shields.io/pypi/l/prettypyplot\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://braniii.github.io/prettypyplot\" alt=\"Doc\" \u003e\n        \u003cimg src=\"https://img.shields.io/badge/mkdocs-Documentation-brightgreen\" /\u003e\u003c/a\u003e\n  \u003c/p\u003e\n\n  \u003cp\u003e\n    \u003ca href=\"https://braniii.github.io/prettypyplot\"\u003eDocs\u003c/a\u003e •\n    \u003ca href=\"#features\"\u003eFeatures\u003c/a\u003e •\n    \u003ca href=\"#Installation\"\u003eInstallation\u003c/a\u003e •\n    \u003ca href=\"https://braniii.github.io/prettypyplot/gallery\"\u003eGallery\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\n\n# prettypyplot\n\nThe documentation including an gallery can be found [here](https://braniii.github.io/prettypyplot).\n\nThis is a wrapper package for matplotlib to achieve more easily pretty figures.\nIf you are looking for something complete, this project is nothing for you\nbut maybe [seaborn](https://seaborn.pydata.org/). The main aspect of this\nproject is to help me syncing my rcParams files and to stop copy-pasting so\nmuch code.\n\nThe aim of this project is to simplify the generation of some simple\npre-defined figures. Almost all code is inspired or taken from the\n[matplotlib gallery](https://matplotlib.org/gallery/index.html). If you are a\npower user or interested in generating complex figures, this packages is not\nment for you and you should better take a look in the matplotlib gallery\ndirectly.\n\nThis project is in an alpha stage, hence it is neither stable nor ready for\nproduction.\n\u003e **CAUTION**:\n\u003e Starting from version 1.0.0 (which is far in the future) API-breaking\n\u003e changes will be made only in major releases. Until then, it can be changed\n\u003e in every minor release (see [changelog](#changelog)).\n\n## Features\n\nThe most notable features are:\n\n- Tested with matplotlib `3.3`-`3.10`\n- figsize specifies size of canvas. So labels, ticks or colorbars are not counted.\n- Nice top-aligned outter legends\n- New colors\n\n## Usage\n\nThis package uses an syntax very close to matplotlib. Hence, it should be\nstraight forward to use it. Instead of calling a function on the axes itself,\none needs to pass here the axes as an argument (args or kwargs).\n\n### Installation\n\n```python\npython3 -m pip install --upgrade prettypyplot\n```\nor\n```python\nconda install -c conda-forge prettypyplot\n```\nor for the latest dev version\n```python\npython3 -m pip install git+https://github.com/braniii/prettypyplot.git\n```\n\n### Usage\n\n```python\nimport matplotlib.pyplot as plt\nimport prettypyplot as pplt\n\npplt.use_style()\nfig, ax = plt.subplots()\n...\npplt.plot(ax=ax, x, y)\npplt.savefig(output)\n```\n\n### Known Bugs\n\n- `plt.subplots_adjust()` does not work with `pplt.savefig(use_canvas_size=True)`\nIf you find one, please open an issue.\n- `pplt.savefig(use_canvas_size=True)` is not compatible with a grid of subplots\n\n### Known Workarounds\n\nThe method `pyplot.subplots_adjust()` is not compatible with the option\n`use_canvas_size` in `prettypyplot.plot.savefig`,\nuse instead:\n```python\n# this doesn't work, use instead gridspec\nfig.subplots_adjust(hspace=0)\n# use this instead\nfig, axs = plt.subplots(..., gridspec_kw={'hspace': 0.000})\n```\n\n## Comparison to `matplotlib`\n\n\u003ctable\u003e\n    \u003ctr width=\"700\" valign=\"top\"\u003e\n        \u003ctd\u003e\n            \u003ccode\u003ematplotlib.pyplot.plot\u003c/code\u003e\u003cbr\u003e\n            \u003cimg src=\"https://braniii.github.io/prettypyplot/gallery/comparison/mpl_plot.png\" width=\"350\"\u003e\n        \u003c/td\u003e\n        \u003ctd\u003e\n            \u003ccode\u003eprettypyplot.plot\u003c/code\u003e\u003cbr\u003e\n            \u003cimg src=\"https://braniii.github.io/prettypyplot/gallery/comparison/default_plot.png\" width=\"350\"\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr width=\"700\" valign=\"top\"\u003e\n        \u003ctd\u003e\n            \u003ccode\u003ematplotlib.pyplot.legend\u003c/code\u003e\u003cbr\u003e\n            \u003cimg src=\"https://braniii.github.io/prettypyplot/gallery/comparison/mpl_plot_legend.png\" width=\"350\"\u003e\n        \u003c/td\u003e\n        \u003ctd\u003e\n            \u003ccode\u003eprettypyplot.legend\u003c/code\u003e\u003cbr\u003e\n            \u003cimg src=\"https://braniii.github.io/prettypyplot/gallery/comparison/default_plot_legend.png\" width=\"350\"\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr width=\"700\" valign=\"top\"\u003e\n        \u003ctd\u003e\n            \u003ccode\u003ematplotlib.pyplot.imshow\u003c/code\u003e\u003cbr\u003e\n            \u003cimg src=\"https://braniii.github.io/prettypyplot/gallery/comparison/mpl_imshow.png\" width=\"350\"\u003e\n        \u003c/td\u003e\n        \u003ctd\u003e\n            \u003ccode\u003eprettypyplot.imshow\u003c/code\u003e\u003cbr\u003e\n            \u003cimg src=\"https://braniii.github.io/prettypyplot/gallery/comparison/default_imshow.png\" width=\"350\"\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr width=\"700\" valign=\"top\"\u003e\n        \u003ctd\u003e\n            \u003ccode\u003ematplotlib.pyplot.colorbar\u003c/code\u003e\u003cbr\u003e\n            \u003cimg src=\"https://braniii.github.io/prettypyplot/gallery/comparison/mpl_imshow_cbar.png\" width=\"350\"\u003e\n        \u003c/td\u003e\n        \u003ctd\u003e\n            \u003ccode\u003eprettypyplot.colorbar\u003c/code\u003e\u003cbr\u003e\n            \u003cimg src=\"https://braniii.github.io/prettypyplot/gallery/comparison/default_imshow_cbar.png\" width=\"350\"\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n## Roadmap:\n\nThe following list is sorted from *near future* to *hopefully ever*.\n\n- [x] add pytest\n- [x] add search functionality in doc\n- [x] refactoring code to improve readabilty\n- [x] add package to conda_forge\n- [x] add gallery page\n- [x] improve `plt.suplots()` behaviour together with `pplt.savefig()`\n- [ ] add more colorpalettes\n- [ ] add countour line plot\n- [ ] add [axes_grid](https://matplotlib.org/3.1.1/tutorials/toolkits/axes_grid.html) examples\n- [ ] setup widths and scaling factors for beamer and poster mode\n- [ ] tweak all function to enable `STYLE='minimal'`\n- [ ] implement tufte style\n\n## Building Documentation:\n\nThe doc is based on [mkdocs](https://mkdocs.org) and can be created by\n```bash\n# installing all dependencies\npython -m pip install -e .[docs]\n\n# serve interactively\npython -m mkdocs serve\n```\n\n## Similar Projects\n\n- [seaborn](https://seaborn.pydata.org/)\n\n## Citing Prettypyplot\n\nIf you want to cite prettypyplot in scientific work please use:\n\u003e **Prettypyplot: publication ready matplotlib figures made simple**  \n\u003e D. Nagel, **2022**. Zenodo:\n\u003e [10.5281/zenodo.7278312](https://doi.org/10.5281/zenodo.7278312)\n\n## Credits:\n\nIn alphabetical order:\n\n- [colorcyclepicker](https://colorcyclepicker.mpetroff.net/)\n- [coolors](https://coolors.co/)\n- [matplotlib](https://matplotlib.org/)\n- [prettyplotlib](https://github.com/olgabot/prettyplotlib)\n- [realpython](https://realpython.com/)\n- [viscm](https://github.com/matplotlib/viscm)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbraniii%2Fprettypyplot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbraniii%2Fprettypyplot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbraniii%2Fprettypyplot/lists"}