Plot viewport

Upload datasets and add traces to begin

Guide

How to build a figure

Combine one or more CSV datasets into a single publication-quality plot, style every detail, then export as PNG/SVG or copy the matplotlib code to reproduce it in Python.

1

Add data

Drop one or more CSV files (each needs a header row and at least two columns), or click Load sample dataset to try it instantly.

2

Define traces

Each trace maps a file's X column against a Y column. Add multiple traces (even from different files) to overlay them, and set each one's name, colour and style.

3

Style it

Set titles and axis labels, toggle log scales, gridlines and the boxed frame, then fine-tune typography, marker/line sizes and the legend in Typography & style.

4

Export or reproduce

Set export width/height/scale, then download PNG or SVG. Or click Python to copy runnable matplotlib code that recreates the figure from your data.

Good practice

Making a figure that reads well

A few conventions that make scientific figures clearer and more honest.

Label your axes with units

An axis without units is ambiguous. Write the quantity and its unit, e.g. Time (s) or Concentration (mM). The X/Y label fields feed both the on-screen plot and the exported matplotlib code.

Use log scales deliberately

A log axis linearises exponential or power-law data and shows several orders of magnitude at once, but it can flatter noisy data. Use it when the process is multiplicative, and say so in the caption.

Colours that survive greyscale & colour-blindness

Around 8% of men have some colour-vision deficiency, and many journals print in greyscale. Prefer palettes that vary in lightness as well as hue, and distinguish traces by line style or markers too, not colour alone.

Reproducibility

The Python export means a figure isn't a dead end: the generated matplotlib script regenerates the plot from the same CSV, so you can version-control it alongside your analysis. Everything runs in your browser, no data leaves your machine.

References

References & documentation

  1. Hunter, J. D. (2007). Matplotlib: A 2D graphics environment. Computing in Science & Engineering, 9(3), 90–95. matplotlib.org.
  2. Rougier, N. P., Droettboom, M., & Bourne, P. E. (2014). Ten simple rules for better figures. PLOS Computational Biology, 10(9), e1003833.
  3. Wong, B. (2011). Points of view: Color blindness. Nature Methods, 8(6), 441. (colour-blind-safe palette guidance)
  4. Software: Plotly.js (interactive rendering) and PapaParse (CSV parsing). Exported code targets pandas + matplotlib.