Dotplotlib
A basic extension library for creating tree dot plots, strip plots or dot charts w/ matplotlib or seaborn in Python
Install / Use
/learn @jl33-ai/DotplotlibREADME
dotplotlib

A matplotlib extension library for making tree dot plots, strip plots or dot charts in Python (seaborn compatible)
Installation
pip install dotplotlib
Usage
Example 1: Simple Dot Chart
.dotchart returns x and y lists that can be inputted straight into matplotlib or seaborn scatterplots.
from dotplotlib import dotchart
import matplotlib.pyplot as plt
data = {'size': [1, 2, 2, 3, 3, 3, 4]}
# Generate dot chart data
x, y = dotchart(data['size'])
# Plot
plt.scatter(x, y)
plt.show()
Example 2: Dot Chart with Color Mapping
Pass the data you would like to color by to the color_by= argument.
Returns an extra list c that should be passed into the c= parameter if using matplotlib or hue= if using seaborn.
from dotplotlib import dotchart
import matplotlib.pyplot as plt
data = {'size': [1, 2, 2, 3, 3, 3, 4], 'rating': [3, 2, 5, 4, 3, 6, 4]}
# Generate dot chart data with color mapping
x, y, c = dotchart(data['size'], color_by=data['rating'])
# Plot with color mapping
plt.scatter(x, y, c=c, cmap='viridis')
plt.colorbar()
plt.xlabel('Size')
plt.ylabel('Number')
plt.title('Mushroom Size Count Colored by Rating')
plt.show()
Example 3: Using make_dotchart to plot in one step
Instead of just giving you x, y lists to make the plot yourself, make_dotplot() actually generates the plot.
from dotplotlib import make_dotchart
df = {'size': [1, 2, 2, 3, 3, 3, 4], 'rating': [3, 2, 5, 4, 3, 6, 7]}
# Create a dot chart with optional arguments (only the first one is mandatory)
make_dotchart(df['size'],
color_by=df['rating'], # list to color by
reverse=False, # inverts the color mapping
theme='gnuplot2', # scroll down to see all themes
colorbar=True,
xlabel='Sizes',
ylabel='Size Count',
title='Mushroom Sizes Colored by Rating',
dot_size=40):
Example 4: Plotting in a Jupyter Notebook
If plotting inline, use the default .dotchart() to obtain x and y lists, and then adjust as necessary with one of the following:
plt.figure(figsize=(12,6)) # or
plt.figure().set_figwidth(12) # or
plt.figure().set_figheight(12)

Themes

Feature set
- Generate strip plots/dot charts by exploiting
matplotlib/seabornscatterplots - Supports any cmap color profile
- The data can be automatically sorted for better visualization, especially when using color mapping.
- Accepts both list and pandas.Series as input data.
- Set custom labels, titles, and dot sizes for your charts.
- Works with Jupyter Notebook
Contributing
Anyone is welcome to raise a PR!
Related Skills
claude-opus-4-5-migration
84.4kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
model-usage
341.0kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
feishu-drive
341.0k|
things-mac
341.0kManage Things 3 via the `things` CLI on macOS (add/update projects+todos via URL scheme; read/search/list from the local Things database)
