# What is `scilayout`?
> [!WARNING]
> This package is in beta.
`pip install scilayout`
Scilayout is a Python package to make creating multi-panel scientific figures easier, faster, and maybe a little bit more fun. The core idea is to build figures using coordinates in **centimetres from the top left** using interactive plotting. This approach has a few main benefits:
1. The iterative process of building figures up from scratch is easier.
2. Complex layouts can be interchanged more easily.
3. Exported figure sizes are explicitly stated (in centimetres) for seamless embedding in documents.
There are many guides for Matplotlib styling for scientific publication, and there are a number of packages that make this process easier (e.g. [SciencePlots](https://github.com/garrettj403/SciencePlots)), but this `scilayout` supports the creation of figures which are 100% ready for embedding in documents.
```python
import scilayout
fig = scilayout.figure() # it's a matplotlib figure like plt.figure()
myax = fig.add_panel((1, 1, 5, 5)) # creates a panel with position specified in cm
# %%
myax.set_location((2, 10, 5, 3), method='size') # move the panel after it's been created and set it's location and dimensions based on size (5x3cm dimensions from 2cm down and 10 cm left)
```
This package is designed for people with:
- A basic understanding of `matplotlib`'s `Axes` object and how to work with it (rather than only using `plt`, the differences described [here](https://matplotlib.org/matplotblog/posts/pyplot-vs-object-oriented-interface/))
- A desire to produce figures entirely in code (example approaches described in blogposts from [brushingupscience.com](https://brushingupscience.com/2021/11/02/a-better-way-to-code-up-scientific-figures/#more-6299) and [dendwrite.substack](https://dendwrite.substack.com/p/a-complete-ish-guide-to-making-scientific))
Detailed documentation is under construction.
<!-- For more documentation, please see https://scilayout.readthedocs.io -->
Raw data
{
"_id": null,
"home_page": null,
"name": "scilayout",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "matplotlib-figures, scientific-papers, thesis-template, matplotlib-styles, python",
"author": "George Stuyt",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/56/bc/281f0056308eb75a5522286987ace1f84d42684a9b5dc5ff6ba4d81fd200/scilayout-0.1.1b1.tar.gz",
"platform": null,
"description": "# What is `scilayout`?\n\n> [!WARNING] \n> This package is in beta.\n\n`pip install scilayout`\n\nScilayout is a Python package to make creating multi-panel scientific figures easier, faster, and maybe a little bit more fun. The core idea is to build figures using coordinates in **centimetres from the top left** using interactive plotting. This approach has a few main benefits:\n\n1. The iterative process of building figures up from scratch is easier.\n2. Complex layouts can be interchanged more easily.\n3. Exported figure sizes are explicitly stated (in centimetres) for seamless embedding in documents.\n\nThere are many guides for Matplotlib styling for scientific publication, and there are a number of packages that make this process easier (e.g. [SciencePlots](https://github.com/garrettj403/SciencePlots)), but this `scilayout` supports the creation of figures which are 100% ready for embedding in documents.\n\n```python\nimport scilayout\nfig = scilayout.figure() # it's a matplotlib figure like plt.figure()\n\nmyax = fig.add_panel((1, 1, 5, 5)) # creates a panel with position specified in cm\n\n# %%\nmyax.set_location((2, 10, 5, 3), method='size') # move the panel after it's been created and set it's location and dimensions based on size (5x3cm dimensions from 2cm down and 10 cm left)\n\n```\n\nThis package is designed for people with:\n- A basic understanding of `matplotlib`'s `Axes` object and how to work with it (rather than only using `plt`, the differences described [here](https://matplotlib.org/matplotblog/posts/pyplot-vs-object-oriented-interface/))\n- A desire to produce figures entirely in code (example approaches described in blogposts from [brushingupscience.com](https://brushingupscience.com/2021/11/02/a-better-way-to-code-up-scientific-figures/#more-6299) and [dendwrite.substack](https://dendwrite.substack.com/p/a-complete-ish-guide-to-making-scientific))\n\nDetailed documentation is under construction.\n<!-- For more documentation, please see https://scilayout.readthedocs.io -->\n",
"bugtrack_url": null,
"license": null,
"summary": "Create axes from top left of figure in centimetres to simplify scientific figure generation.",
"version": "0.1.1b1",
"project_urls": {
"Issues": "https://github.com/ogeesan/scilayout/issues",
"Repository": "https://github.com/ogeesan/scilayout.git"
},
"split_keywords": [
"matplotlib-figures",
" scientific-papers",
" thesis-template",
" matplotlib-styles",
" python"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "792bfb4a1b854e307c045a6a95d0869d6df98e627f9d91972b3301babe5b769c",
"md5": "ab8d7ea31e2aa43016769b1dc4d27bd2",
"sha256": "64fb9a98d53078240d63b9eaa9c336ea26102370a85cff8268bbec34765aaaa6"
},
"downloads": -1,
"filename": "scilayout-0.1.1b1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ab8d7ea31e2aa43016769b1dc4d27bd2",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 32431,
"upload_time": "2025-08-31T02:51:38",
"upload_time_iso_8601": "2025-08-31T02:51:38.855730Z",
"url": "https://files.pythonhosted.org/packages/79/2b/fb4a1b854e307c045a6a95d0869d6df98e627f9d91972b3301babe5b769c/scilayout-0.1.1b1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "56bc281f0056308eb75a5522286987ace1f84d42684a9b5dc5ff6ba4d81fd200",
"md5": "6a82cb4fd82c49f1b431505cc57e0fd3",
"sha256": "6932e38d5e5d7aeb878401fd7307b9d8c43493da4b44b1836810b1626d830eb5"
},
"downloads": -1,
"filename": "scilayout-0.1.1b1.tar.gz",
"has_sig": false,
"md5_digest": "6a82cb4fd82c49f1b431505cc57e0fd3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 32523,
"upload_time": "2025-08-31T02:51:40",
"upload_time_iso_8601": "2025-08-31T02:51:40.244829Z",
"url": "https://files.pythonhosted.org/packages/56/bc/281f0056308eb75a5522286987ace1f84d42684a9b5dc5ff6ba4d81fd200/scilayout-0.1.1b1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-31 02:51:40",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ogeesan",
"github_project": "scilayout",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "scilayout"
}