Make every figure easier to open.
We keep improving how Tavotto adapts to Python environments, prepares dependencies, and copes with real scripts as researchers actually write them.
Tavotto is an open-source editor for scientific figures. It lets you finish the figure your script drew without rewriting the script. This page is about why we build it, and how you can help.
Fig. 1 Dose-response, illustrative data drawn for this page. Points, mean ± s.d. of three replicates; line, four-parameter Hill fit. The legend is selected: in Tavotto, everything around the data can be shaped.
Read onEvery published figure carries hours that nobody sees.
A legend over the last data point, labels a size too small, panel (b) a millimetre out of line. Each fix is another edit, another run, another look.
loc="best"bbox_to_anchor=(0.02, 0.98)frameon=Falsehandlelength=1.2bbox_to_anchor=(0.05, 0.96)Five runs from one evening, for a legend that moved three millimetres. An illustrative reconstruction, not data from any user.
Tavotto opens the figure your script has already drawn. You shape it directly; the script stays as it was.
In every step, the curves, points and error bars stay exactly where your script put them. Tavotto makes a figure easier to shape, never its data easier to change.
As drawn by fig_dose.py, no changes yetLegend moved to the upper left · data unchangedAxis labels 7 → 9 pt · data unchanged Panel (b) aligned to (a), labels added · script and data unchanged
ax_a.errorbar(conc, mean, yerr=sd, fmt="o") ax_a.plot(x, hill(x, *popt)) ax_b.plot(hours, control, "o-", label="Control") ax_b.plot(hours, treated, "o--", label="Treated") ax_b.legend()
A figure editor is mostly made of things that should never be noticed. Three of them shape everything we do.
We keep improving how Tavotto adapts to Python environments, prepares dependencies, and copes with real scripts as researchers actually write them.
We keep improving how edits are kept, saved and restored, so the figure you come back to is the figure you left.
We keep improving fonts, layout, formats and export quality, so what reaches the journal is what you saw.
The technical detail behind this work, on the Technology page
Much of this work is invisible when everything goes right. All of it matters.
Tavotto began with a very ordinary frustration. The script has drawn the figure and the result is settled, yet moving one legend or changing one font size still means editing code and running it again, and again. I want to take that repetition out of research work, so that good results can be shown freely and precisely. Doing this well takes a long time, and I intend to keep doing it carefully.
Saving writes the layout into your project, and a project file changed by another program is never silently overwritten.
Release notes ↗Rendering and export moved to RenderCore; mirrored and semi-transparent panels now stay vector; the first desktop app for Intel Macs.
Release notes ↗Missing packages are prepared before the first run, all at once, and every exported file is reopened and checked.
Release notes ↗The open-source edition of Tavotto will remain free. Your support helps us continue maintaining and improving it.
Keeping Tavotto under steady development: fixing problems and improving how it feels to use.
Checking how Tavotto behaves on different operating systems, Python environments and real research scripts.
Keeping the releases, downloads and project infrastructure that Tavotto needs running.
Any amount from $3; $10 or more in one payment adds your avatar to the supporters wall.
Cancel any time. Tiers never unlock software features.
To those who help this work continue.
Thank you to everyone who supports Tavotto, including those who chose to do so anonymously. Your help is what lets us keep refining this tool with care.
And to everyone who contributes in other ways: through code, testing, feedback and sharing.
Tavotto exists so that whatever is found next can be shown as clearly as it was found. Thank you for reading this far.
Support Tavotto