{ "info": { "author": "Grid Strategy Authors", "author_email": "paul@ganssle.io", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Science/Research", "License :: OSI Approved :: Python Software Foundation License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Scientific/Engineering :: Visualization" ], "description": "# grid-strategy\n\n[![PyPI version](https://img.shields.io/pypi/v/grid-strategy.svg?style=flat-square)](https://pypi.org/project/grid-strategy/)\n[![Build Status](https://dev.azure.com/matplotlib/matplotlib/_apis/build/status/matplotlib.grid-strategy?branchName=master)](https://dev.azure.com/matplotlib/matplotlib/_build/latest?definitionId=2&branchName=master)\n[![Documentation Status](https://readthedocs.org/projects/grid-strategy/badge/?version=latest)](https://grid-strategy.readthedocs.io/en/latest/?badge=latest)\n[![codecov](https://codecov.io/gh/matplotlib/grid-strategy/branch/master/graph/badge.svg)](https://codecov.io/gh/matplotlib/grid-strategy)\n\n\nGrid-strategy is a python package that enables the user\norganize _matplotlib_ plots using different **grid strategies**.\n\n## Abstract\n\nThis package would add a mechanism for creating a grid of\nsubplots based on the number of axes to be plotted and\na strategy for how they should be arranged, with some\nsensible strategy as the default.\n\n## Detailed Description\n\nIt is often the case that you have some number of\nplots to display (and this number may be unknown\nahead of time), and want some sensible arrangement\nof the plots so that they are all roughly equally\naligned. However, the `subplots` and `gridspec`\nmethods for creating subplots require both an `x`\nand a `y` dimension for creation and population of\na grid. This package would allow users to specify a\nstrategy for the creation of a grid, and then specify\nhow many axes they want to plot, and they would\nget back a collection of axes arranged according\nto their strategy.\n\nA proof of concept was implemented for the 'squarish'\nstrategy, which arranges plots in alternating rows\nof `x` and `x-1` objects. Some examples featuring this\ntechnique:\n\n\"n=6\" \"n=7\"\n\n\"n=8\" \"n=17\"\n\nThis makes use of a `GridStrategy` object, which populates a `GridSpec`. In general, this concept can likely be implemented as a layer of abstraction *above* `gridspec.GridSpec`.\n\nSome basic strategies that will be included in the first release:\n\n- `\"Squarish\"` (name subject to change) - As implemented in the demo code above - currently this is centered, but the base `SquarishStrategy` object could have options like `justification` which could include:\n - `'center'` (default), `'left'`, `'right'` - empty spaces either center the plots or leave them ragged-left or ragged-right\n - `'fill-space'` and `fill-grow'` (names subject to change) - These would fill every column as \"fully-justified\", with `fill-space` increasing the interstitial space and `fill-grow` modifying the width of the plots themselves to fill the row.\n- `\"Rectangular\"` - Similar to `\"Squarish\"`, this would find the largest pair of factors of the number of plots and use that to populate a rectangular grid - so `6` would return a 3x2 grid, `7` would return a 7x1 grid, and `10` would return a 5x2 grid.\n\nSince many of these grid strategies would likely have at least *some* asymmetries, a mechanism for transposing any grid structure should be implemented in the base `GridStrategy` object.\n\n### Higher dimensions\n\nCurrently the package is limited to 2-dimensional\ngrid arrangements, but a \"nice-to-have\" might be\na higher-order API for `GridStrategy` that also allows\nfor the proliferation of additional *figures* (e.g.\n\"if I have more than 10 axes to plot, split them\nup as evenly as possible among `n / 10` different\nfigures\"). This would be no harder to implement\nin terms of the creation of such strategies, but\nmay be harder to work with since it would\nnecessarily spawn axes across multiple figures.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/matplotlib/grid-strategy", "keywords": "", "license": "Apache License 2.0", "maintainer": "", "maintainer_email": "", "name": "grid-strategy", "package_url": "https://pypi.org/project/grid-strategy/", "platform": "", "project_url": "https://pypi.org/project/grid-strategy/", "project_urls": { "Homepage": "https://github.com/matplotlib/grid-strategy" }, "release_url": "https://pypi.org/project/grid-strategy/0.0.1/", "requires_dist": [ "matplotlib", "numpy" ], "requires_python": ">=3.6", "summary": "A package for organizing matplotlib plots.", "version": "0.0.1" }, "last_serial": 4860349, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "3fcb42346b3c8a3ad063989b32ac075a", "sha256": "43c74e3394798dc136b8d0c2c98e2fa62467c8289751f4ef4b7c37a2475bd2f5" }, "downloads": -1, "filename": "grid_strategy-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "3fcb42346b3c8a3ad063989b32ac075a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 11184, "upload_time": "2019-02-24T08:19:21", "url": "https://files.pythonhosted.org/packages/42/11/9087f3c536651b0076cfa008be9b6e343c3bbbf18ea4bd7e2fac27e4bcde/grid_strategy-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "122e9618b2eceb35578b6679c8e2d4a3", "sha256": "d8db1c12e6f33eb55ba56a5b19f4848aae862a9a343fea422a353c46ab6ccc23" }, "downloads": -1, "filename": "grid-strategy-0.0.1.tar.gz", "has_sig": false, "md5_digest": "122e9618b2eceb35578b6679c8e2d4a3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 17239, "upload_time": "2019-02-24T08:19:23", "url": "https://files.pythonhosted.org/packages/36/a8/2822c49ef0b1daeb8a536be0602cb1fdd03d72f3ede123cfed2dabccb247/grid-strategy-0.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3fcb42346b3c8a3ad063989b32ac075a", "sha256": "43c74e3394798dc136b8d0c2c98e2fa62467c8289751f4ef4b7c37a2475bd2f5" }, "downloads": -1, "filename": "grid_strategy-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "3fcb42346b3c8a3ad063989b32ac075a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 11184, "upload_time": "2019-02-24T08:19:21", "url": "https://files.pythonhosted.org/packages/42/11/9087f3c536651b0076cfa008be9b6e343c3bbbf18ea4bd7e2fac27e4bcde/grid_strategy-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "122e9618b2eceb35578b6679c8e2d4a3", "sha256": "d8db1c12e6f33eb55ba56a5b19f4848aae862a9a343fea422a353c46ab6ccc23" }, "downloads": -1, "filename": "grid-strategy-0.0.1.tar.gz", "has_sig": false, "md5_digest": "122e9618b2eceb35578b6679c8e2d4a3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 17239, "upload_time": "2019-02-24T08:19:23", "url": "https://files.pythonhosted.org/packages/36/a8/2822c49ef0b1daeb8a536be0602cb1fdd03d72f3ede123cfed2dabccb247/grid-strategy-0.0.1.tar.gz" } ] }