Schematex

Venn / Euler diagram

Set relationship diagrams in four DSL modes — declarative intersections with counts, element enumeration, named region labels, and Euler subset/disjoint relations. Used by data analysts, educators, researchers, and product managers for overlap analysis, set logic, and audience segmentation.

venn·§
↘ preview
100%
Customer Segments Venn/Euler diagram "Customer Segments": 3 sets, 7 regions. Customer Segments Set Email subscribers Set Paid users Set Mobile app users Email subscribers Paid users Mobile app users 1840 920 2100 650 12400 3200 8700
UTF-8 · LF · 11 lines · 248 chars✓ parsed·34.1 ms·3.6 KB SVG

Four composable DSL modes — mix declarative counts, element lists, region labels, and Euler hierarchy in a single diagram.


Mode 1 — Declarative counts

Define sets, then assign values to intersections:

venn "Support Tickets"
set A "Bug reports" [color: "#E53935"]
set B "Feature requests" [color: "#1E88E5"]

A & B : 23         # overlap value
A only : 145       # A minus B
B only : 312       # B minus A

Mode 2 — Element enumeration

List elements per set; intersections are computed automatically:

venn "Tech Skills"
Frontend = { React, TypeScript, CSS, Webpack }
Backend  = { TypeScript, Python, PostgreSQL, Redis }
DevOps   = { Docker, Kubernetes, Redis, PostgreSQL }

Mode 3 — Region labels

Label regions with text instead of counts:

venn "Go-to-Market"
set A "Awareness"
set B "Consideration"
set C "Purchase"

region A & B : "Nurture"
region B & C : "Convert"
region A & B & C : "Loyal customer"

Mode 4 — Euler (subset / disjoint)

Express set hierarchy and separation:

venn "Biology"
set mammals "Mammals"
set dogs "Dogs"
set cats "Cats"
set fish "Fish"

dogs subset mammals
cats subset mammals
fish disjoint mammals

Euler relations: subset (or in), disjoint, overlap


Set definition

set ID "Label" [color: "#hex"]
PropertyValuesMeaning
colorhex stringFill color for this set

Config options

config: proportional = true    # area proportional to value
config: showCounts = true      # always show numbers (default: auto)
config: showPercent = true     # show % of total
config: palette = default      # default | brand | monochrome
config: blendMode = multiply   # multiply | screen | none

Examples

Skills overlap (enumeration)

venn "Full-Stack Team Skills"
Frontend = { React, TypeScript, CSS, Jest }
Backend  = { TypeScript, Node.js, PostgreSQL, Jest }
Infra    = { Docker, Kubernetes, PostgreSQL, Terraform }

Market segments (declarative)

venn "Product Personas"
set power "Power Users" [color: "#7B1FA2"]
set casual "Casual Users" [color: "#0288D1"]
set trial "Trial Users" [color: "#388E3C"]

power & casual : 340
casual & trial : 890
power & trial : 120
power & casual & trial : 45
power only : 1200
casual only : 5600
trial only : 3100

Taxonomy (Euler)

venn "Programming Paradigms"
set prog "Programming Languages"
set oop "Object-Oriented"
set fp "Functional"
set python "Python"
set haskell "Haskell"
set java "Java"

oop subset prog
fp subset prog
python subset oop
java subset oop
haskell subset fp
python overlap fp