Last updated
What Is a Venn Diagram?
A Venn diagram uses overlapping circles to show relationships between sets — what's unique to each set and what they share. The Venn Diagram Generator creates two-set and three-set diagrams from your data, with automatic intersection calculation, proportional sizing, and export to SVG or PNG.
Two-Set Venn Diagram: Programming Languages
Set A (Frontend languages): JavaScript, TypeScript, HTML, CSS, Dart
Set B (Backend languages): Python, Java, Go, Ruby, PHP, TypeScript, JavaScript
Calculated regions:
A only (frontend only): HTML, CSS, Dart
A ∩ B (both): JavaScript, TypeScript
B only (backend only): Python, Java, Go, Ruby, PHP
Diagram:
┌─────────────────────────────────────────┐
│ ┌──────────────┐ ┌──────────────┐ │
│ │ HTML │ │ Python │ │
│ │ CSS ┌────┤ ├────┐ Java │ │
│ │ Dart │ JS │ │ TS │ Go │ │
│ │ │ TS │ │ JS │ Ruby │ │
│ │ └────┤ ├────┘ PHP │ │
│ └──────────────┘ └──────────────┘ │
│ Frontend Backend │
└─────────────────────────────────────────┘
Statistics:
|A| = 5, |B| = 7, |A ∩ B| = 2, |A ∪ B| = 10
Three-Set Venn Diagram: Skills
Set A: Design skills (Figma, Photoshop, Illustrator, CSS, Typography)
Set B: Development skills (JavaScript, Python, CSS, SQL, Git)
Set C: Marketing skills (SEO, Analytics, Content, SQL, Figma)
Seven regions:
A only: Photoshop, Illustrator, Typography
B only: JavaScript, Python, Git
C only: SEO, Analytics, Content
A ∩ B only: CSS
A ∩ C only: Figma
B ∩ C only: SQL
A ∩ B ∩ C: (none in this example)
Diagram (3-circle):
┌──────────┐
│ Design │
│ Photo │
┌──┤ Illus ┌─┤──┐
│ │ Typo │ │ │
│Dev│ CSS │Figma│Mkt│
│JS │ │ SQL │SEO│
│Py │ │ │Ana│
└──┤ Git ├─┤──┘
└──────────┘
Numerical Venn Diagram
Market research: Customer segments
Set A: Email subscribers = 1,200
Set B: Social media followers = 800
A ∩ B (both): = 300
Calculated:
A only: 1,200 - 300 = 900
B only: 800 - 300 = 500
A ∩ B: 300
A ∪ B: 900 + 500 + 300 = 1,700
Percentages of total (1,700):
Email only: 52.9%
Social only: 29.4%
Both: 17.6%
SQL JOIN Visualization with Venn Diagrams
Table A: Customers (id: 1,2,3,4,5)
Table B: Orders (customer_id: 3,4,5,6,7)
INNER JOIN (A ∩ B):
Returns: customers 3, 4, 5 (in both tables)
SQL: SELECT * FROM customers INNER JOIN orders ON customers.id = orders.customer_id
LEFT JOIN (all of A + intersection):
Returns: customers 1,2,3,4,5 (all customers, orders where they exist)
SQL: SELECT * FROM customers LEFT JOIN orders ON customers.id = orders.customer_id
RIGHT JOIN (intersection + all of B):
Returns: customer_ids 3,4,5,6,7 (all orders, customers where they exist)
FULL OUTER JOIN (A ∪ B):
Returns: all rows from both tables
SQL: SELECT * FROM customers FULL OUTER JOIN orders ON customers.id = orders.customer_id
LEFT ONLY (A - B):
Returns: customers 1, 2 (customers with no orders)
SQL: ... WHERE orders.customer_id IS NULL
Set Theory Operations
Given:
A = {1, 2, 3, 4, 5}
B = {3, 4, 5, 6, 7}
Union (A ∪ B): {1, 2, 3, 4, 5, 6, 7} — all elements
Intersection (A ∩ B): {3, 4, 5} — shared elements
Difference (A - B): {1, 2} — in A but not B
Difference (B - A): {6, 7} — in B but not A
Symmetric diff: {1, 2, 6, 7} — in either but not both
|A ∪ B| = |A| + |B| - |A ∩ B| = 5 + 5 - 3 = 7
Business Use Case: Market Segmentation
Three-set diagram for customer analysis:
Set A: Customers who bought Product X (450 customers)
Set B: Customers who bought Product Y (380 customers)
Set C: Customers who used Support (200 customers)
Intersections:
A ∩ B: 120 (bought both X and Y)
A ∩ C: 80 (bought X and used support)
B ∩ C: 60 (bought Y and used support)
A ∩ B ∩ C: 30 (bought both and used support)
Insights:
- 30 customers bought both products AND needed support
→ potential product compatibility issue
- 120 customers bought both products
→ good candidates for bundle offers
- 200 - 80 - 60 + 30 = 90 support users bought neither product
→ potential pre-sales support contacts
Export Options
SVG export:
<svg viewBox="0 0 400 300" xmlns="http://www.w3.org/2000/svg">
<circle cx="150" cy="150" r="100" fill="rgba(66,133,244,0.4)" stroke="#4285f4"/>
<circle cx="250" cy="150" r="100" fill="rgba(234,67,53,0.4)" stroke="#ea4335"/>
<text x="100" y="150">Set A</text>
<text x="200" y="150">A∩B</text>
<text x="290" y="150">Set B</text>
</svg>
PNG export: 800×600px, transparent background
JSON export: { setA: [...], setB: [...], intersection: [...] }
Common Use Cases
- Teaching set theory and logic in education
- Visualizing SQL JOIN operations for developers
- Market segmentation and customer overlap analysis
- Competitive analysis (features shared vs unique)
- Project planning (skills overlap across team members)
- Data analysis (showing overlap between datasets)