Guide10 min read

Common Scientific Visualization Mistakes (And How to Fix Them Without Losing Your Mind)

By Francesco Villasmunta
Common Scientific Visualization Mistakes (And How to Fix Them Without Losing Your Mind)

Last month, I read 50 scientific papers. The science was excellent, but the figures? Not so much. I saw the same mistakes over and over again. The truth is, most researchers have never been taught how to make good figures—so I'm sharing these fixes to help you avoid rejection.

It's not your fault - you're a scientist, not a graphic designer. But bad figures can kill good science. Here are the most common mistakes I see, and how to fix them.


Mistake #1: The Legend From Hell

The Problem: Legends with 15 different colors, 8 different line styles, and 12 different symbols. It looks like a rainbow threw up on your figure.

The Fix:

  • Group Data: If you have more than 5-6 items, use small multiples (subplots) instead of one chaotic plot.
  • Direct Labeling: Place labels directly next to the lines instead of using a separate legend box.
  • Simplify: Do you really need to show all 20 samples? Show the average and the range.

Mistake #2: The Scale That Lies

The Problem: Different subplots with different scales, making it impossible to compare data across panels. Or worse, bar charts that don't start at zero.

The Fix:

  • Sync Axes: Use the same scale for all panels that show the same type of data.
  • Zero Baseline: Bar charts must always start at zero. For line charts, you can zoom in, but label the break clearly.

Mistake #3: The Font That's Too Small

The Problem: Text that's so small you need a magnifying glass to read it. This usually happens when you resize a large figure to fit a small column.

The Fix:

  • Design for Final Size: If the figure will be 8cm wide, design it at 8cm wide.
  • Minimum Font Size: Never go below 8pt. Aim for 10-12pt for axis labels.

Mistake #4: The Raster Export Disaster

The Problem: Figures exported as PNG or JPEG that look pixelated when printed or viewed at high resolution.

The Fix:

  • Vector Always: Use SVG or PDF for manuscripts. These formats scale infinitely without losing quality.
  • High DPI: If you must use raster (e.g., for heatmaps), use at least 300 DPI (preferably 600 DPI).

Stop making these mistakes. Plotivy automatically handles vector exports, proper font sizes, and colorblind-safe palettes—so you can focus on your research.

Try It Free →

Mistake #5: The Colorblind Nightmare

The Problem: Using red and green together to distinguish data. About 8% of men are colorblind and cannot see the difference.

The Fix:

  • Safe Palettes: Use Viridis, Cividis, or other perceptually uniform, colorblind-safe colormaps.
  • Double Encoding: Use different line styles (dashed vs. solid) or symbols in addition to colors.

The Automated Solution

You could memorize all these rules and check every figure manually. Or, you could use a tool that handles it for you.

Plotivy automatically:

  • Selects colorblind-safe palettes.
  • Sets correct font sizes for publication.
  • Exports in high-resolution vector formats.
  • Aligns axes and legends perfectly.

Avoid These Mistakes Automatically

Every figure generated by Plotivy follows visualization best practices by default. Focus on your science, not your figure formatting.

Create Error-Free Figures →

Chart gallery

Gallery picks that already follow best practices

Use gallery recipes that enforce correct axes, error bars, and color-safe palettes out of the box.

Browse all chart types →
Line graph with error bars showing 95% confidence intervals
Statisticalmatplotlib
From the chart galleryScientific data presentation

Error Bars

Graphical representations of the variability of data indicating error or uncertainty in measurements.

Sample code / prompt

Create a line graph with error bars showing 'Bacterial Growth' over 24 hours for a biology experiment. Generate data at 6 time points (0, 4, 8, 12, 18, 24 hours) with 5 replicates per time point. Means should follow exponential growth: 10, 25, 80, 250, 600, 800 (CFU/mL × 10⁶). Calculate 95% confidence intervals from the replicates. Plot mean values as connected line with circular markers. Show error bars as vertical lines with caps. Add horizontal gridlines. Log-scale Y-axis to show exponential phase clearly. Annotate the lag, log, and stationary phases. X-axis: 'Time (hours)', Y-axis: 'Bacterial Count (CFU/mL × 10⁶)'. Add sample size annotation (n=5 per time point).
Bar chart comparing average scores across 5 groups with error bars
Comparisonmatplotlib, seaborn
From the chart galleryComparing performance across categories

Bar Chart

Compares categorical data using rectangular bars with heights proportional to values.

Sample code / prompt

Create a publication-quality bar chart comparing 'Average Performance Scores' across 5 treatment groups (Control, Treatment A, Treatment B, Treatment C, Treatment D). Generate realistic data with n=30 samples per group, varying means (65-90 range), and different standard deviations. Add error bars showing standard deviation with caps. Sort bars by mean value descending. Use a professional color palette, add value labels above each bar, include a horizontal reference line at the grand mean, and add significance stars (* p<0.05) above bars that differ significantly from control.
Multi-line graph showing temperature trends for 3 cities over a year
Time Seriesmatplotlib, seaborn
From the chart galleryStock price tracking over time

Line Graph

Displays data points connected by straight line segments to show trends over time.

Sample code / prompt

Create a multi-line graph comparing 'Monthly Average Temperature' for 3 cities (New York, Miami, Chicago) over a full year (Jan-Dec). Generate realistic data: New York (30°F-85°F), Miami (65°F-90°F), Chicago (25°F-80°F) with appropriate seasonal patterns. Use distinct line colors (NYC: blue, Miami: orange, Chicago: green) and marker styles (circle, square, diamond). Add a shaded region showing the 'comfortable range' (60-75°F). Include grid lines, format Y-axis with °F, add month abbreviations on X-axis. Title the chart professionally, add a legend positioned outside the plot, and annotate the hottest and coldest points for each city.
Correlation heatmap with diverging color scale and coefficient annotations
Statisticalseaborn, matplotlib
From the chart galleryCorrelation analysis between variables

Heatmap

Represents data values as colors in a two-dimensional matrix format.

Sample code / prompt

Create a heatmap showing the correlation matrix for 8 financial metrics: 'Revenue', 'Profit', 'Expenses', 'ROI', 'Customer Count', 'Avg Order Value', 'Marketing Spend', 'Employee Count'. Generate realistic correlation data where logically related metrics are positively correlated (Revenue-Profit: 0.85, Marketing-Revenue: 0.72) and others have weak or negative correlations (Expenses-Profit: -0.45). Use a diverging RdBu colorscale centered at zero (-1 to +1 range). Display correlation coefficients inside each cell with 2 decimal places. Mask the upper triangle to avoid redundancy. Add clear axis labels, a color bar, and title 'Financial Metrics Correlation Matrix'.

Start Analyzing Today

You don't need to be a data scientist to analyze data like one. Try Plotivy and turn your data into insights in minutes.

Get Started for Free →
Tags:#visualization#mistakes#guide#best practices