Dumbbell Chart
Chart overview
A dumbbell chart (also called a connected dot plot or DNA chart) displays two measurements per subject or group connected by a line, forming a dumbbell shape.
Key points
- It is particularly effective for showing paired comparisons - baseline vs.
- follow-up, pre-treatment vs.
- post-treatment, or condition A vs.
Practical guidance
condition B - in a way that makes both the individual values and the magnitude and direction of change immediately visible. Unlike a bar chart that shows absolute values or a line chart that connects many timepoints, the dumbbell chart focuses attention on the delta between exactly two points. In clinical biology, typical applications include showing gene expression or protein levels before and after drug treatment across multiple patients, comparing ecological measurements between two seasons, or displaying biomarker changes in intervention studies. Color coding of the connecting line (red for increase, blue for decrease) provides an instant visual summary of the direction of change for each entity.
Create a Dumbbell Chart with your data using AI — no coding required.
Python Tutorial
How to create a dumbbell chart in Python
Use the full tutorial for implementation details, troubleshooting, and chart variations in matplotlib, seaborn, and plotly.
How to Create a Bar Chart in PythonExample Visualization

Create This Chart Now
Generate publication-ready dumbbell charts with AI in seconds. No coding required – just describe your data and let AI do the work.
View example prompt
"Create a dumbbell chart showing pre- and post-treatment biomarker levels for each patient in my dataset. Connect each patient's two measurements with a line colored red for increase and blue for decrease. Use filled circles at each endpoint sized by measurement value. Sort patients by the magnitude of change. Add a legend distinguishing the two timepoints. Label the x-axis with the biomarker name and units. Format for clinical publication at 300 DPI."
How to create this chart in 30 seconds
Upload Data
Drag & drop your Excel or CSV file. Plotivy securely processes it in your browser.
AI Generation
Our AI analyzes your data and generates the Dumbbell Chart code automatically.
Customize & Export
Tweak the design with natural language, then export as high-res PNG, SVG or PDF.
Newsletter
Get one weekly tip for better dumbbell charts
Join researchers receiving concise Python plotting techniques to improve chart clarity and reduce revision cycles.
Python Code Example
Console Output
Figure saved: plotivy-dumbbell-chart.png
Common Use Cases
- 1Pre- vs. post-intervention gene expression or protein abundance for paired patient samples
- 2Comparing ecological species abundance between two sampling seasons or locations
- 3Before-and-after dietary intervention study: plasma lipid and metabolite levels
- 4Displaying athlete performance metrics at two competition timepoints across a season
Pro Tips
Sort rows by the magnitude or direction of change to make patterns immediately visible
Use distinct, colorblind-safe colors for the two endpoints and a neutral or directional color for the connecting line
Label each row clearly on the left margin; avoid axis crowding by using horizontal orientation
Consider adding annotation for statistically significant changes with asterisks or adjusted p-value brackets
Frequently asked questions
When should you use a dumbbell chart?
A dumbbell chart (also called a connected dot plot or DNA chart) displays two measurements per subject or group connected by a line, forming a dumbbell shape. It is particularly effective for showing paired comparisons - baseline vs. Common applications include pre- vs. post-intervention gene expression or protein abundance for paired patient samples, comparing ecological species abundance between two sampling seasons or locations, and before-and-after dietary intervention study: plasma lipid and metabolite levels.
Which Python libraries can create a dumbbell chart?
A dumbbell chart can be built in Python with matplotlib, pandas, and numpy — matplotlib for precise control over axes, annotations, and journal styling, pandas for quick plots straight from a DataFrame, and numpy. In Plotivy you describe the figure and it writes the matplotlib code for you.
Can I make a dumbbell chart without writing Python code?
Yes. Describe the dumbbell chart you need in plain language and upload your dataset — Plotivy's AI writes the Python code and renders a publication-ready figure. You still get the full, editable matplotlib source, so nothing is locked in a black box.
What are best practices for a clear dumbbell chart?
Sort rows by the magnitude or direction of change to make patterns immediately visible. Use distinct, colorblind-safe colors for the two endpoints and a neutral or directional color for the connecting line.
Long-tail keyword opportunities
High-intent chart variations
Library comparison for this chart
matplotlib
Best when you need full control over axis formatting, annotation placement, and journal-specific styling for dumbbell-chart.
pandas
Good for quick exploratory drafts directly from DataFrame operations before polishing in matplotlib or plotly.
numpy
Useful in specialized workflows that complement core Python plotting libraries for dumbbell-chart analysis tasks.
Scientific Chart Selection Cheat Sheet
Not sure whether to use a Violin Plot, Box Plot, or Ridge Plot? Download our single-page reference mapping the most-used scientific chart types, exactly when to use them, and the core Matplotlib/Seaborn functions.