Violin Plot Maker

Upload a CSV or paste columns from Excel and get a violin plot for each group, ready for slides or a paper. Have numbers in a PDF or notes? Paste them in and let AI read them.

Paste from Excel or CSVDescribe with AIEditable SVG + 300 DPI PNG

3 groups · 90 values · read as one column per group

Try sample data:
Plot type
Orientation
Inside the violin
Smoothing (bandwidth multiplier)× 1.0

Lower follows your data more closely; higher gives a smoother outline.

Bandwidth rule
Violin width
Colors
Shape
PNG is 2400 px wide; SVG keeps text editable.
Summary statistics behind the plot
GroupnMeanSDMedianQ1 – Q3Bandwidth
Control3024.132.96724.3521.52 – 25.751.352
Fertilizer A3027.434.52727.1524.85 – 30.631.965
Fertilizer B3031.713.67632.129.32 – 33.721.497

The plot is computed on this page as you type. When you download it, the data and settings are saved to your history so you can reopen and edit the plot later.

Violin Plot Examples

Each figure below is what this violin plot maker draws from the sample data shown in the tool, unedited. The datasets are simulated for demonstration. Open one in the tool to see its exact numbers and change any setting.

Single violin plot of 60 simulated reaction times with jittered data points and a mini box plot inside

Single violin plot with data points

60 reaction times in one column. The long right tail is typical of response-time data and is exactly what a mean ± SD bar would hide.

Grouped violin plot comparing simulated plant height for Control, Fertilizer A and Fertilizer B

Grouped violin plot

Plant height under three treatments, one column per group. The inner mini box shows the median (white dot) and the interquartile range.

Violin plot of simulated gene expression for WT, Het and KO genotypes with quartile lines and data points

Violin plot from long-format data

Expression values in two columns, genotype and value, the tidy layout ggplot2 and seaborn use. Dashed lines mark the quartiles, the solid line the median.

Violin plot where the treatment group has two peaks and the placebo group has one

Bimodal violin plot

A treatment group made of responders and non-responders. The violin shows two peaks; a box plot of the same numbers shows one wide box.

Horizontal violin plot of simulated exam scores for four classes with the mean marked

Horizontal violin plot

Exam scores for four classes, drawn sideways so long group names stay readable. The diamond marks each class mean.

What is a violin plot (violin chart)?

A violin plot shows the distribution of a numeric variable for one or more groups. Each group gets a mirrored kernel density curve: the outline is wide where many values fall and narrow where few do, which gives the shape its name. Most violin plots also carry a small box plot or quartile lines inside, so the median and interquartile range stay readable.

The chart was introduced by Hintze and Nelson in The American Statistician (1998) as a box plot combined with a density trace. It is common in biology, neuroscience, psychology and machine learning papers, anywhere a group's spread or shape matters as much as its average. People also call it a violin chart or violin graph; they are the same thing.

How to Make a Violin Plot Online

Three steps, no software to install

This violin plot maker runs in your browser. The outline updates as you type, so you can try settings and see the effect straight away.

1

Paste or Open Your Data

Copy your columns from Excel, Google Sheets, SPSS or R and paste them into the data box, or open a CSV, TSV or TXT file. Put one group per column with the group name in the first row, or use two columns: group and value. Blank cells are skipped. No table at hand? Switch to Describe with AI and paste numbers from a paper or PDF, or describe the groups in words.

2

Choose What to Show

Pick what goes inside each violin (a mini box, quartile lines, the median or nothing), add the raw data points or the mean, and adjust the smoothing. Type your axis labels and an optional title. Choose Okabe-Ito or Paul Tol colors, which stay distinguishable for colorblind readers, or grayscale for print.

3

Download PNG or SVG

Download a 300 DPI PNG for Word, Google Docs or slides, or an SVG whose text stays editable in Illustrator, Inkscape or PowerPoint. Copy the summary table (n, mean, SD, median, quartiles, bandwidth) to report alongside the figure.

Violin plot vs box plot: what the box hides

A box plot draws five numbers: the median, the two quartiles and the whisker ends. A violin plot draws the whole distribution as a mirrored density curve, usually with a small box plot inside. Below is the same simulated dataset drawn both ways by this tool.

Box plot of placebo and treatment groups, both showing a single box
Box plot: the Treatment box is wider than Placebo, and that is all it tells you.
Violin plot of the same placebo and treatment data, showing two peaks in the treatment group
Violin plot: Treatment has two peaks, near 22 and near 48. Half the patients responded, half did not.

Use a violin plot when the shape of the distribution matters: two peaks, a long tail, or values clumped at a floor or ceiling. Use a box plot when you have many groups to compare side by side, when readers in your field expect it, or when groups are small (under about 20 values), because the violin outline of a small sample is mostly smoothing.

