{"id":21864098,"url":"https://github.com/sagravela/plotground","last_synced_at":"2026-05-19T03:46:26.208Z","repository":{"id":265075903,"uuid":"895065562","full_name":"sagravela/PlotGround","owner":"sagravela","description":"Plotting Tool with Matplotlib and Tkinter. Video Demo:","archived":false,"fork":false,"pushed_at":"2024-11-27T13:53:35.000Z","size":167,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-26T15:28:50.603Z","etag":null,"topics":["matplotlib","numpy","python","tkinter"],"latest_commit_sha":null,"homepage":"https://www.youtube.com/watch?v=Zr-8NJPAjaE","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sagravela.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2024-11-27T13:53:31.000Z","updated_at":"2024-11-27T13:54:25.000Z","dependencies_parsed_at":"2024-11-27T19:17:09.851Z","dependency_job_id":null,"html_url":"https://github.com/sagravela/PlotGround","commit_stats":null,"previous_names":["sagravela/plotground"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sagravela%2FPlotGround","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sagravela%2FPlotGround/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sagravela%2FPlotGround/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sagravela%2FPlotGround/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sagravela","download_url":"https://codeload.github.com/sagravela/PlotGround/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244868035,"owners_count":20523581,"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":["matplotlib","numpy","python","tkinter"],"created_at":"2024-11-28T04:07:27.250Z","updated_at":"2026-05-19T03:46:26.134Z","avatar_url":"https://github.com/sagravela.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PlotGround\n#### Demo:  [YouTube Video](https://www.youtube.com/watch?v=Zr-8NJPAjaE)\n#### Description:\nSoftware to plot 2D graphs also supports surface graphs in 3D.\nDeveloped with Python using *Tkinter* for interface and *Matplotlib*.\n\n\u003cimg src=\"sample_plot.png\" alt=\"Sample Plot\" width=\"500\"\u003e\n\n### Usage Explanation\n```python\npython main.py\n```\n- **PLOT button**: plot data. For default you can plot many graphics in the same plot until you remove plots with **CG** or changing type of plot, from 2D to surface in 3D and vice versa.\n\n- **Funtion field**: insert a valid function to plot in 2D with only **x** variable is allowed (`y = f(x)`), or surface to plot in 3D wich **x** and **y** variables only are supported (`z = f(x, y)`). All the variables and following functions are  case insensitive. Functions and constant built-in supported are:\n    * sin()\n    * cos()\n    * tan()\n    * sqrt() (square root)\n    * *e*, *pi* constants\n    \n    examples: \n        2D plot = `sin(x) + 10`, `cos(x**2)`, `sqrt(1/7)`, `e**x`\n        3D plot = `sin(x) + cos(y)`, `x**2 + y + 10`\n\n- **C button**: clear all fields.\n\n- **CE button**: clear all plots.\n\n- **Range X or Range Y**: Optionally insert a valid range of **x** and **y** (`1, 10` for default) as integers separeted with comma.\n\n- **Sampling Interval**: Optionally insert a valid sampling interval (**0.01** for dafault).\n\n- **Title and axis names**: Optionally insert name of axis and graphic.\n\n### Code explanation\n- `main.py`\nExecution file. First create a frame and figure, put them together with **canvas**. Later calls `App` class from `app.py`\n\n- `app.py`\nContains `App` class within:\n    1. creates *tkinter* interface along `__init__` method,\n    1. `represent` method which retrieve inputs from the user and prompt errors if user input something wrong,\n    1. `animate` method plots data based on input user. If *x range* or *y range* wasn't provided, `[1, 10]` limits for deafult are taken. If *sampling interval* wasn't provided, `0.01` value is adopted. Plots surface in 3D if the user input function contains at least one *y* variable, if not try to plot in 2D along *x* var,\n    1. `graphs_clear` delete axis object just to reset plotting view,\n    1. `fields_clear` reset all input fields.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsagravela%2Fplotground","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsagravela%2Fplotground","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsagravela%2Fplotground/lists"}