[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/HansAschauer/schulplots/blob/main/src/notebook_example.ipynb)
# schulplots - a tool for generating 2D plots in "German school style"
`schulplots` allows you to create 2D graphs of functions that look like what students are familiar with.
The figure is described using a description file that is converted into a visual representation by `schulplots`.
## Example
<img src="images/plot_sinus.png" alt="Sine Curve" width="500"/>
This image is generated by the following description in YAML format:
```yaml
figure:
height: 8cm
width: 10cm
axes_descriptors:
- axes:
height: 6cm
width: 8cm
x_min: -3
y_min: -2
bottom: 1cm
left: 1cm
graphs:
- function: sin(x)
label: $\sin(x)$
areas:
- function:
- sin(x)
- 0*x
label: $A = \int_0^\pi \sin(x)\,dx$
condition: y1 >= y2
plot_args:
alpha: 0.3
color: red
```
The description file has main sections:
1. `figure`: This section contains information about the entire figure. In the example, it specifies the height and width of the figure.
2. `axes_descriptors`: This section contains a description of axis systems and graphs/areas to be plotted within these axis systems.
It is also possible to draw multiple axis systems with multiple graphs:
<img src="images/plot_sinus2.png" alt="Sine Curve" width="500"/>
## Installation
`schulplots` requires a recent version of Python. If you have Python installed (including pip, the python package manager), you can install it from [PyPi](https://pypi.org/project/schulplots/) with `pip install schulplots`.
## Run from Colab
You can use schulplots without installation directly in Google Colab. For an example, click [here](https://colab.research.google.com/github/HansAschauer/schulplots/blob/main/src/notebook_example.ipynb).
![Screenshot](images/ScreenshotColaboratory.png)
## Documentation
You can find detailed documentation [here](https://schulplots.hans-aschauer.de) (sorry, German only for now).
## Limitations
* The tool is limited to plotting function graphs in "typical" value ranges. It is intentionally not a comprehensive plotting tool for scientific purposes.
* The tool was specifically developed for the conventions commonly used in the German-speaking region for function graphs (axes at the zero line, arrows in the positive direction, squared paper with a 5mm grid, etc.).
* It is not a tool for changing graph parameters through a graphical user interface (GUI).
Raw data
{
"_id": null,
"home_page": "https://github.com/HansAschauer/schulplots/",
"name": "schulplots",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.9,<3.13",
"maintainer_email": "",
"keywords": "education,plotting,teaching,publication",
"author": "Hans Aschauer",
"author_email": "schulplots@hans-aschauer.de",
"download_url": "https://files.pythonhosted.org/packages/61/cf/e661001c1d61b96d7ae7cbea722c983a2dffddf8fb9819433771e2e44bba/schulplots-0.9.3.tar.gz",
"platform": null,
"description": "\n[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/HansAschauer/schulplots/blob/main/src/notebook_example.ipynb)\n\n# schulplots - a tool for generating 2D plots in \"German school style\"\n\n`schulplots` allows you to create 2D graphs of functions that look like what students are familiar with.\n\nThe figure is described using a description file that is converted into a visual representation by `schulplots`.\n\n## Example\n<img src=\"images/plot_sinus.png\" alt=\"Sine Curve\" width=\"500\"/>\n\nThis image is generated by the following description in YAML format:\n\n```yaml\nfigure:\n height: 8cm\n width: 10cm\naxes_descriptors:\n- axes:\n height: 6cm\n width: 8cm\n x_min: -3\n y_min: -2\n bottom: 1cm\n left: 1cm\n graphs:\n - function: sin(x)\n label: $\\sin(x)$\n areas:\n - function:\n - sin(x)\n - 0*x\n label: $A = \\int_0^\\pi \\sin(x)\\,dx$\n condition: y1 >= y2\n plot_args:\n alpha: 0.3\n color: red\n\n```\nThe description file has main sections:\n1. `figure`: This section contains information about the entire figure. In the example, it specifies the height and width of the figure.\n2. `axes_descriptors`: This section contains a description of axis systems and graphs/areas to be plotted within these axis systems.\n\nIt is also possible to draw multiple axis systems with multiple graphs:\n\n<img src=\"images/plot_sinus2.png\" alt=\"Sine Curve\" width=\"500\"/>\n\n## Installation\n\n`schulplots` requires a recent version of Python. If you have Python installed (including pip, the python package manager), you can install it from [PyPi](https://pypi.org/project/schulplots/) with `pip install schulplots`. \n\n## Run from Colab\n\nYou can use schulplots without installation directly in Google Colab. For an example, click [here](https://colab.research.google.com/github/HansAschauer/schulplots/blob/main/src/notebook_example.ipynb).\n![Screenshot](images/ScreenshotColaboratory.png)\n\n## Documentation\n\nYou can find detailed documentation [here](https://schulplots.hans-aschauer.de) (sorry, German only for now).\n\n## Limitations\n\n* The tool is limited to plotting function graphs in \"typical\" value ranges. It is intentionally not a comprehensive plotting tool for scientific purposes.\n* The tool was specifically developed for the conventions commonly used in the German-speaking region for function graphs (axes at the zero line, arrows in the positive direction, squared paper with a 5mm grid, etc.).\n* It is not a tool for changing graph parameters through a graphical user interface (GUI).",
"bugtrack_url": null,
"license": "MIT",
"summary": "schulplots -- an educational tool to create plots of functions, styled as expected by undergraduate students in German schools.",
"version": "0.9.3",
"project_urls": {
"Documentation": "https://schulplots.hans-aschauer.de",
"Homepage": "https://github.com/HansAschauer/schulplots/"
},
"split_keywords": [
"education",
"plotting",
"teaching",
"publication"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "8375624c019fc3d2e9fc659507d2826ec605d83b6f8a6b09fe401e789501251a",
"md5": "28f1d5a40cec6b46ea178e8e8d0426d6",
"sha256": "18a089869225aa2df2d85f2a50e19a36645466fa730ecc9bbb511874e5c53a02"
},
"downloads": -1,
"filename": "schulplots-0.9.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "28f1d5a40cec6b46ea178e8e8d0426d6",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9,<3.13",
"size": 21098,
"upload_time": "2024-03-03T08:38:08",
"upload_time_iso_8601": "2024-03-03T08:38:08.146443Z",
"url": "https://files.pythonhosted.org/packages/83/75/624c019fc3d2e9fc659507d2826ec605d83b6f8a6b09fe401e789501251a/schulplots-0.9.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "61cfe661001c1d61b96d7ae7cbea722c983a2dffddf8fb9819433771e2e44bba",
"md5": "da937bc30200b08053e2bf6b22d490e5",
"sha256": "3d69724350543785aad30c328c67fafcf02a159429dec9d9d83015ceef3591e7"
},
"downloads": -1,
"filename": "schulplots-0.9.3.tar.gz",
"has_sig": false,
"md5_digest": "da937bc30200b08053e2bf6b22d490e5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9,<3.13",
"size": 16505,
"upload_time": "2024-03-03T08:38:10",
"upload_time_iso_8601": "2024-03-03T08:38:10.016964Z",
"url": "https://files.pythonhosted.org/packages/61/cf/e661001c1d61b96d7ae7cbea722c983a2dffddf8fb9819433771e2e44bba/schulplots-0.9.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-03 08:38:10",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "HansAschauer",
"github_project": "schulplots",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "schulplots"
}