You rarely have to choose. The default here, a violin with a mini box inside, shows both the shape and the five-number summary, and switching Plot type to Box plot redraws the same data as a classic Tukey box plot with outliers.

How to read a violin plot (violin graph)

Read each violin from the value axis outwards:

  • Width at any height is the estimated density there. Wider means more observations near that value.
  • Peaks are the most common values. One bulge means one cluster; two bulges (a bimodal violin) usually mean two subgroups mixed together.
  • Ends of a trimmed violin are the smallest and largest values. Long, thin ends are tails or outliers.
  • Inner box: the thick bar spans the first to third quartile (the middle 50% of values), the white dot is the median, and the thin line reaches the furthest values within 1.5 × IQR of the box. Quartiles are computed by linear interpolation, the default in R, ggplot2 and NumPy and the same values as Excel's QUARTILE.INC; SPSS and Minitab use a different default, so their quartiles can differ slightly for small groups.
  • Mean (◇, when shown) sitting far from the median is another sign of skew.

Two cautions. The width is a smoothed estimate, so with a small n the outline reflects the smoothing more than the data; turn on the data points to check. And with the default equal area scaling every violin has the same area, so a narrow violin is not a smaller group. Switch Violin width to By count if group sizes should show.

What data format does the violin plot maker need?

Raw values, one observation per cell. Not means, not counts per bin. Two layouts work:

LayoutLooks likeUse when
One column per group (wide)Control, Drug A, Drug B in row 1, values belowYou copied columns out of Excel or Prism
Group + value (long)group, value per row, e.g. KO, 4.21Data exported from R, Python, SPSS or a database

Details the tool handles for you:

  • Separators: tabs (what Excel and Google Sheets copy), commas, semicolons or spaces. Semicolon files with decimal commas (3,14) are read as European CSV.
  • Unequal groups: columns can have different lengths; blank cells are ignored.
  • Extra columns: in long data with an ID column (sample_id, group, value), the text column with the fewest distinct values is used as the group, and the last numeric column as the value.
  • Non-numbers such as NA or n/a are skipped and counted below the box, so you can see if something was dropped.

Groups appear in the order they first appear in your data. To reorder, move the columns or rows.

Why two tools draw different violins from the same data

The outline is a kernel density estimate, and its shape depends on one setting: the bandwidth, i.e. how far each data point is smeared out. A small bandwidth gives a bumpy outline that follows every cluster; a large one gives a smooth bell that can hide real peaks.

ToolDefault bandwidthTails
This violin plot makerSilverman's rule (R bw.nrd0)Trimmed at min and max
R ggplot2 geom_violin()Silverman's rule (bw.nrd0)Trimmed (trim = TRUE)
Python seaborn violinplot()Scott's rule via SciPyExtended 2 bandwidths past the data (cut = 2)

So with default settings this tool matches ggplot2, and a seaborn violin of the same data will look slightly smoother and longer. To get closer to seaborn, choose Scott and turn off Trim tails. The exact bandwidth for each group is listed in the summary table under the plot: report it in your figure legend or methods if a reviewer may want to reproduce the figure, and do not tune the smoothing until a peak you were hoping for appears.

Can you make a violin plot in Excel, R or Python?

  • Excel has a built-in box and whisker chart but no violin chart type. Building one by hand means computing the density in cells and drawing two mirrored area series per group. The quicker route is to copy your Excel columns, paste them here, and insert the PNG back into your workbook or report.
  • R: ggplot(df, aes(group, value)) + geom_violin() + geom_boxplot(width = 0.1). Same default bandwidth as this tool.
  • Python: seaborn.violinplot(data=df, x="group", y="value"), or plotly.express.violin for an interactive version.
  • GraphPad Prism draws violin plots from a column table.

If you already work in R or Python, code is the reproducible choice. This page is for when you need the figure now: for a thesis chapter, a lab meeting slide or a quick check of your data's shape, without installing anything or writing code. For the colors, see the scientific color palette generator; for a bell-shaped reference curve, the bell curve maker.

What to include in a violin plot for a paper

Reviewers check the same handful of things:

  1. n per group, on the plot or in the legend. The tool prints n = … under each group by default.
  2. What the inner marks are: e.g. “white dot, median; thick bar, interquartile range; thin line, 1.5 × IQR”.
  3. The bandwidth or method: “kernel density, Gaussian kernel, Silverman's bandwidth”.
  4. Raw points for small groups: for fewer than about 20 values per group, overlay the data points or use a dot plot instead.
  5. Units on the value axis: Plant height (cm), not Height.
  6. Colors that survive grayscale and colorblindness: color here only identifies the group, and the group names are written on the axis, so the figure still reads in black and white.

