{"id":16589151,"url":"https://github.com/hanjinliu/whitecanvas","last_synced_at":"2025-10-03T17:11:40.049Z","repository":{"id":210945314,"uuid":"718203251","full_name":"hanjinliu/whitecanvas","owner":"hanjinliu","description":"A type safe and backend independent plotting library for Python.","archived":false,"fork":false,"pushed_at":"2025-01-08T11:54:42.000Z","size":37477,"stargazers_count":70,"open_issues_count":7,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-29T23:09:06.995Z","etag":null,"topics":["bokeh","matplotlib","plot","plotly","pyqtgraph","vispy"],"latest_commit_sha":null,"homepage":"https://hanjinliu.github.io/whitecanvas/","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/hanjinliu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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}},"created_at":"2023-11-13T15:43:51.000Z","updated_at":"2025-02-21T06:04:58.000Z","dependencies_parsed_at":"2024-01-02T08:06:23.565Z","dependency_job_id":"3204a281-b91f-4d4b-ab93-626380f5d477","html_url":"https://github.com/hanjinliu/whitecanvas","commit_stats":{"total_commits":356,"total_committers":3,"mean_commits":"118.66666666666667","dds":0.2471910112359551,"last_synced_commit":"2eb4e76fe4221e6ed4fbffd8d3951085175fa1e7"},"previous_names":["hanjinliu/whitecanvas"],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hanjinliu%2Fwhitecanvas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hanjinliu%2Fwhitecanvas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hanjinliu%2Fwhitecanvas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hanjinliu%2Fwhitecanvas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hanjinliu","download_url":"https://codeload.github.com/hanjinliu/whitecanvas/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247415967,"owners_count":20935388,"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":["bokeh","matplotlib","plot","plotly","pyqtgraph","vispy"],"created_at":"2024-10-11T23:07:58.083Z","updated_at":"2025-10-03T17:11:39.952Z","avatar_url":"https://github.com/hanjinliu.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# whitecanvas\n\n[![PyPI - Version](https://img.shields.io/pypi/v/whitecanvas.svg)](https://pypi.org/project/whitecanvas)\n[![Python package index download statistics](https://img.shields.io/pypi/dm/whitecanvas.svg)](https://pypistats.org/packages/whitecanvas)\n[![codecov](https://codecov.io/gh/hanjinliu/whitecanvas/graph/badge.svg?token=MYLNFOpEnA)](https://codecov.io/gh/hanjinliu/whitecanvas)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/whitecanvas.svg)](https://pypi.org/project/whitecanvas)\n\nA type safe and backend independent plotting library for Python, aiming at not the simplest, but the tidiest API.\n\n## Installation\n\n```console\npip install whitecanvas -U\n```\n\n## Project Philosophy\n\n#### Type safety\n\nAll the methods should be designed to have nice signature, and should return the same\ntype of object, so that your program can be statically checked by the IDE.\n\n#### Backend independency\n\nEvery plotting library has their own strength and weakness. Same code should work on\ndifferent backends, so that you can choose the best one for different purposes.\n\nCurrently supported backends are `matplotlib`, `pyqtgraph`, `vispy`, `plotly` and\n`bokeh`. If you want other backends, please feel free to\n[open an issue](https://github.com/hanjinliu/whitecanvas/issues).\n\n#### API tidiness\n\nMost of (probably all of) the plotting libraries rely on the large\nnumber of arguments to configure the plot elements. They are usually hard to remember,\nforcing you to look up the documentation every time you want to make a plot.\n\n`whitecanvas` tries to organize the methods, namespaces and arguments carefully so that you can make any kind of plot only with the help of the IDE's auto-completion and\nsuggestions.\n\n## Documentation\n\nDocumentation is available [here](https://hanjinliu.github.io/whitecanvas/).\n\n## Examples\n\n[\u0026rarr; Find more examples](https://github.com/hanjinliu/whitecanvas/blob/main/examples)\n\n#### Rain-cloud plot in matplotlib\n\n[\u0026rarr; source](https://github.com/hanjinliu/whitecanvas/blob/main/examples/raincloud_plot.py)\n\n![](https://github.com/hanjinliu/whitecanvas/blob/main/images/raincloud.png)\n\n#### Super plot in matplotlib\n\n[\u0026rarr; source](https://github.com/hanjinliu/whitecanvas/blob/main/examples/superplot.py)\n\n![](https://github.com/hanjinliu/whitecanvas/blob/main/images/superplot.png)\n\n#### Joint plot in matplotlib\n\n[\u0026rarr; source](https://github.com/hanjinliu/whitecanvas/blob/main/examples/joint_grid.py)\n\n![](https://github.com/hanjinliu/whitecanvas/blob/main/images/jointgrid.png)\n\n#### Heatmap with text in pyqtgraph\n\n[\u0026rarr; source](https://github.com/hanjinliu/whitecanvas/blob/main/examples/heatmap_with_text.py)\n\n![](https://github.com/hanjinliu/whitecanvas/blob/main/images/heatmap.png)\n\n#### Curve fitting in bokeh\n\n[\u0026rarr; source](https://github.com/hanjinliu/whitecanvas/blob/main/examples/curve_fit.py)\n\n![](https://github.com/hanjinliu/whitecanvas/blob/main/images/curve_fit.png)\n\n-----\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhanjinliu%2Fwhitecanvas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhanjinliu%2Fwhitecanvas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhanjinliu%2Fwhitecanvas/lists"}