M ChartM Chart
Users
Pro
Developers
Download
GitHub
Users
Pro
Developers
Download
GitHub
  • User Guide

    • User Guide
    • Libraries
    • Types of Charts
    • Creating a Chart
    • Multiple Sheets
    • Scatter & Bubble Charts
    • Radar & Radar Area Charts
    • Treemap Charts
    • Boxplots & Violin Charts
    • Venn & Euler Charts
    • Chart Shortcode
    • Block Editor
    • CSV Import & Export
    • Settings
    • Chart Units
    • Themes
    • Accessibility
    • Duplicating Charts
    • Example Charts

Venn & Euler Charts

Venn and euler charts show how sets overlap. Every region — each set on its own plus every intersection — gets a value, and that value is drawn inside the region. They work well for survey results ("how many households subscribe to both services?"), audience overlap, and feature comparisons.

The two types share their data format and differ only in how they draw:

  • Venn uses the classic fixed layout — every possible intersection region is always drawn, whether or not it has a value. Region sizes are NOT proportional to their values.
  • Euler sizes each circle proportionally to its total and only overlaps circles that actually share members, so sets that don't intersect are drawn apart. Sets with a total of zero are left out entirely.

Chart.js library required

Venn and euler charts are rendered by a Chart.js plugin and only work when M Chart is set to use Chart.js as its library. If your site is currently set to Highcharts, switch in Settings before creating one.

Up to 5 sets

The underlying library supports at most five sets. If your data names more than five, the first five win and rows referencing the extra sets are ignored.

Data Format

Venn and euler charts are single-sheet only. Two layouts are supported and M Chart picks between them automatically based on what you enter.

Region counts (two columns)

One row per region: the set combination in the first column and its count in the second. Join set names with & to describe an intersection.

Netflix78
Disney+45
Netflix & Disney+31

Each value is the count for exactly that region — in the example above, 78 households have ONLY Netflix and 31 have both. Regions you leave out are treated as zero, and rows describing the same combination are summed. Values can carry a prefix or suffix (e.g. $78 or 78 households) and it will show in the labels and tooltips.

Membership lists

If you have the actual members of each set, enter them and let M Chart work out the intersections. One row per set: the set name in the first cell, its member names in the cells after it — the same row-per-entity shape boxplot data uses. Matching names across rows are what create the overlaps.

Socceralexcaseydrew
Tenniscaseydrewjade
Chessdrewjademorgan

Here drew appears in all three rows, so the center region gets a count of 1. Member names are matched exactly (case matters). As a bonus, hovering a region shows a few of the member names in the tooltip.

The Parse data in setting works as usual: with Rows each row is one set as shown above; with Columns the sheet is transposed — sets run down the columns with the set names in row 1.

Labels and Legend

The set names always render next to their circles, so the legend option has no effect and is hidden for these chart types. The Labels checkbox toggles the in-region value labels. Regions with a value of zero never print a label.

Last Updated: 7/31/26, 8:58 PM
Contributors: Jamie Poitra
Prev
Boxplots & Violin Charts
Next
Chart Shortcode