A sample legend you can adapt: “Violin plots show kernel density estimates (Gaussian kernel, Silverman's bandwidth) of plant height per treatment; inner boxes show the median (white dot) and interquartile range; n = 30 per group.”

What This Violin Plot Maker Does

Built for figures you hand in

Every plot is computed on this page from numbers. AI only reads your text into numbers when you ask it to; nothing is redrawn by an image model, so every quartile and every outline comes from the values in the data box.

Inside

Box, Quartiles, Median or Points

Pick what sits inside

Show a mini box plot, dashed quartile lines, the median alone, or nothing, and overlay jittered raw data points that stay inside the violin outline.

Smoothing

Adjustable Bandwidth

Silverman or Scott

Choose the bandwidth rule and a multiplier from 0.3× to 2.5×. The bandwidth used for each group is listed under the plot so you can report it.

Layouts

Grouped, Single or Horizontal

Wide or long data

One group or many, vertical or horizontal, equal-area, equal-width or count-scaled violins. Long group names rotate automatically so they never overlap.

Box plot

Switch to a Box Plot

Same data, one click

Redraw the same data as a Tukey box plot with whiskers at 1.5 × IQR and outliers as open circles, for figures where a box plot is the convention.

Export

Editable SVG and 300 DPI PNG

Word, LaTeX, posters

The SVG keeps real text, so you can change a label in Illustrator, Inkscape or PowerPoint. The PNG carries 300 DPI and sits at the right size in Word.

History

Instant Redraw, Saved History

Reopen any plot you downloaded

The plot is computed in your browser and redraws instantly as you edit. Each plot you download, and each Describe with AI run, is saved with its data and settings, so you can reopen it from My Diagrams and change a label without starting over.

Violin Plot Maker — Common Questions

FAQ

Pasting your own data, changing settings and downloading the SVG and the 300 DPI PNG are free, with no account and no watermark; that part runs in your browser and never uses credits. Describe with AI uses 2 credits per run. New accounts get 5 credits plus daily check-in credits, and paid plans and credit packs are on the pricing page.

Select your columns in Excel (group names in the first row, values below), copy them, and paste into the data box at the top of this page. Excel copies cells as tab-separated text, which the tool reads directly. Download the PNG and insert it back into Excel, Word or PowerPoint.

Yes. Switch to Describe with AI and paste numbers copied from a paper, PDF or notes, or describe the groups in words. A text model turns your text into values and settings, and the plot is drawn by code from those values, so labels and quartiles stay exact. Values that do not appear in your text are dropped. If you only describe the data (for example a mean and SD), the tool generates simulated values and labels the figure 'Simulated data': use it for teaching or layout, never as a result.

A box plot shows five summary numbers: median, quartiles and whisker ends. A violin plot adds the full shape of the distribution as a density curve, so it reveals two peaks, skew or clumping that a box plot hides. Most violin plots include a small box plot inside, so you keep both.

There is no fixed minimum, but as a working rule we suggest at least 20 to 30 values per group. Below that, the outline mostly reflects the smoothing setting rather than your data. For small groups, turn on the data points or switch to a box plot, and always report n.

The width at a given value is the estimated density: how many observations fall near that value. With equal-area scaling (the default, as in ggplot2) every violin has the same area, so width compares shapes, not group sizes. Choose 'By count' to make larger groups wider.

Yes. The SVG download keeps every label as real text and every violin as a separate path, so you can recolor, move or retype them in Illustrator, Inkscape, Affinity Designer, Figma or PowerPoint.

Yes, as an image. There is no .pptx export: download the 300 DPI PNG and insert it into PowerPoint, Keynote or Google Slides, where it stays sharp at full-slide size. In PowerPoint for Microsoft 365 you can also insert the SVG and use Convert to Shape to change labels and colors on the slide. The Wide size fits a landscape slide best.

No. The tool draws the plot and reports n, mean, SD, median, quartiles and bandwidth for each group, which you can copy as a table, but it does not run significance tests. Run the test in GraphPad Prism, SPSS, R or Python on the same data, for example aov(value ~ group) followed by TukeyHSD() in R, or kruskal.test(value ~ group) when the groups are skewed, and report the test result next to the figure.

The plot is drawn in your browser, so nothing is uploaded while you paste and edit. When you download a plot, its data and settings are saved to your history (your account, or this browser if you are not signed in) so you can reopen it. Text you submit to Describe with AI is sent to a language model to be read and is saved the same way. If your data must not leave your computer, do not download through the tool: copy the summary table instead, or use R or Python locally.

The outline depends on the bandwidth and on whether the tails are trimmed. Defaults here match R ggplot2 (Silverman's bandwidth, trimmed tails). Python seaborn uses Scott's rule and extends the tails, so choose Scott and turn off trimming to match it more closely.

Make Your Violin Plot Now

Paste your columns, check the shape, download an editable SVG or a 300 DPI PNG. Free, and drawn in your browser.

Featured on Findly.tools