Load grouped numeric data to plot.
Use Browse file or drop a CSV / TSV,
or click Demo Data to try example data.
Load grouped numeric data to plot.
Use Browse file or drop a CSV / TSV,
or click Demo Data to try example data.
Input format
CSV or TSV in either long format (one row per observation: a group column and a value column) or wide format (one column per group, ragged columns allowed). The tool auto-detects the layout and the summary under Input says what it chose. Use the Layout dropdown to override it, for example when numeric group codes such as doses were read the wrong way.
Commas, tabs and semicolons are recognised as separators. In semicolon files a decimal comma (1,5) is read as 1.5. A cell counts as a number only if the whole cell is a number: entries such as 12abc, Inf, NA or 1,234 in a comma file are dropped, counted, and quoted in the summary.
Column pickers (long mode)
Choose the group column and the numeric value column under Input. The tool suggests a value column with a name like value or expression, or else the last numeric column. Optionally pick a Pair ID column (subject, patient, donor) for paired tests.
Plot type
Box gives a classic Tukey box: median and quartiles, with whiskers to the most extreme observation within 1.5×IQR of the box (a whisker ends at the box when there is none, as in ggplot2). Quartiles use linear interpolation (type 7, as ggplot2); base R boxplot() uses Tukey hinges, which can differ slightly for small groups. Violin shows a Gaussian kernel density estimate (Silverman bandwidth, adjustable), drawn over the range of the data and scaled to the same maximum width in every group. With points switched on, every observation is drawn; points beyond the whiskers use the outlier colour. With points off, outliers are drawn as dots on the box. Beeswarm is used up to 2,000 points per group; larger groups are jittered, and a notice says so.
Statistical tests
For two groups, the default is Welch's t-test (handles unequal variances). Switch to Student's t-test if you have a strong reason to assume equal variance, or Mann-Whitney for a rank-based test. Mann-Whitney gives exact p-values when each group has fewer than 50 values, and Wilcoxon when there are fewer than 50 pairs; with ties (or zero differences) the exact p comes from the distribution given the tied ranks, as in R 4.6 and later (scipy and older R use the normal approximation with ties). Larger samples use the normal approximation with tie and continuity correction. The test panel names the method used. A t-test whose groups (or paired differences) are essentially constant is not defined and is reported as n/a, following R's t.test rule.
Tick Paired (or choose Paired t / Wilcoxon) for matched samples. In wide format, values in the same row are a pair. In long format, values with the same Pair ID are a pair; without a Pair ID column, the first value of one group is paired with the first value of the other, and so on. Only complete pairs are used, and the test panel reports how many. Paired tests need at least 2 complete pairs.
For three or more groups, the default is one-way ANOVA; use Kruskal-Wallis for a rank-based test. The omnibus result is printed above the plot. Tick Posthoc for pairwise comparisons: Tukey HSD after ANOVA, or Mann-Whitney with Benjamini-Hochberg correction after Kruskal-Wallis. Tukey HSD assumes equal variances in all groups (Games-Howell, for unequal variances, is not offered). The tool warns when the post hoc test does not match the omnibus test.
Annotation style
Choose stars (ns / * / ** / *** / ****), exact p-values, or both. With stars, only significant post hoc pairs get a bracket; with exact p or both, every pair does. Post hoc brackets show adjusted p-values. Brackets stack automatically and the y axis leaves room for them above the data. When there are too many to fit, the widest ones are left out, a notice says how many, and all results stay in the post hoc table.
Y axis
A manual range is honoured exactly; data outside it are cut off at the plot edge and the notice under the plot says how many. On a log axis, values of 0 or below cannot be drawn and are left out of the points and violins, which are then estimated on log10 of the values. Boxes and all statistics always use every value.
Interactivity
Hover a point for its exact value. Hover a box for its n, median, quartiles and whisker ends. Click a group label below the plot to toggle that group in or out, and stats recompute live. Drag rows in Group order to reorder. Group names too wide for the space under the axis are shortened with an ellipsis. Names that would then look alike keep their last characters, so every label stays different. Tables and tooltips keep the full name, and the Rotate setting in the style panel shows names whole.
Keyboard
P toggles points. V switches to violins and B to boxes; pressing the same key again switches back. Key combinations with Ctrl, Cmd or Alt are left to the browser.
Export
Exports have a fixed figure size of 8.3 × 5.2 inches (800 × 500 at 96 per inch), whatever the window size. PNG is scaled to the DPI selector (300 is publication standard) and records that DPI in the file. SVG opens in Illustrator and Inkscape. Copy puts the PNG on the clipboard.
If this tool was useful in your work, please cite it as:
EuropaDX, Inc. (2026). Box / Violin Plot. EuropaXp OmicsCloud Bioinformatics Toolkit. Available at https://europadx.com/tools/boxplot/The Box / Violin tool runs entirely client-side and may freeze or run out of memory on datasets above ~200,000 observations or files larger than 50 MB.
EuropaXp OmicsCloud handles datasets of any size with full pipeline support, persistent workspaces, and reproducible reports.