{"id":30850161,"url":"https://github.com/jl33-ai/dotplotlib","last_synced_at":"2025-09-07T05:07:21.291Z","repository":{"id":216480960,"uuid":"741425548","full_name":"jl33-ai/dotplotlib","owner":"jl33-ai","description":"A basic extension library for creating tree dot plots, strip plots or dot charts w/ matplotlib or seaborn in Python","archived":false,"fork":false,"pushed_at":"2025-02-02T05:24:23.000Z","size":2558,"stargazers_count":10,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-19T22:44:37.055Z","etag":null,"topics":["data-analysis","data-science","data-visualization","dot-chart","dotplot","dotplots","matplotlib-pyplot","matplotlib-python","python","seaborn","seaborn-plots","strip-plots"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jl33-ai.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}},"created_at":"2024-01-10T11:20:45.000Z","updated_at":"2025-02-02T05:24:26.000Z","dependencies_parsed_at":"2024-01-13T04:05:03.265Z","dependency_job_id":"ad61e808-a621-4372-a9d1-8c2abdcfd25d","html_url":"https://github.com/jl33-ai/dotplotlib","commit_stats":null,"previous_names":["jl33-ai/dotplotlib"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jl33-ai/dotplotlib","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jl33-ai%2Fdotplotlib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jl33-ai%2Fdotplotlib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jl33-ai%2Fdotplotlib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jl33-ai%2Fdotplotlib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jl33-ai","download_url":"https://codeload.github.com/jl33-ai/dotplotlib/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jl33-ai%2Fdotplotlib/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273997155,"owners_count":25204479,"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","status":"online","status_checked_at":"2025-09-07T02:00:09.463Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["data-analysis","data-science","data-visualization","dot-chart","dotplot","dotplots","matplotlib-pyplot","matplotlib-python","python","seaborn","seaborn-plots","strip-plots"],"created_at":"2025-09-07T05:07:19.596Z","updated_at":"2025-09-07T05:07:21.274Z","avatar_url":"https://github.com/jl33-ai.png","language":"Python","readme":"# dotplotlib\n\n[![Contributors][contributors-shield]][contributors-url]\n[![Forks][forks-shield]][forks-url]\n[![Stargazers][stars-shield]][stars-url]\n[![Issues][issues-shield]][issues-url]\n[![Unlicense License][license-shield]][license-url]\n\n![](https://github.com/jl33-ai/dotplotlib/blob/main/demos/daterange.png?raw=true)\n\nA `matplotlib` extension library for making tree dot plots, strip plots or dot charts in Python (`seaborn` compatible)\n\n### Installation\n\n```text\npip install dotplotlib\n```\n\n### Usage\n\n###### Example 1: Simple Dot Chart\n\n`.dotchart` returns `x` and `y` lists that can be inputted straight into `matplotlib` or `seaborn` [scatterplots](https://www.w3schools.com/python/matplotlib_scatter.asp). \n\n```python\nfrom dotplotlib import dotchart\nimport matplotlib.pyplot as plt\n\ndata = {'size': [1, 2, 2, 3, 3, 3, 4]}\n\n# Generate dot chart data\nx, y = dotchart(data['size'])\n\n# Plot\nplt.scatter(x, y)\nplt.show()\n```\n\n###### Example 2: Dot Chart with Color Mapping\n\nPass the data you would like to color by to the `color_by=` argument. \n\nReturns an extra list `c` that should be passed into the `c=` parameter if using `matplotlib` or `hue=` if using `seaborn`. \n\n```python\nfrom dotplotlib import dotchart\nimport matplotlib.pyplot as plt\n\ndata = {'size': [1, 2, 2, 3, 3, 3, 4], 'rating': [3, 2, 5, 4, 3, 6, 4]}\n\n# Generate dot chart data with color mapping\nx, y, c = dotchart(data['size'], color_by=data['rating'])\n\n# Plot with color mapping\nplt.scatter(x, y, c=c, cmap='viridis')\nplt.colorbar()\nplt.xlabel('Size')\nplt.ylabel('Number')\nplt.title('Mushroom Size Count Colored by Rating')\nplt.show()\n```\n\n###### Example 3: Using `make_dotchart` to plot in one step\n\nInstead of just giving you `x, y` lists to make the plot yourself, `make_dotplot()` actually generates the plot. \n\n```python\nfrom dotplotlib import make_dotchart\n\ndf = {'size': [1, 2, 2, 3, 3, 3, 4], 'rating': [3, 2, 5, 4, 3, 6, 7]}\n\n# Create a dot chart with optional arguments (only the first one is mandatory)\nmake_dotchart(df['size'], \n                  color_by=df['rating'], # list to color by\n                  reverse=False, # inverts the color mapping\n                  theme='gnuplot2', # scroll down to see all themes\n                  colorbar=True, \n                  xlabel='Sizes', \n                  ylabel='Size Count', \n                  title='Mushroom Sizes Colored by Rating', \n                  dot_size=40):\n```\n\n###### Example 4: Plotting in a Jupyter Notebook\n\nIf plotting inline, use the default `.dotchart()` to obtain `x` and `y` lists, and then adjust as necessary with one of the following: \n\n```python\nplt.figure(figsize=(12,6))  # or\nplt.figure().set_figwidth(12) # or\nplt.figure().set_figheight(12)\n```\n\n![](https://github.com/jl33-ai/dotplotlib/blob/main/demos/jupyter.png?raw=true)\n\n\u003cbr\u003e\n\n---\n\n### Themes\n\n![](https://github.com/jl33-ai/dotplotlib/blob/main/demos/gallery.png?raw=true)\n\n\n### Feature set\n\n- Generate strip plots/dot charts by exploiting `matplotlib/seaborn` scatterplots\n- Supports any cmap color profile\n- The data can be automatically sorted for better visualization, especially when using color mapping.\n- Accepts both list and pandas.Series as input data.\n- Set custom labels, titles, and dot sizes for your charts.\n- Works with Jupyter Notebook\n\n\n### Contributing\n\nAnyone is welcome to raise a PR!\n\n[contributors-shield]: https://img.shields.io/github/contributors/jl33-ai/dotplotlib.svg?style=for-the-badge\n[contributors-url]: https://github.com/jl33-ai/dotplotlib/graphs/contributors\n[forks-shield]: https://img.shields.io/github/forks/jl33-ai/dotplotlib.svg?style=for-the-badge\n[forks-url]: https://github.com/jl33-ai/dotplotlib/network/members\n[stars-shield]: https://img.shields.io/github/stars/jl33-ai/dotplotlib.svg?style=for-the-badge\n[stars-url]: https://github.com/jl33-ai/dotplotlib/stargazers\n[issues-shield]: https://img.shields.io/github/issues/jl33-ai/dotplotlib.svg?style=for-the-badge\n[issues-url]: https://github.com/jl33-ai/dotplotlib/issues\n[license-shield]: https://img.shields.io/github/license/jl33-ai/dotplotlib.svg?style=for-the-badge\n[license-url]: https://github.com/jl33-ai/dotplotlib/blob/master/LICENSE.txt\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjl33-ai%2Fdotplotlib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjl33-ai%2Fdotplotlib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjl33-ai%2Fdotplotlib/lists"}