Skip to content

D3 Chart Framework Examples ​

This document showcases all 31 D3 chart types available in the DataGlass D3 framework with realistic sample data.

Hierarchy Charts ​

Treemap ​

Software package dependencies (inspired by D3's Flare dataset):

View Source
type: treemap
engine: d3
data:
  source: |
    [
      {"name": "flare", "parent": null, "value": 0},
      {"name": "analytics", "parent": "flare", "value": 0},
      {"name": "animate", "parent": "flare", "value": 0},
      {"name": "data", "parent": "flare", "value": 0},
      {"name": "display", "parent": "flare", "value": 0},
      {"name": "cluster", "parent": "analytics", "value": 4200},
      {"name": "graph", "parent": "analytics", "value": 3800},
      {"name": "optimization", "parent": "analytics", "value": 2100},
      {"name": "Easing", "parent": "animate", "value": 2400},
      {"name": "FunctionSequence", "parent": "animate", "value": 1800},
      {"name": "Tween", "parent": "animate", "value": 3100},
      {"name": "Converters", "parent": "data", "value": 2800},
      {"name": "DataField", "parent": "data", "value": 1600},
      {"name": "DataSchema", "parent": "data", "value": 2900},
      {"name": "DataSet", "parent": "data", "value": 3400},
      {"name": "DirtySprite", "parent": "display", "value": 2200},
      {"name": "LineSprite", "parent": "display", "value": 1900},
      {"name": "TextSprite", "parent": "display", "value": 2600}
    ]
hierarchy:
  id: name
  parent: parent
  value: value
width: 800
height: 500
maxWidth: 1200
title: "Software Package Dependencies"
colorScheme: blab
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single
subtitle: "as hierarchy"

Sunburst ​

Disk space usage by folder:

View Source
type: sunburst
engine: d3
data:
  source: |
    [
      {"name": "root", "parent": null, "value": 0},
      {"name": "Documents", "parent": "root", "value": 0},
      {"name": "Projects", "parent": "root", "value": 0},
      {"name": "Media", "parent": "root", "value": 0},
      {"name": "Work", "parent": "Documents", "value": 2500},
      {"name": "Personal", "parent": "Documents", "value": 1800},
      {"name": "Archives", "parent": "Documents", "value": 3200},
      {"name": "WebApp", "parent": "Projects", "value": 4500},
      {"name": "MobileApp", "parent": "Projects", "value": 3800},
      {"name": "DataScience", "parent": "Projects", "value": 5200},
      {"name": "Photos", "parent": "Media", "value": 8500},
      {"name": "Videos", "parent": "Media", "value": 12000},
      {"name": "Music", "parent": "Media", "value": 4200}
    ]
hierarchy:
  id: name
  parent: parent
  value: value
width: 550
height: 550
title: "Disk Space Usage (MB)"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Circle Packing ​

Research paper citations by field:

View Source
type: circle-packing
engine: d3
data:
  source: |
    [
      {"name": "Science", "parent": null, "value": 0},
      {"name": "Physics", "parent": "Science", "value": 0},
      {"name": "Biology", "parent": "Science", "value": 0},
      {"name": "Chemistry", "parent": "Science", "value": 0},
      {"name": "Computer Science", "parent": "Science", "value": 0},
      {"name": "Quantum Mechanics", "parent": "Physics", "value": 4500},
      {"name": "Relativity", "parent": "Physics", "value": 3200},
      {"name": "Thermodynamics", "parent": "Physics", "value": 2800},
      {"name": "Genetics", "parent": "Biology", "value": 5100},
      {"name": "Neuroscience", "parent": "Biology", "value": 4800},
      {"name": "Ecology", "parent": "Biology", "value": 2900},
      {"name": "Organic", "parent": "Chemistry", "value": 3600},
      {"name": "Inorganic", "parent": "Chemistry", "value": 2400},
      {"name": "Machine Learning", "parent": "Computer Science", "value": 7200},
      {"name": "Algorithms", "parent": "Computer Science", "value": 4100},
      {"name": "Networks", "parent": "Computer Science", "value": 3500}
    ]
hierarchy:
  id: name
  parent: parent
  value: value
width: 600
height: 600
title: "Research Citations by Field"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Dendrogram ​

Company organization structure:

View Source
type: dendrogram
engine: d3
data:
  source: |
    [
      {"name": "CEO", "parent": null},
      {"name": "CTO", "parent": "CEO"},
      {"name": "CFO", "parent": "CEO"},
      {"name": "COO", "parent": "CEO"},
      {"name": "VP Engineering", "parent": "CTO"},
      {"name": "VP Product", "parent": "CTO"},
      {"name": "VP Data", "parent": "CTO"},
      {"name": "Controller", "parent": "CFO"},
      {"name": "Treasurer", "parent": "CFO"},
      {"name": "VP Operations", "parent": "COO"},
      {"name": "VP HR", "parent": "COO"},
      {"name": "Frontend Team", "parent": "VP Engineering"},
      {"name": "Backend Team", "parent": "VP Engineering"},
      {"name": "DevOps Team", "parent": "VP Engineering"},
      {"name": "Design Team", "parent": "VP Product"},
      {"name": "Research Team", "parent": "VP Product"},
      {"name": "Analytics Team", "parent": "VP Data"},
      {"name": "ML Team", "parent": "VP Data"}
    ]
hierarchy:
  id: name
  parent: parent
orientation: horizontal
width: 800
height: 500
title: "Organization Chart"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Icicle (Partition) ​

File system structure with sizes:

View Source
type: icicle
engine: d3
data:
  source: |
    [
      {"name": "/", "parent": null, "value": 0},
      {"name": "usr", "parent": "/", "value": 0},
      {"name": "var", "parent": "/", "value": 0},
      {"name": "home", "parent": "/", "value": 0},
      {"name": "bin", "parent": "usr", "value": 2400},
      {"name": "lib", "parent": "usr", "value": 8500},
      {"name": "share", "parent": "usr", "value": 4200},
      {"name": "local", "parent": "usr", "value": 3100},
      {"name": "log", "parent": "var", "value": 5600},
      {"name": "cache", "parent": "var", "value": 3800},
      {"name": "tmp", "parent": "var", "value": 1200},
      {"name": "user1", "parent": "home", "value": 15000},
      {"name": "user2", "parent": "home", "value": 8500},
      {"name": "shared", "parent": "home", "value": 4200}
    ]
hierarchy:
  id: name
  parent: parent
  value: value
width: 700
height: 450
title: "File System Usage (MB)"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Tidy Tree ​

Biological taxonomy:

View Source
type: tidy-tree
engine: d3
data:
  source: |
    [
      {"name": "Animalia", "parent": null},
      {"name": "Chordata", "parent": "Animalia"},
      {"name": "Arthropoda", "parent": "Animalia"},
      {"name": "Mammalia", "parent": "Chordata"},
      {"name": "Aves", "parent": "Chordata"},
      {"name": "Reptilia", "parent": "Chordata"},
      {"name": "Insecta", "parent": "Arthropoda"},
      {"name": "Arachnida", "parent": "Arthropoda"},
      {"name": "Primates", "parent": "Mammalia"},
      {"name": "Carnivora", "parent": "Mammalia"},
      {"name": "Rodentia", "parent": "Mammalia"},
      {"name": "Passeriformes", "parent": "Aves"},
      {"name": "Accipitriformes", "parent": "Aves"},
      {"name": "Squamata", "parent": "Reptilia"},
      {"name": "Coleoptera", "parent": "Insecta"},
      {"name": "Lepidoptera", "parent": "Insecta"},
      {"name": "Diptera", "parent": "Insecta"}
    ]
hierarchy:
  id: name
  parent: parent
orientation: horizontal
width: 750
height: 500
title: "Animal Taxonomy"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Network Charts ​

Force-Directed Graph ​

Social network (inspired by Les Miserables character network):

View Source
type: force-directed
engine: d3
data:
  source: |
    [
      {"source": "Valjean", "target": "Myriel", "value": 5},
      {"source": "Valjean", "target": "Fantine", "value": 8},
      {"source": "Valjean", "target": "Cosette", "value": 10},
      {"source": "Valjean", "target": "Javert", "value": 7},
      {"source": "Valjean", "target": "Marius", "value": 6},
      {"source": "Fantine", "target": "Tholomyes", "value": 3},
      {"source": "Fantine", "target": "Cosette", "value": 4},
      {"source": "Cosette", "target": "Marius", "value": 9},
      {"source": "Marius", "target": "Eponine", "value": 5},
      {"source": "Marius", "target": "Enjolras", "value": 7},
      {"source": "Enjolras", "target": "Combeferre", "value": 6},
      {"source": "Enjolras", "target": "Courfeyrac", "value": 6},
      {"source": "Enjolras", "target": "Gavroche", "value": 4},
      {"source": "Gavroche", "target": "Eponine", "value": 5},
      {"source": "Javert", "target": "Fantine", "value": 2},
      {"source": "Thenardier", "target": "Eponine", "value": 4},
      {"source": "Thenardier", "target": "Gavroche", "value": 3},
      {"source": "Thenardier", "target": "Valjean", "value": 4}
    ]
network:
  source: source
  target: target
  value: value
width: 650
height: 500
title: "Les Miserables Character Network"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Arc Diagram ​

Software module dependencies:

View Source
type: arc-diagram
engine: d3
data:
  source: |
    [
      {"source": "main", "target": "config", "value": 3},
      {"source": "main", "target": "utils", "value": 5},
      {"source": "main", "target": "api", "value": 4},
      {"source": "api", "target": "auth", "value": 6},
      {"source": "api", "target": "db", "value": 7},
      {"source": "api", "target": "utils", "value": 3},
      {"source": "auth", "target": "crypto", "value": 4},
      {"source": "auth", "target": "db", "value": 5},
      {"source": "db", "target": "config", "value": 2},
      {"source": "db", "target": "utils", "value": 3},
      {"source": "utils", "target": "config", "value": 2},
      {"source": "crypto", "target": "utils", "value": 1}
    ]
network:
  source: source
  target: target
  value: value
width: 700
height: 350
title: "Module Dependencies"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Sankey Diagram ​

Energy flow (inspired by D3's energy Sankey):

View Source
type: sankey
engine: d3
data:
  source: |
    [
      {"source": "Coal", "target": "Electricity", "value": 250},
      {"source": "Natural Gas", "target": "Electricity", "value": 180},
      {"source": "Nuclear", "target": "Electricity", "value": 120},
      {"source": "Solar", "target": "Electricity", "value": 45},
      {"source": "Wind", "target": "Electricity", "value": 65},
      {"source": "Hydro", "target": "Electricity", "value": 55},
      {"source": "Electricity", "target": "Residential", "value": 280},
      {"source": "Electricity", "target": "Commercial", "value": 220},
      {"source": "Electricity", "target": "Industrial", "value": 180},
      {"source": "Natural Gas", "target": "Residential", "value": 90},
      {"source": "Natural Gas", "target": "Commercial", "value": 60},
      {"source": "Petroleum", "target": "Transportation", "value": 350},
      {"source": "Electricity", "target": "Transportation", "value": 35}
    ]
network:
  source: source
  target: target
  value: value
width: 800
height: 500
title: "US Energy Flow (TWh)"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Edge Bundling ​

Software package imports:

View Source
type: edge-bundling
engine: d3
data:
  source: |
    [
      {"name": "react", "group": "frontend", "imports": ["react-dom", "prop-types"]},
      {"name": "react-dom", "group": "frontend", "imports": ["react"]},
      {"name": "prop-types", "group": "frontend", "imports": []},
      {"name": "redux", "group": "state", "imports": ["react-redux"]},
      {"name": "react-redux", "group": "state", "imports": ["react", "redux"]},
      {"name": "axios", "group": "network", "imports": []},
      {"name": "express", "group": "backend", "imports": ["body-parser", "cors"]},
      {"name": "body-parser", "group": "backend", "imports": []},
      {"name": "cors", "group": "backend", "imports": []},
      {"name": "mongoose", "group": "database", "imports": []},
      {"name": "sequelize", "group": "database", "imports": []}
    ]
hierarchy:
  id: name
  parent: group
width: 550
height: 550
title: "NPM Package Dependencies"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Parallel Sets ​

Titanic survival data:

View Source
type: parallel-sets
engine: d3
data:
  source: |
    [
      {"survived": "Yes", "sex": "Female", "class": "First", "count": 141},
      {"survived": "Yes", "sex": "Female", "class": "Second", "count": 93},
      {"survived": "Yes", "sex": "Female", "class": "Third", "count": 90},
      {"survived": "No", "sex": "Female", "class": "First", "count": 4},
      {"survived": "No", "sex": "Female", "class": "Second", "count": 13},
      {"survived": "No", "sex": "Female", "class": "Third", "count": 106},
      {"survived": "Yes", "sex": "Male", "class": "First", "count": 62},
      {"survived": "Yes", "sex": "Male", "class": "Second", "count": 25},
      {"survived": "Yes", "sex": "Male", "class": "Third", "count": 88},
      {"survived": "No", "sex": "Male", "class": "First", "count": 118},
      {"survived": "No", "sex": "Male", "class": "Second", "count": 154},
      {"survived": "No", "sex": "Male", "class": "Third", "count": 422}
    ]
dimensions:
  - class
  - sex
  - survived
width: 700
height: 450
title: "Titanic Survival by Class and Gender"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single
colorScheme: blab

Chord Diagram ​

Global trade flows:

View Source
type: chord
engine: d3
data:
  source: |
    [
      {"source": "USA", "target": "China", "value": 120},
      {"source": "USA", "target": "EU", "value": 280},
      {"source": "USA", "target": "Japan", "value": 75},
      {"source": "USA", "target": "Mexico", "value": 265},
      {"source": "China", "target": "USA", "value": 450},
      {"source": "China", "target": "EU", "value": 385},
      {"source": "China", "target": "Japan", "value": 145},
      {"source": "EU", "target": "USA", "value": 320},
      {"source": "EU", "target": "China", "value": 195},
      {"source": "EU", "target": "Japan", "value": 65},
      {"source": "Japan", "target": "USA", "value": 135},
      {"source": "Japan", "target": "China", "value": 160},
      {"source": "Mexico", "target": "USA", "value": 325}
    ]
network:
  source: source
  target: target
  value: value
width: 550
height: 550
title: "Global Trade Flows ($B)"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single
colorScheme: blab

Directed Chord ​

Migration flows between regions:

View Source
type: directed-chord
engine: d3
data:
  source: |
    [
      {"from": "Asia", "to": "North America", "value": 850},
      {"from": "Asia", "to": "Europe", "value": 420},
      {"from": "Asia", "to": "Oceania", "value": 280},
      {"from": "Europe", "to": "North America", "value": 380},
      {"from": "Europe", "to": "Asia", "value": 150},
      {"from": "Europe", "to": "Oceania", "value": 120},
      {"from": "Latin America", "to": "North America", "value": 720},
      {"from": "Latin America", "to": "Europe", "value": 250},
      {"from": "Africa", "to": "Europe", "value": 340},
      {"from": "Africa", "to": "North America", "value": 180},
      {"from": "North America", "to": "Europe", "value": 220},
      {"from": "North America", "to": "Asia", "value": 95}
    ]
network:
  source: from
  target: to
  value: value
width: 550
height: 550
title: "International Migration Flows (thousands)"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Analysis Charts ​

Boxplot ​

Employee salary distribution by department:

View Source
type: boxplot
engine: d3
data:
  source: |
    [
      {"department": "Engineering", "salary": 95000},
      {"department": "Engineering", "salary": 105000},
      {"department": "Engineering", "salary": 88000},
      {"department": "Engineering", "salary": 125000},
      {"department": "Engineering", "salary": 115000},
      {"department": "Engineering", "salary": 92000},
      {"department": "Engineering", "salary": 135000},
      {"department": "Engineering", "salary": 78000},
      {"department": "Sales", "salary": 72000},
      {"department": "Sales", "salary": 85000},
      {"department": "Sales", "salary": 95000},
      {"department": "Sales", "salary": 68000},
      {"department": "Sales", "salary": 78000},
      {"department": "Sales", "salary": 110000},
      {"department": "Sales", "salary": 62000},
      {"department": "Marketing", "salary": 65000},
      {"department": "Marketing", "salary": 75000},
      {"department": "Marketing", "salary": 82000},
      {"department": "Marketing", "salary": 70000},
      {"department": "Marketing", "salary": 88000},
      {"department": "Marketing", "salary": 58000},
      {"department": "HR", "salary": 55000},
      {"department": "HR", "salary": 62000},
      {"department": "HR", "salary": 68000},
      {"department": "HR", "salary": 58000},
      {"department": "HR", "salary": 72000}
    ]
x: department
y: salary
width: 800
height: 400
title: "Salary Distribution by Department"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Histogram ​

Age distribution of customers:

View Source
type: histogram
engine: d3
data:
  source: |
    [
      {"age": 18}, {"age": 22}, {"age": 25}, {"age": 28}, {"age": 31},
      {"age": 23}, {"age": 27}, {"age": 29}, {"age": 32}, {"age": 35},
      {"age": 24}, {"age": 26}, {"age": 30}, {"age": 33}, {"age": 36},
      {"age": 38}, {"age": 41}, {"age": 44}, {"age": 47}, {"age": 50},
      {"age": 39}, {"age": 42}, {"age": 45}, {"age": 48}, {"age": 52},
      {"age": 40}, {"age": 43}, {"age": 46}, {"age": 49}, {"age": 55},
      {"age": 58}, {"age": 61}, {"age": 64}, {"age": 67}, {"age": 70},
      {"age": 35}, {"age": 37}, {"age": 34}, {"age": 36}, {"age": 38},
      {"age": 28}, {"age": 30}, {"age": 32}, {"age": 29}, {"age": 31},
      {"age": 45}, {"age": 48}, {"age": 51}, {"age": 54}, {"age": 57}
    ]
x: age
bins: 12
width: 600
height: 400
title: "Customer Age Distribution"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Ridgeline (Joy Plot) ​

Temperature distribution by month:

View Source
type: ridgeline
engine: d3
data:
  source: |
    [
      {"month": "January", "temp": 32}, {"month": "January", "temp": 28},
      {"month": "January", "temp": 35}, {"month": "January", "temp": 30},
      {"month": "January", "temp": 25}, {"month": "January", "temp": 33},
      {"month": "April", "temp": 55}, {"month": "April", "temp": 58},
      {"month": "April", "temp": 52}, {"month": "April", "temp": 60},
      {"month": "April", "temp": 48}, {"month": "April", "temp": 56},
      {"month": "July", "temp": 85}, {"month": "July", "temp": 88},
      {"month": "July", "temp": 82}, {"month": "July", "temp": 90},
      {"month": "July", "temp": 78}, {"month": "July", "temp": 86},
      {"month": "October", "temp": 58}, {"month": "October", "temp": 55},
      {"month": "October", "temp": 62}, {"month": "October", "temp": 50},
      {"month": "October", "temp": 65}, {"month": "October", "temp": 52}
    ]
x: temp
group: month
width: 650
height: 450
title: "Temperature Distribution by Month (F)"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Contour (Density) ​

Earthquake locations (latitude/longitude clustering):

View Source
type: contour
engine: d3
data:
  source: |
    [
      {"x": 35.5, "y": 139.8}, {"x": 35.7, "y": 139.6}, {"x": 35.4, "y": 139.9},
      {"x": 35.8, "y": 139.5}, {"x": 35.6, "y": 139.7}, {"x": 35.3, "y": 140.0},
      {"x": 34.0, "y": 135.5}, {"x": 34.2, "y": 135.3}, {"x": 34.1, "y": 135.6},
      {"x": 34.3, "y": 135.4}, {"x": 33.9, "y": 135.7}, {"x": 34.4, "y": 135.2},
      {"x": 37.5, "y": 122.4}, {"x": 37.7, "y": 122.2}, {"x": 37.4, "y": 122.5},
      {"x": 37.8, "y": 122.1}, {"x": 37.6, "y": 122.3}, {"x": 37.3, "y": 122.6},
      {"x": 19.4, "y": 155.3}, {"x": 19.6, "y": 155.1}, {"x": 19.3, "y": 155.4},
      {"x": 19.7, "y": 155.0}, {"x": 19.5, "y": 155.2}, {"x": 19.2, "y": 155.5}
    ]
x: x
y: y
thresholds: 15
width: 600
height: 450
title: "Seismic Activity Density"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Violin ​

Response time distribution by server:

View Source
type: violin
engine: d3
data:
  source: |
    [
      {"server": "US-East", "latency": 45}, {"server": "US-East", "latency": 52},
      {"server": "US-East", "latency": 38}, {"server": "US-East", "latency": 65},
      {"server": "US-East", "latency": 48}, {"server": "US-East", "latency": 55},
      {"server": "US-East", "latency": 42}, {"server": "US-East", "latency": 58},
      {"server": "US-West", "latency": 35}, {"server": "US-West", "latency": 42},
      {"server": "US-West", "latency": 28}, {"server": "US-West", "latency": 48},
      {"server": "US-West", "latency": 38}, {"server": "US-West", "latency": 45},
      {"server": "US-West", "latency": 32}, {"server": "US-West", "latency": 50},
      {"server": "EU-West", "latency": 85}, {"server": "EU-West", "latency": 92},
      {"server": "EU-West", "latency": 78}, {"server": "EU-West", "latency": 105},
      {"server": "EU-West", "latency": 88}, {"server": "EU-West", "latency": 95},
      {"server": "EU-West", "latency": 82}, {"server": "EU-West", "latency": 98},
      {"server": "Asia", "latency": 125}, {"server": "Asia", "latency": 138},
      {"server": "Asia", "latency": 115}, {"server": "Asia", "latency": 145},
      {"server": "Asia", "latency": 128}, {"server": "Asia", "latency": 135},
      {"server": "Asia", "latency": 120}, {"server": "Asia", "latency": 142}
    ]
x: server
y: latency
width: 600
height: 400
title: "API Latency by Region (ms)"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Bollinger Bands ​

Stock price with volatility bands:

View Source
type: bollinger
engine: d3
data:
  source: |
    [
      {"date": "2024-01-02", "price": 185.2},
      {"date": "2024-01-03", "price": 184.5},
      {"date": "2024-01-04", "price": 182.8},
      {"date": "2024-01-05", "price": 181.2},
      {"date": "2024-01-08", "price": 183.5},
      {"date": "2024-01-09", "price": 185.8},
      {"date": "2024-01-10", "price": 186.2},
      {"date": "2024-01-11", "price": 188.5},
      {"date": "2024-01-12", "price": 187.2},
      {"date": "2024-01-16", "price": 189.8},
      {"date": "2024-01-17", "price": 191.5},
      {"date": "2024-01-18", "price": 193.2},
      {"date": "2024-01-19", "price": 192.8},
      {"date": "2024-01-22", "price": 195.5},
      {"date": "2024-01-23", "price": 194.2},
      {"date": "2024-01-24", "price": 196.8},
      {"date": "2024-01-25", "price": 198.5},
      {"date": "2024-01-26", "price": 197.2},
      {"date": "2024-01-29", "price": 199.8},
      {"date": "2024-01-30", "price": 201.5}
    ]
x: date
y: price
period: 10
stdDev: 2
width: 700
height: 600
title: "AAPL Stock with Bollinger Bands"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Line Charts ​

Candlestick ​

OHLC stock data:

View Source
type: candlestick
engine: d3
data:
  source: |
    [
      {"date": "2024-01-02", "open": 185.0, "high": 186.5, "low": 183.2, "close": 185.2},
      {"date": "2024-01-03", "open": 185.2, "high": 186.0, "low": 183.5, "close": 184.5},
      {"date": "2024-01-04", "open": 184.5, "high": 185.2, "low": 181.8, "close": 182.8},
      {"date": "2024-01-05", "open": 182.8, "high": 183.5, "low": 180.5, "close": 181.2},
      {"date": "2024-01-08", "open": 181.2, "high": 184.2, "low": 180.8, "close": 183.5},
      {"date": "2024-01-09", "open": 183.5, "high": 186.5, "low": 183.0, "close": 185.8},
      {"date": "2024-01-10", "open": 185.8, "high": 187.2, "low": 185.0, "close": 186.2},
      {"date": "2024-01-11", "open": 186.2, "high": 189.5, "low": 186.0, "close": 188.5},
      {"date": "2024-01-12", "open": 188.5, "high": 189.0, "low": 186.5, "close": 187.2},
      {"date": "2024-01-16", "open": 187.2, "high": 190.5, "low": 187.0, "close": 189.8},
      {"date": "2024-01-17", "open": 189.8, "high": 192.2, "low": 189.5, "close": 191.5},
      {"date": "2024-01-18", "open": 191.5, "high": 194.0, "low": 191.0, "close": 193.2}
    ]
x: date
width: 700
height: 400
title: "AAPL Stock Price"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Horizon Chart ​

Server CPU utilization over time:

View Source
type: horizon
engine: d3
data:
  source: |
    [
      {"time": "2024-01-01T00:00", "cpu": 25}, {"time": "2024-01-01T01:00", "cpu": 18},
      {"time": "2024-01-01T02:00", "cpu": 12}, {"time": "2024-01-01T03:00", "cpu": 8},
      {"time": "2024-01-01T04:00", "cpu": 15}, {"time": "2024-01-01T05:00", "cpu": 22},
      {"time": "2024-01-01T06:00", "cpu": 35}, {"time": "2024-01-01T07:00", "cpu": 55},
      {"time": "2024-01-01T08:00", "cpu": 72}, {"time": "2024-01-01T09:00", "cpu": 85},
      {"time": "2024-01-01T10:00", "cpu": 78}, {"time": "2024-01-01T11:00", "cpu": 82},
      {"time": "2024-01-01T12:00", "cpu": 65}, {"time": "2024-01-01T13:00", "cpu": 75},
      {"time": "2024-01-01T14:00", "cpu": 88}, {"time": "2024-01-01T15:00", "cpu": 92},
      {"time": "2024-01-01T16:00", "cpu": 85}, {"time": "2024-01-01T17:00", "cpu": 68},
      {"time": "2024-01-01T18:00", "cpu": 45}, {"time": "2024-01-01T19:00", "cpu": 38},
      {"time": "2024-01-01T20:00", "cpu": 42}, {"time": "2024-01-01T21:00", "cpu": 35},
      {"time": "2024-01-01T22:00", "cpu": 28}, {"time": "2024-01-01T23:00", "cpu": 22}
    ]
x: time
y: cpu
bands: 4
width: 700
height: 180
title: "Server CPU Usage (%)"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Slope Chart ​

Company rankings before/after acquisition:

View Source
type: slope
engine: d3
data:
  source: |
    [
      {"company": "TechCorp", "before": 85, "after": 92},
      {"company": "DataInc", "before": 78, "after": 65},
      {"company": "CloudSys", "before": 92, "after": 88},
      {"company": "AILabs", "before": 65, "after": 95},
      {"company": "NetWorks", "before": 72, "after": 78},
      {"company": "SecureTech", "before": 88, "after": 82}
    ]
x: company
y:
  - before
  - after
width: 550
height: 450
title: "Company Performance Score: Before vs After Acquisition"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Parallel Coordinates ​

Iris flower measurements:

View Source
type: parallel-coords
engine: d3
data:
  source: |
    [
      {"sepal_length": 5.1, "sepal_width": 3.5, "petal_length": 1.4, "petal_width": 0.2, "species": "setosa"},
      {"sepal_length": 4.9, "sepal_width": 3.0, "petal_length": 1.4, "petal_width": 0.2, "species": "setosa"},
      {"sepal_length": 5.4, "sepal_width": 3.9, "petal_length": 1.7, "petal_width": 0.4, "species": "setosa"},
      {"sepal_length": 4.6, "sepal_width": 3.4, "petal_length": 1.4, "petal_width": 0.3, "species": "setosa"},
      {"sepal_length": 5.0, "sepal_width": 3.4, "petal_length": 1.5, "petal_width": 0.2, "species": "setosa"},
      {"sepal_length": 7.0, "sepal_width": 3.2, "petal_length": 4.7, "petal_width": 1.4, "species": "versicolor"},
      {"sepal_length": 6.4, "sepal_width": 3.2, "petal_length": 4.5, "petal_width": 1.5, "species": "versicolor"},
      {"sepal_length": 6.9, "sepal_width": 3.1, "petal_length": 4.9, "petal_width": 1.5, "species": "versicolor"},
      {"sepal_length": 5.5, "sepal_width": 2.3, "petal_length": 4.0, "petal_width": 1.3, "species": "versicolor"},
      {"sepal_length": 6.5, "sepal_width": 2.8, "petal_length": 4.6, "petal_width": 1.5, "species": "versicolor"},
      {"sepal_length": 6.3, "sepal_width": 3.3, "petal_length": 6.0, "petal_width": 2.5, "species": "virginica"},
      {"sepal_length": 5.8, "sepal_width": 2.7, "petal_length": 5.1, "petal_width": 1.9, "species": "virginica"},
      {"sepal_length": 7.1, "sepal_width": 3.0, "petal_length": 5.9, "petal_width": 2.1, "species": "virginica"},
      {"sepal_length": 6.5, "sepal_width": 3.0, "petal_length": 5.8, "petal_width": 2.2, "species": "virginica"},
      {"sepal_length": 7.6, "sepal_width": 3.0, "petal_length": 6.6, "petal_width": 2.1, "species": "virginica"}
    ]
dimensions:
  - sepal_length
  - sepal_width
  - petal_length
  - petal_width
color: species
width: 700
height: 450
title: "Iris Flower Measurements"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Radial Charts ​

Radial Bar ​

Monthly sales performance:

View Source
type: radial-bar
engine: d3
data:
  source: |
    [
      {"month": "Jan", "sales": 42000},
      {"month": "Feb", "sales": 38000},
      {"month": "Mar", "sales": 55000},
      {"month": "Apr", "sales": 48000},
      {"month": "May", "sales": 62000},
      {"month": "Jun", "sales": 71000},
      {"month": "Jul", "sales": 68000},
      {"month": "Aug", "sales": 75000},
      {"month": "Sep", "sales": 58000},
      {"month": "Oct", "sales": 52000},
      {"month": "Nov", "sales": 65000},
      {"month": "Dec", "sales": 85000}
    ]
x: month
y: sales
width: 550
height: 550
title: "Monthly Sales ($)"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Radial Area ​

Wind speed by direction:

View Source
type: radial-area
engine: d3
data:
  source: |
    [
      {"direction": "N", "speed": 12.5},
      {"direction": "NNE", "speed": 8.2},
      {"direction": "NE", "speed": 6.8},
      {"direction": "ENE", "speed": 5.5},
      {"direction": "E", "speed": 7.2},
      {"direction": "ESE", "speed": 9.8},
      {"direction": "SE", "speed": 11.5},
      {"direction": "SSE", "speed": 10.2},
      {"direction": "S", "speed": 8.5},
      {"direction": "SSW", "speed": 14.2},
      {"direction": "SW", "speed": 18.5},
      {"direction": "WSW", "speed": 15.8},
      {"direction": "W", "speed": 12.2},
      {"direction": "WNW", "speed": 9.5},
      {"direction": "NW", "speed": 11.8},
      {"direction": "NNW", "speed": 10.5}
    ]
x: direction
y: speed
width: 550
height: 550
title: "Wind Rose - Average Speed (mph)"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Dot Charts ​

Beeswarm ​

Test scores distribution by class (color-coded):

View Source
type: beeswarm
engine: d3
data:
  source: |
    [
      {"class": "Math", "score": 78}, {"class": "Math", "score": 82},
      {"class": "Math", "score": 85}, {"class": "Math", "score": 79},
      {"class": "Math", "score": 88}, {"class": "Math", "score": 72},
      {"class": "Math", "score": 91}, {"class": "Math", "score": 76},
      {"class": "Math", "score": 84}, {"class": "Math", "score": 80},
      {"class": "Science", "score": 85}, {"class": "Science", "score": 88},
      {"class": "Science", "score": 92}, {"class": "Science", "score": 78},
      {"class": "Science", "score": 95}, {"class": "Science", "score": 82},
      {"class": "Science", "score": 89}, {"class": "Science", "score": 86},
      {"class": "Science", "score": 91}, {"class": "Science", "score": 84},
      {"class": "English", "score": 72}, {"class": "English", "score": 78},
      {"class": "English", "score": 82}, {"class": "English", "score": 75},
      {"class": "English", "score": 88}, {"class": "English", "score": 70},
      {"class": "English", "score": 85}, {"class": "English", "score": 79},
      {"class": "English", "score": 76}, {"class": "English", "score": 81},
      {"class": "History", "score": 68}, {"class": "History", "score": 75},
      {"class": "History", "score": 82}, {"class": "History", "score": 72},
      {"class": "History", "score": 78}, {"class": "History", "score": 85},
      {"class": "History", "score": 70}, {"class": "History", "score": 88},
      {"class": "History", "score": 74}, {"class": "History", "score": 80}
    ]
x: score
color: class
width: 600
height: 300
title: "Student Test Scores by Subject"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Animation Charts ​

Bar Race ​

Company market cap over years:

View Source
type: bar-race
engine: d3
data:
  source: |
    [
      {"company": "Apple", "value": 2100, "year": 2020},
      {"company": "Microsoft", "value": 1680, "year": 2020},
      {"company": "Amazon", "value": 1640, "year": 2020},
      {"company": "Google", "value": 1190, "year": 2020},
      {"company": "Facebook", "value": 780, "year": 2020},
      {"company": "Tesla", "value": 610, "year": 2020},
      {"company": "Apple", "value": 2900, "year": 2021},
      {"company": "Microsoft", "value": 2520, "year": 2021},
      {"company": "Amazon", "value": 1720, "year": 2021},
      {"company": "Google", "value": 1920, "year": 2021},
      {"company": "Tesla", "value": 1060, "year": 2021},
      {"company": "Facebook", "value": 920, "year": 2021},
      {"company": "Apple", "value": 2650, "year": 2022},
      {"company": "Microsoft", "value": 1880, "year": 2022},
      {"company": "Google", "value": 1150, "year": 2022},
      {"company": "Amazon", "value": 970, "year": 2022},
      {"company": "Tesla", "value": 390, "year": 2022},
      {"company": "Meta", "value": 320, "year": 2022},
      {"company": "Apple", "value": 2980, "year": 2023},
      {"company": "Microsoft", "value": 2780, "year": 2023},
      {"company": "Google", "value": 1750, "year": 2023},
      {"company": "Amazon", "value": 1540, "year": 2023},
      {"company": "Nvidia", "value": 1220, "year": 2023},
      {"company": "Tesla", "value": 790, "year": 2023}
    ]
x: company
y: value
time: year
topN: 6
width: 700
height: 400
title: "Tech Company Market Cap ($B)"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Streamgraph ​

Music genre popularity over time:

View Source
type: streamgraph
engine: d3
data:
  source: |
    [
      {"year": "2018", "pop": 28, "rock": 22, "hiphop": 25, "electronic": 15, "country": 10},
      {"year": "2019", "pop": 26, "rock": 20, "hiphop": 28, "electronic": 16, "country": 10},
      {"year": "2020", "pop": 25, "rock": 18, "hiphop": 30, "electronic": 18, "country": 9},
      {"year": "2021", "pop": 24, "rock": 16, "hiphop": 32, "electronic": 20, "country": 8},
      {"year": "2022", "pop": 23, "rock": 15, "hiphop": 33, "electronic": 22, "country": 7},
      {"year": "2023", "pop": 22, "rock": 14, "hiphop": 34, "electronic": 24, "country": 6}
    ]
x: year
keys:
  - pop
  - rock
  - hiphop
  - electronic
  - country
offset: silhouette
height: 550
title: "Music Genre Streaming Share (%)"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single
colorScheme: blab

Interactive Charts ​

Brushable Scatter ​

Car fuel efficiency vs horsepower:

View Source
type: brushable-scatter
engine: d3
data:
  source: |
    [
      {"mpg": 21.0, "hp": 110, "origin": "USA", "name": "Chevrolet Chevelle"},
      {"mpg": 15.0, "hp": 165, "origin": "USA", "name": "Buick Skylark"},
      {"mpg": 18.0, "hp": 150, "origin": "USA", "name": "Plymouth Satellite"},
      {"mpg": 16.0, "hp": 150, "origin": "USA", "name": "AMC Rebel"},
      {"mpg": 17.0, "hp": 140, "origin": "USA", "name": "Ford Torino"},
      {"mpg": 26.0, "hp": 97, "origin": "Europe", "name": "Volkswagen 1131"},
      {"mpg": 24.0, "hp": 95, "origin": "Europe", "name": "Peugeot 504"},
      {"mpg": 22.0, "hp": 97, "origin": "Europe", "name": "Audi 100 LS"},
      {"mpg": 25.0, "hp": 85, "origin": "Europe", "name": "Saab 99"},
      {"mpg": 28.0, "hp": 88, "origin": "Europe", "name": "BMW 2002"},
      {"mpg": 27.0, "hp": 88, "origin": "Japan", "name": "Datsun PL510"},
      {"mpg": 25.0, "hp": 95, "origin": "Japan", "name": "Toyota Corolla"},
      {"mpg": 29.0, "hp": 90, "origin": "Japan", "name": "Toyota Corona"},
      {"mpg": 32.0, "hp": 65, "origin": "Japan", "name": "Honda Civic"},
      {"mpg": 31.0, "hp": 68, "origin": "Japan", "name": "Mazda RX2"},
      {"mpg": 19.0, "hp": 130, "origin": "USA", "name": "Dodge Challenger"},
      {"mpg": 14.0, "hp": 180, "origin": "USA", "name": "Plymouth Cuda"},
      {"mpg": 33.0, "hp": 70, "origin": "Japan", "name": "Datsun 210"},
      {"mpg": 35.0, "hp": 72, "origin": "Japan", "name": "Honda Accord"},
      {"mpg": 30.0, "hp": 75, "origin": "Europe", "name": "Fiat 131"}
    ]
x: hp
y: mpg
color: origin
width: 650
height: 450
title: "Car MPG vs Horsepower (brush to select)"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Large Dataset Examples (50+ Points) ​

The following examples demonstrate DataGlass handling larger datasets with dozens of data points, showcasing real-world use cases.

Stock Price Time Series (40 points) ​

Daily stock prices showing price trends:

View Source
type: line
engine: d3
data:
  source: |
    [
      {"date": "2024-01-02", "close": 185.2}, {"date": "2024-01-03", "close": 184.5},
      {"date": "2024-01-04", "close": 182.8}, {"date": "2024-01-05", "close": 181.2},
      {"date": "2024-01-08", "close": 183.5}, {"date": "2024-01-09", "close": 185.8},
      {"date": "2024-01-10", "close": 186.2}, {"date": "2024-01-11", "close": 188.5},
      {"date": "2024-01-12", "close": 187.2}, {"date": "2024-01-16", "close": 189.8},
      {"date": "2024-01-17", "close": 191.5}, {"date": "2024-01-18", "close": 193.2},
      {"date": "2024-01-19", "close": 192.8}, {"date": "2024-01-22", "close": 195.5},
      {"date": "2024-01-23", "close": 194.2}, {"date": "2024-01-24", "close": 196.8},
      {"date": "2024-01-25", "close": 198.5}, {"date": "2024-01-26", "close": 197.2},
      {"date": "2024-01-29", "close": 199.8}, {"date": "2024-01-30", "close": 201.5},
      {"date": "2024-01-31", "close": 203.2}, {"date": "2024-02-01", "close": 205.8},
      {"date": "2024-02-02", "close": 204.5}, {"date": "2024-02-05", "close": 207.2},
      {"date": "2024-02-06", "close": 208.8}, {"date": "2024-02-07", "close": 210.5},
      {"date": "2024-02-08", "close": 209.2}, {"date": "2024-02-09", "close": 212.5},
      {"date": "2024-02-12", "close": 214.8}, {"date": "2024-02-13", "close": 213.2},
      {"date": "2024-02-14", "close": 216.5}, {"date": "2024-02-15", "close": 218.2},
      {"date": "2024-02-16", "close": 217.8}, {"date": "2024-02-20", "close": 220.5},
      {"date": "2024-02-21", "close": 219.2}, {"date": "2024-02-22", "close": 222.8},
      {"date": "2024-02-23", "close": 225.5}, {"date": "2024-02-26", "close": 224.2},
      {"date": "2024-02-27", "close": 227.8}, {"date": "2024-02-28", "close": 230.5}
    ]
x: date
y: close
width: 800
height: 400
title: "AAPL Stock Price - 2 Months Daily (40 points)"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Candlestick Financial Chart (25 points) ​

Trading data with OHLC (Open, High, Low, Close):

View Source
type: candlestick
engine: d3
data:
  source: |
    [
      {"date": "2024-01-02", "open": 470.5, "high": 475.2, "low": 468.8, "close": 472.5},
      {"date": "2024-01-03", "open": 472.5, "high": 478.5, "low": 470.2, "close": 476.8},
      {"date": "2024-01-04", "open": 476.8, "high": 480.2, "low": 474.5, "close": 478.2},
      {"date": "2024-01-05", "open": 478.2, "high": 482.8, "low": 476.5, "close": 480.5},
      {"date": "2024-01-08", "open": 480.5, "high": 485.2, "low": 478.8, "close": 483.2},
      {"date": "2024-01-09", "open": 483.2, "high": 488.5, "low": 481.2, "close": 486.8},
      {"date": "2024-01-10", "open": 486.8, "high": 490.2, "low": 484.5, "close": 488.5},
      {"date": "2024-01-11", "open": 488.5, "high": 492.8, "low": 486.2, "close": 490.2},
      {"date": "2024-01-12", "open": 490.2, "high": 494.5, "low": 488.8, "close": 492.8},
      {"date": "2024-01-16", "open": 492.8, "high": 498.2, "low": 490.5, "close": 496.5},
      {"date": "2024-01-17", "open": 496.5, "high": 500.8, "low": 494.2, "close": 498.2},
      {"date": "2024-01-18", "open": 498.2, "high": 502.5, "low": 496.8, "close": 500.5},
      {"date": "2024-01-19", "open": 500.5, "high": 504.2, "low": 498.5, "close": 502.8},
      {"date": "2024-01-22", "open": 502.8, "high": 508.5, "low": 500.2, "close": 506.2},
      {"date": "2024-01-23", "open": 506.2, "high": 510.8, "low": 504.5, "close": 508.5},
      {"date": "2024-01-24", "open": 508.5, "high": 512.2, "low": 506.8, "close": 510.2},
      {"date": "2024-01-25", "open": 510.2, "high": 515.5, "low": 508.5, "close": 513.8},
      {"date": "2024-01-26", "open": 513.8, "high": 518.2, "low": 511.5, "close": 516.5},
      {"date": "2024-01-29", "open": 516.5, "high": 520.8, "low": 514.2, "close": 518.2},
      {"date": "2024-01-30", "open": 518.2, "high": 522.5, "low": 516.8, "close": 520.5},
      {"date": "2024-01-31", "open": 520.5, "high": 525.2, "low": 518.5, "close": 523.8},
      {"date": "2024-02-01", "open": 523.8, "high": 528.5, "low": 521.2, "close": 526.2},
      {"date": "2024-02-02", "open": 526.2, "high": 530.8, "low": 524.5, "close": 528.5},
      {"date": "2024-02-05", "open": 528.5, "high": 532.2, "low": 526.8, "close": 530.2},
      {"date": "2024-02-06", "open": 530.2, "high": 535.5, "low": 528.5, "close": 533.8}
    ]
x: date
open: open
high: high
low: low
close: close
width: 900
height: 450
title: "SPY ETF - 1 Month Daily OHLC (25 trading days)"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Sensor Temperature Data (48 points) ​

IoT sensor readings across multiple sensors:

View Source
type: line
engine: d3
data:
  source: |
    [
      {"timestamp": "2024-01-01T00:00", "temperature": 22.5, "sensor_id": "Sensor A"},
      {"timestamp": "2024-01-01T02:00", "temperature": 21.8, "sensor_id": "Sensor A"},
      {"timestamp": "2024-01-01T04:00", "temperature": 21.2, "sensor_id": "Sensor A"},
      {"timestamp": "2024-01-01T06:00", "temperature": 20.8, "sensor_id": "Sensor A"},
      {"timestamp": "2024-01-01T08:00", "temperature": 22.5, "sensor_id": "Sensor A"},
      {"timestamp": "2024-01-01T10:00", "temperature": 24.2, "sensor_id": "Sensor A"},
      {"timestamp": "2024-01-01T12:00", "temperature": 25.8, "sensor_id": "Sensor A"},
      {"timestamp": "2024-01-01T14:00", "temperature": 26.5, "sensor_id": "Sensor A"},
      {"timestamp": "2024-01-01T16:00", "temperature": 25.2, "sensor_id": "Sensor A"},
      {"timestamp": "2024-01-01T18:00", "temperature": 24.5, "sensor_id": "Sensor A"},
      {"timestamp": "2024-01-01T20:00", "temperature": 23.8, "sensor_id": "Sensor A"},
      {"timestamp": "2024-01-01T22:00", "temperature": 23.2, "sensor_id": "Sensor A"},
      {"timestamp": "2024-01-01T00:00", "temperature": 18.5, "sensor_id": "Sensor B"},
      {"timestamp": "2024-01-01T02:00", "temperature": 17.8, "sensor_id": "Sensor B"},
      {"timestamp": "2024-01-01T04:00", "temperature": 17.2, "sensor_id": "Sensor B"},
      {"timestamp": "2024-01-01T06:00", "temperature": 16.8, "sensor_id": "Sensor B"},
      {"timestamp": "2024-01-01T08:00", "temperature": 18.5, "sensor_id": "Sensor B"},
      {"timestamp": "2024-01-01T10:00", "temperature": 20.2, "sensor_id": "Sensor B"},
      {"timestamp": "2024-01-01T12:00", "temperature": 21.8, "sensor_id": "Sensor B"},
      {"timestamp": "2024-01-01T14:00", "temperature": 22.5, "sensor_id": "Sensor B"},
      {"timestamp": "2024-01-01T16:00", "temperature": 21.2, "sensor_id": "Sensor B"},
      {"timestamp": "2024-01-01T18:00", "temperature": 20.5, "sensor_id": "Sensor B"},
      {"timestamp": "2024-01-01T20:00", "temperature": 19.8, "sensor_id": "Sensor B"},
      {"timestamp": "2024-01-01T22:00", "temperature": 19.2, "sensor_id": "Sensor B"},
      {"timestamp": "2024-01-01T00:00", "temperature": 25.5, "sensor_id": "Sensor C"},
      {"timestamp": "2024-01-01T02:00", "temperature": 24.8, "sensor_id": "Sensor C"},
      {"timestamp": "2024-01-01T04:00", "temperature": 24.2, "sensor_id": "Sensor C"},
      {"timestamp": "2024-01-01T06:00", "temperature": 23.8, "sensor_id": "Sensor C"},
      {"timestamp": "2024-01-01T08:00", "temperature": 25.5, "sensor_id": "Sensor C"},
      {"timestamp": "2024-01-01T10:00", "temperature": 27.2, "sensor_id": "Sensor C"},
      {"timestamp": "2024-01-01T12:00", "temperature": 28.8, "sensor_id": "Sensor C"},
      {"timestamp": "2024-01-01T14:00", "temperature": 29.5, "sensor_id": "Sensor C"},
      {"timestamp": "2024-01-01T16:00", "temperature": 28.2, "sensor_id": "Sensor C"},
      {"timestamp": "2024-01-01T18:00", "temperature": 27.5, "sensor_id": "Sensor C"},
      {"timestamp": "2024-01-01T20:00", "temperature": 26.8, "sensor_id": "Sensor C"},
      {"timestamp": "2024-01-01T22:00", "temperature": 26.2, "sensor_id": "Sensor C"},
      {"timestamp": "2024-01-01T00:00", "temperature": 20.5, "sensor_id": "Sensor D"},
      {"timestamp": "2024-01-01T02:00", "temperature": 19.8, "sensor_id": "Sensor D"},
      {"timestamp": "2024-01-01T04:00", "temperature": 19.2, "sensor_id": "Sensor D"},
      {"timestamp": "2024-01-01T06:00", "temperature": 18.8, "sensor_id": "Sensor D"},
      {"timestamp": "2024-01-01T08:00", "temperature": 20.5, "sensor_id": "Sensor D"},
      {"timestamp": "2024-01-01T10:00", "temperature": 22.2, "sensor_id": "Sensor D"},
      {"timestamp": "2024-01-01T12:00", "temperature": 23.8, "sensor_id": "Sensor D"},
      {"timestamp": "2024-01-01T14:00", "temperature": 24.5, "sensor_id": "Sensor D"},
      {"timestamp": "2024-01-01T16:00", "temperature": 23.2, "sensor_id": "Sensor D"},
      {"timestamp": "2024-01-01T18:00", "temperature": 22.5, "sensor_id": "Sensor D"},
      {"timestamp": "2024-01-01T20:00", "temperature": 21.8, "sensor_id": "Sensor D"},
      {"timestamp": "2024-01-01T22:00", "temperature": 21.2, "sensor_id": "Sensor D"}
    ]
x: timestamp
y: temperature
color: sensor_id
width: 850
height: 400
title: "Multi-Sensor Temperature Readings - 1 Day (48 points)"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Global Earthquake Data (30 points) ​

Earthquake events with magnitude and location:

View Source
type: brushable-scatter
engine: d3
data:
  source: |
    [
      {"longitude": -122.4, "latitude": 37.8, "magnitude": 4.2},
      {"longitude": -118.2, "latitude": 34.1, "magnitude": 3.8},
      {"longitude": -117.2, "latitude": 32.7, "magnitude": 4.5},
      {"longitude": -121.9, "latitude": 36.6, "magnitude": 3.2},
      {"longitude": -119.4, "latitude": 35.4, "magnitude": 4.8},
      {"longitude": 139.7, "latitude": 35.7, "magnitude": 5.2},
      {"longitude": 140.1, "latitude": 36.2, "magnitude": 4.9},
      {"longitude": 138.6, "latitude": 34.9, "magnitude": 4.1},
      {"longitude": 141.2, "latitude": 38.3, "magnitude": 5.8},
      {"longitude": 139.2, "latitude": 35.2, "magnitude": 3.9},
      {"longitude": -155.5, "latitude": 19.4, "magnitude": 4.3},
      {"longitude": -155.2, "latitude": 19.7, "magnitude": 3.7},
      {"longitude": -155.8, "latitude": 19.2, "magnitude": 4.6},
      {"longitude": -154.9, "latitude": 19.5, "magnitude": 3.5},
      {"longitude": -156.1, "latitude": 19.9, "magnitude": 4.1},
      {"longitude": -70.6, "latitude": -33.4, "magnitude": 5.5},
      {"longitude": -71.2, "latitude": -34.1, "magnitude": 4.8},
      {"longitude": -70.1, "latitude": -32.8, "magnitude": 5.1},
      {"longitude": -71.8, "latitude": -35.2, "magnitude": 4.4},
      {"longitude": -69.8, "latitude": -33.1, "magnitude": 4.9},
      {"longitude": 121.5, "latitude": 31.2, "magnitude": 4.2},
      {"longitude": 120.8, "latitude": 30.5, "magnitude": 3.8},
      {"longitude": 122.1, "latitude": 31.8, "magnitude": 4.5},
      {"longitude": 119.9, "latitude": 29.9, "magnitude": 3.6},
      {"longitude": 121.2, "latitude": 30.8, "magnitude": 4.1},
      {"longitude": 14.4, "latitude": 40.8, "magnitude": 3.9},
      {"longitude": 15.1, "latitude": 41.2, "magnitude": 4.3},
      {"longitude": 13.8, "latitude": 40.5, "magnitude": 3.5},
      {"longitude": 14.8, "latitude": 41.5, "magnitude": 4.7},
      {"longitude": 13.2, "latitude": 40.2, "magnitude": 3.8}
    ]
x: longitude
y: latitude
color: magnitude
width: 900
height: 500
title: "Global Earthquake Events (30 events)"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Population Density Contour (50 points) ​

Simulated population distribution across a metropolitan area:

View Source
type: contour
engine: d3
data:
  source: |
    [
      {"x": 0.5, "y": 0.5}, {"x": 0.6, "y": 0.5}, {"x": 0.5, "y": 0.6}, {"x": 0.4, "y": 0.5},
      {"x": 0.5, "y": 0.4}, {"x": 0.55, "y": 0.55}, {"x": 0.45, "y": 0.55}, {"x": 0.55, "y": 0.45},
      {"x": 0.45, "y": 0.45}, {"x": 0.5, "y": 0.52}, {"x": 0.52, "y": 0.5}, {"x": 0.48, "y": 0.5},
      {"x": 0.5, "y": 0.48}, {"x": 0.53, "y": 0.53}, {"x": 0.47, "y": 0.53}, {"x": 0.53, "y": 0.47},
      {"x": 0.3, "y": 0.7}, {"x": 0.35, "y": 0.72}, {"x": 0.32, "y": 0.68}, {"x": 0.28, "y": 0.71},
      {"x": 0.33, "y": 0.75}, {"x": 0.3, "y": 0.65}, {"x": 0.36, "y": 0.69}, {"x": 0.29, "y": 0.73},
      {"x": 0.7, "y": 0.3}, {"x": 0.72, "y": 0.32}, {"x": 0.68, "y": 0.28}, {"x": 0.71, "y": 0.35},
      {"x": 0.75, "y": 0.3}, {"x": 0.69, "y": 0.33}, {"x": 0.73, "y": 0.29}, {"x": 0.67, "y": 0.31},
      {"x": 0.2, "y": 0.2}, {"x": 0.22, "y": 0.18}, {"x": 0.18, "y": 0.22}, {"x": 0.25, "y": 0.2},
      {"x": 0.2, "y": 0.25}, {"x": 0.23, "y": 0.23}, {"x": 0.17, "y": 0.19}, {"x": 0.21, "y": 0.16},
      {"x": 0.8, "y": 0.8}, {"x": 0.82, "y": 0.78}, {"x": 0.78, "y": 0.82}, {"x": 0.85, "y": 0.8},
      {"x": 0.8, "y": 0.85}, {"x": 0.83, "y": 0.83}, {"x": 0.77, "y": 0.79}, {"x": 0.81, "y": 0.76},
      {"x": 0.5, "y": 0.51}, {"x": 0.51, "y": 0.49}
    ]
x: x
y: y
thresholds: 20
width: 700
height: 700
title: "Metropolitan Population Density Distribution (50 sample points)"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Website Traffic Streamgraph (30 points) ​

Daily page views by traffic source:

View Source
type: streamgraph
engine: d3
data:
  source: |
    [
      {"date": "2024-01-01", "organic": 4500, "direct": 2800, "social": 1800, "referral": 1200, "paid": 800},
      {"date": "2024-01-02", "organic": 4800, "direct": 2900, "social": 1900, "referral": 1300, "paid": 850},
      {"date": "2024-01-03", "organic": 5200, "direct": 3100, "social": 2100, "referral": 1400, "paid": 900},
      {"date": "2024-01-04", "organic": 5500, "direct": 3300, "social": 2300, "referral": 1500, "paid": 950},
      {"date": "2024-01-05", "organic": 5100, "direct": 3000, "social": 2000, "referral": 1350, "paid": 880},
      {"date": "2024-01-06", "organic": 3800, "direct": 2200, "social": 2500, "referral": 900, "paid": 600},
      {"date": "2024-01-07", "organic": 3500, "direct": 2000, "social": 2800, "referral": 850, "paid": 550},
      {"date": "2024-01-08", "organic": 4600, "direct": 2850, "social": 1850, "referral": 1250, "paid": 820},
      {"date": "2024-01-09", "organic": 4900, "direct": 2950, "social": 1950, "referral": 1350, "paid": 870},
      {"date": "2024-01-10", "organic": 5300, "direct": 3150, "social": 2150, "referral": 1450, "paid": 920},
      {"date": "2024-01-11", "organic": 5600, "direct": 3350, "social": 2350, "referral": 1550, "paid": 970},
      {"date": "2024-01-12", "organic": 5200, "direct": 3050, "social": 2050, "referral": 1400, "paid": 900},
      {"date": "2024-01-13", "organic": 3900, "direct": 2250, "social": 2550, "referral": 950, "paid": 620},
      {"date": "2024-01-14", "organic": 3600, "direct": 2050, "social": 2850, "referral": 900, "paid": 570},
      {"date": "2024-01-15", "organic": 4700, "direct": 2900, "social": 1900, "referral": 1300, "paid": 840},
      {"date": "2024-01-16", "organic": 5000, "direct": 3000, "social": 2000, "referral": 1400, "paid": 890},
      {"date": "2024-01-17", "organic": 5400, "direct": 3200, "social": 2200, "referral": 1500, "paid": 940},
      {"date": "2024-01-18", "organic": 5700, "direct": 3400, "social": 2400, "referral": 1600, "paid": 990},
      {"date": "2024-01-19", "organic": 5300, "direct": 3100, "social": 2100, "referral": 1450, "paid": 920},
      {"date": "2024-01-20", "organic": 4000, "direct": 2300, "social": 2600, "referral": 1000, "paid": 640},
      {"date": "2024-01-21", "organic": 3700, "direct": 2100, "social": 2900, "referral": 950, "paid": 590},
      {"date": "2024-01-22", "organic": 4800, "direct": 2950, "social": 1950, "referral": 1350, "paid": 860},
      {"date": "2024-01-23", "organic": 5100, "direct": 3050, "social": 2050, "referral": 1450, "paid": 910},
      {"date": "2024-01-24", "organic": 5500, "direct": 3250, "social": 2250, "referral": 1550, "paid": 960},
      {"date": "2024-01-25", "organic": 5800, "direct": 3450, "social": 2450, "referral": 1650, "paid": 1010},
      {"date": "2024-01-26", "organic": 5400, "direct": 3150, "social": 2150, "referral": 1500, "paid": 940},
      {"date": "2024-01-27", "organic": 4100, "direct": 2350, "social": 2650, "referral": 1050, "paid": 660},
      {"date": "2024-01-28", "organic": 3800, "direct": 2150, "social": 2950, "referral": 1000, "paid": 610},
      {"date": "2024-01-29", "organic": 4900, "direct": 3000, "social": 2000, "referral": 1400, "paid": 880},
      {"date": "2024-01-30", "organic": 5200, "direct": 3100, "social": 2100, "referral": 1500, "paid": 930}
    ]
x: date
keys:
  - organic
  - direct
  - social
  - referral
  - paid
offset: wiggle
width: 900
height: 450
title: "Website Traffic by Source - 1 Month Daily (30 days x 5 sources)"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Beeswarm Salary Distribution (40 points) ​

Employee salaries across departments:

View Source
type: beeswarm
engine: d3
data:
  source: |
    [
      {"salary": 65000, "department": "Engineering"}, {"salary": 72000, "department": "Engineering"},
      {"salary": 85000, "department": "Engineering"}, {"salary": 95000, "department": "Engineering"},
      {"salary": 105000, "department": "Engineering"}, {"salary": 115000, "department": "Engineering"},
      {"salary": 125000, "department": "Engineering"}, {"salary": 135000, "department": "Engineering"},
      {"salary": 78000, "department": "Engineering"}, {"salary": 88000, "department": "Engineering"},
      {"salary": 55000, "department": "Sales"}, {"salary": 62000, "department": "Sales"},
      {"salary": 68000, "department": "Sales"}, {"salary": 75000, "department": "Sales"},
      {"salary": 82000, "department": "Sales"}, {"salary": 90000, "department": "Sales"},
      {"salary": 98000, "department": "Sales"}, {"salary": 72000, "department": "Sales"},
      {"salary": 78000, "department": "Sales"}, {"salary": 85000, "department": "Sales"},
      {"salary": 48000, "department": "Marketing"}, {"salary": 55000, "department": "Marketing"},
      {"salary": 62000, "department": "Marketing"}, {"salary": 68000, "department": "Marketing"},
      {"salary": 75000, "department": "Marketing"}, {"salary": 82000, "department": "Marketing"},
      {"salary": 58000, "department": "Marketing"}, {"salary": 65000, "department": "Marketing"},
      {"salary": 72000, "department": "Marketing"}, {"salary": 78000, "department": "Marketing"},
      {"salary": 45000, "department": "HR"}, {"salary": 52000, "department": "HR"},
      {"salary": 58000, "department": "HR"}, {"salary": 65000, "department": "HR"},
      {"salary": 72000, "department": "HR"}, {"salary": 48000, "department": "HR"},
      {"salary": 55000, "department": "HR"}, {"salary": 62000, "department": "HR"},
      {"salary": 68000, "department": "HR"}, {"salary": 75000, "department": "HR"}
    ]
x: salary
color: department
width: 800
height: 400
title: "Employee Salary Distribution by Department (40 employees)"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Parallel Coordinates - Iris Dataset (60 points) ​

Classic Fisher's Iris dataset with 4 dimensions:

View Source
type: parallel-coords
engine: d3
data:
  source: |
    [
      {"sepal_length": 5.1, "sepal_width": 3.5, "petal_length": 1.4, "petal_width": 0.2, "species": "setosa"},
      {"sepal_length": 4.9, "sepal_width": 3.0, "petal_length": 1.4, "petal_width": 0.2, "species": "setosa"},
      {"sepal_length": 4.7, "sepal_width": 3.2, "petal_length": 1.3, "petal_width": 0.2, "species": "setosa"},
      {"sepal_length": 4.6, "sepal_width": 3.1, "petal_length": 1.5, "petal_width": 0.2, "species": "setosa"},
      {"sepal_length": 5.0, "sepal_width": 3.6, "petal_length": 1.4, "petal_width": 0.2, "species": "setosa"},
      {"sepal_length": 5.4, "sepal_width": 3.9, "petal_length": 1.7, "petal_width": 0.4, "species": "setosa"},
      {"sepal_length": 4.6, "sepal_width": 3.4, "petal_length": 1.4, "petal_width": 0.3, "species": "setosa"},
      {"sepal_length": 5.0, "sepal_width": 3.4, "petal_length": 1.5, "petal_width": 0.2, "species": "setosa"},
      {"sepal_length": 4.4, "sepal_width": 2.9, "petal_length": 1.4, "petal_width": 0.2, "species": "setosa"},
      {"sepal_length": 4.9, "sepal_width": 3.1, "petal_length": 1.5, "petal_width": 0.1, "species": "setosa"},
      {"sepal_length": 5.4, "sepal_width": 3.7, "petal_length": 1.5, "petal_width": 0.2, "species": "setosa"},
      {"sepal_length": 4.8, "sepal_width": 3.4, "petal_length": 1.6, "petal_width": 0.2, "species": "setosa"},
      {"sepal_length": 4.8, "sepal_width": 3.0, "petal_length": 1.4, "petal_width": 0.1, "species": "setosa"},
      {"sepal_length": 4.3, "sepal_width": 3.0, "petal_length": 1.1, "petal_width": 0.1, "species": "setosa"},
      {"sepal_length": 5.8, "sepal_width": 4.0, "petal_length": 1.2, "petal_width": 0.2, "species": "setosa"},
      {"sepal_length": 5.7, "sepal_width": 4.4, "petal_length": 1.5, "petal_width": 0.4, "species": "setosa"},
      {"sepal_length": 5.4, "sepal_width": 3.9, "petal_length": 1.3, "petal_width": 0.4, "species": "setosa"},
      {"sepal_length": 5.1, "sepal_width": 3.5, "petal_length": 1.4, "petal_width": 0.3, "species": "setosa"},
      {"sepal_length": 5.7, "sepal_width": 3.8, "petal_length": 1.7, "petal_width": 0.3, "species": "setosa"},
      {"sepal_length": 5.1, "sepal_width": 3.8, "petal_length": 1.5, "petal_width": 0.3, "species": "setosa"},
      {"sepal_length": 7.0, "sepal_width": 3.2, "petal_length": 4.7, "petal_width": 1.4, "species": "versicolor"},
      {"sepal_length": 6.4, "sepal_width": 3.2, "petal_length": 4.5, "petal_width": 1.5, "species": "versicolor"},
      {"sepal_length": 6.9, "sepal_width": 3.1, "petal_length": 4.9, "petal_width": 1.5, "species": "versicolor"},
      {"sepal_length": 5.5, "sepal_width": 2.3, "petal_length": 4.0, "petal_width": 1.3, "species": "versicolor"},
      {"sepal_length": 6.5, "sepal_width": 2.8, "petal_length": 4.6, "petal_width": 1.5, "species": "versicolor"},
      {"sepal_length": 5.7, "sepal_width": 2.8, "petal_length": 4.5, "petal_width": 1.3, "species": "versicolor"},
      {"sepal_length": 6.3, "sepal_width": 3.3, "petal_length": 4.7, "petal_width": 1.6, "species": "versicolor"},
      {"sepal_length": 4.9, "sepal_width": 2.4, "petal_length": 3.3, "petal_width": 1.0, "species": "versicolor"},
      {"sepal_length": 6.6, "sepal_width": 2.9, "petal_length": 4.6, "petal_width": 1.3, "species": "versicolor"},
      {"sepal_length": 5.2, "sepal_width": 2.7, "petal_length": 3.9, "petal_width": 1.4, "species": "versicolor"},
      {"sepal_length": 5.0, "sepal_width": 2.0, "petal_length": 3.5, "petal_width": 1.0, "species": "versicolor"},
      {"sepal_length": 5.9, "sepal_width": 3.0, "petal_length": 4.2, "petal_width": 1.5, "species": "versicolor"},
      {"sepal_length": 6.0, "sepal_width": 2.2, "petal_length": 4.0, "petal_width": 1.0, "species": "versicolor"},
      {"sepal_length": 6.1, "sepal_width": 2.9, "petal_length": 4.7, "petal_width": 1.4, "species": "versicolor"},
      {"sepal_length": 5.6, "sepal_width": 2.9, "petal_length": 3.6, "petal_width": 1.3, "species": "versicolor"},
      {"sepal_length": 6.7, "sepal_width": 3.1, "petal_length": 4.4, "petal_width": 1.4, "species": "versicolor"},
      {"sepal_length": 5.6, "sepal_width": 3.0, "petal_length": 4.5, "petal_width": 1.5, "species": "versicolor"},
      {"sepal_length": 5.8, "sepal_width": 2.7, "petal_length": 4.1, "petal_width": 1.0, "species": "versicolor"},
      {"sepal_length": 6.2, "sepal_width": 2.2, "petal_length": 4.5, "petal_width": 1.5, "species": "versicolor"},
      {"sepal_length": 5.6, "sepal_width": 2.5, "petal_length": 3.9, "petal_width": 1.1, "species": "versicolor"},
      {"sepal_length": 6.3, "sepal_width": 3.3, "petal_length": 6.0, "petal_width": 2.5, "species": "virginica"},
      {"sepal_length": 5.8, "sepal_width": 2.7, "petal_length": 5.1, "petal_width": 1.9, "species": "virginica"},
      {"sepal_length": 7.1, "sepal_width": 3.0, "petal_length": 5.9, "petal_width": 2.1, "species": "virginica"},
      {"sepal_length": 6.3, "sepal_width": 2.9, "petal_length": 5.6, "petal_width": 1.8, "species": "virginica"},
      {"sepal_length": 6.5, "sepal_width": 3.0, "petal_length": 5.8, "petal_width": 2.2, "species": "virginica"},
      {"sepal_length": 7.6, "sepal_width": 3.0, "petal_length": 6.6, "petal_width": 2.1, "species": "virginica"},
      {"sepal_length": 4.9, "sepal_width": 2.5, "petal_length": 4.5, "petal_width": 1.7, "species": "virginica"},
      {"sepal_length": 7.3, "sepal_width": 2.9, "petal_length": 6.3, "petal_width": 1.8, "species": "virginica"},
      {"sepal_length": 6.7, "sepal_width": 2.5, "petal_length": 5.8, "petal_width": 1.8, "species": "virginica"},
      {"sepal_length": 7.2, "sepal_width": 3.6, "petal_length": 6.1, "petal_width": 2.5, "species": "virginica"},
      {"sepal_length": 6.5, "sepal_width": 3.2, "petal_length": 5.1, "petal_width": 2.0, "species": "virginica"},
      {"sepal_length": 6.4, "sepal_width": 2.7, "petal_length": 5.3, "petal_width": 1.9, "species": "virginica"},
      {"sepal_length": 6.8, "sepal_width": 3.0, "petal_length": 5.5, "petal_width": 2.1, "species": "virginica"},
      {"sepal_length": 5.7, "sepal_width": 2.5, "petal_length": 5.0, "petal_width": 2.0, "species": "virginica"},
      {"sepal_length": 5.8, "sepal_width": 2.8, "petal_length": 5.1, "petal_width": 2.4, "species": "virginica"},
      {"sepal_length": 6.4, "sepal_width": 3.2, "petal_length": 5.3, "petal_width": 2.3, "species": "virginica"},
      {"sepal_length": 6.5, "sepal_width": 3.0, "petal_length": 5.5, "petal_width": 1.8, "species": "virginica"},
      {"sepal_length": 7.7, "sepal_width": 3.8, "petal_length": 6.7, "petal_width": 2.2, "species": "virginica"},
      {"sepal_length": 7.7, "sepal_width": 2.6, "petal_length": 6.9, "petal_width": 2.3, "species": "virginica"},
      {"sepal_length": 6.0, "sepal_width": 2.2, "petal_length": 5.0, "petal_width": 1.5, "species": "virginica"}
    ]
dimensions:
  - sepal_length
  - sepal_width
  - petal_length
  - petal_width
color: species
width: 800
height: 400
title: "Fisher's Iris Dataset - 4 Dimensions (60 samples)"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Violin Plot - Response Times (40 points) ​

API response time distribution across different endpoints:

View Source
type: violin
engine: d3
data:
  source: |
    [
      {"endpoint": "/api/users", "response_time": 45}, {"endpoint": "/api/users", "response_time": 52},
      {"endpoint": "/api/users", "response_time": 38}, {"endpoint": "/api/users", "response_time": 65},
      {"endpoint": "/api/users", "response_time": 48}, {"endpoint": "/api/users", "response_time": 55},
      {"endpoint": "/api/users", "response_time": 42}, {"endpoint": "/api/users", "response_time": 58},
      {"endpoint": "/api/users", "response_time": 50}, {"endpoint": "/api/users", "response_time": 47},
      {"endpoint": "/api/products", "response_time": 85}, {"endpoint": "/api/products", "response_time": 92},
      {"endpoint": "/api/products", "response_time": 78}, {"endpoint": "/api/products", "response_time": 105},
      {"endpoint": "/api/products", "response_time": 88}, {"endpoint": "/api/products", "response_time": 95},
      {"endpoint": "/api/products", "response_time": 82}, {"endpoint": "/api/products", "response_time": 98},
      {"endpoint": "/api/products", "response_time": 90}, {"endpoint": "/api/products", "response_time": 87},
      {"endpoint": "/api/orders", "response_time": 125}, {"endpoint": "/api/orders", "response_time": 138},
      {"endpoint": "/api/orders", "response_time": 115}, {"endpoint": "/api/orders", "response_time": 145},
      {"endpoint": "/api/orders", "response_time": 128}, {"endpoint": "/api/orders", "response_time": 135},
      {"endpoint": "/api/orders", "response_time": 120}, {"endpoint": "/api/orders", "response_time": 142},
      {"endpoint": "/api/orders", "response_time": 130}, {"endpoint": "/api/orders", "response_time": 133},
      {"endpoint": "/api/search", "response_time": 185}, {"endpoint": "/api/search", "response_time": 198},
      {"endpoint": "/api/search", "response_time": 172}, {"endpoint": "/api/search", "response_time": 215},
      {"endpoint": "/api/search", "response_time": 188}, {"endpoint": "/api/search", "response_time": 205},
      {"endpoint": "/api/search", "response_time": 178}, {"endpoint": "/api/search", "response_time": 210},
      {"endpoint": "/api/search", "response_time": 192}, {"endpoint": "/api/search", "response_time": 195}
    ]
x: endpoint
y: response_time
width: 800
height: 450
title: "API Response Time Distribution by Endpoint (40 requests)"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Ridgeline - Daily Temperature (48 points) ​

Temperature distribution by month:

View Source
type: ridgeline
engine: d3
data:
  source: |
    [
      {"month": "January", "temperature": 32}, {"month": "January", "temperature": 28},
      {"month": "January", "temperature": 35}, {"month": "January", "temperature": 30},
      {"month": "January", "temperature": 25}, {"month": "January", "temperature": 33},
      {"month": "January", "temperature": 27}, {"month": "January", "temperature": 31},
      {"month": "January", "temperature": 29}, {"month": "January", "temperature": 34},
      {"month": "January", "temperature": 26}, {"month": "January", "temperature": 36},
      {"month": "April", "temperature": 55}, {"month": "April", "temperature": 58},
      {"month": "April", "temperature": 52}, {"month": "April", "temperature": 60},
      {"month": "April", "temperature": 48}, {"month": "April", "temperature": 56},
      {"month": "April", "temperature": 54}, {"month": "April", "temperature": 59},
      {"month": "April", "temperature": 51}, {"month": "April", "temperature": 57},
      {"month": "April", "temperature": 53}, {"month": "April", "temperature": 62},
      {"month": "July", "temperature": 85}, {"month": "July", "temperature": 88},
      {"month": "July", "temperature": 82}, {"month": "July", "temperature": 90},
      {"month": "July", "temperature": 78}, {"month": "July", "temperature": 86},
      {"month": "July", "temperature": 84}, {"month": "July", "temperature": 89},
      {"month": "July", "temperature": 81}, {"month": "July", "temperature": 87},
      {"month": "July", "temperature": 83}, {"month": "July", "temperature": 92},
      {"month": "October", "temperature": 58}, {"month": "October", "temperature": 55},
      {"month": "October", "temperature": 62}, {"month": "October", "temperature": 50},
      {"month": "October", "temperature": 65}, {"month": "October", "temperature": 52},
      {"month": "October", "temperature": 56}, {"month": "October", "temperature": 60},
      {"month": "October", "temperature": 48}, {"month": "October", "temperature": 54},
      {"month": "October", "temperature": 59}, {"month": "October", "temperature": 51}
    ]
x: temperature
group: month
overlap: 0.7
width: 750
height: 500
title: "Daily Temperature Distribution by Month (48 days)"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Histogram - Age Distribution (80 points) ​

Population age distribution:

View Source
type: histogram
engine: d3
data:
  source: |
    [
      {"age": 18}, {"age": 19}, {"age": 20}, {"age": 21}, {"age": 22}, {"age": 23}, {"age": 24}, {"age": 25},
      {"age": 22}, {"age": 23}, {"age": 24}, {"age": 25}, {"age": 26}, {"age": 27}, {"age": 28}, {"age": 29},
      {"age": 25}, {"age": 26}, {"age": 27}, {"age": 28}, {"age": 29}, {"age": 30}, {"age": 31}, {"age": 32},
      {"age": 28}, {"age": 29}, {"age": 30}, {"age": 31}, {"age": 32}, {"age": 33}, {"age": 34}, {"age": 35},
      {"age": 32}, {"age": 33}, {"age": 34}, {"age": 35}, {"age": 36}, {"age": 37}, {"age": 38}, {"age": 39},
      {"age": 35}, {"age": 36}, {"age": 37}, {"age": 38}, {"age": 39}, {"age": 40}, {"age": 41}, {"age": 42},
      {"age": 40}, {"age": 41}, {"age": 42}, {"age": 43}, {"age": 44}, {"age": 45}, {"age": 46}, {"age": 47},
      {"age": 45}, {"age": 46}, {"age": 47}, {"age": 48}, {"age": 49}, {"age": 50}, {"age": 51}, {"age": 52},
      {"age": 50}, {"age": 52}, {"age": 54}, {"age": 56}, {"age": 58}, {"age": 60}, {"age": 62}, {"age": 64},
      {"age": 55}, {"age": 58}, {"age": 61}, {"age": 64}, {"age": 67}, {"age": 70}, {"age": 73}, {"age": 76}
    ]
x: age
bins: 20
width: 700
height: 400
title: "Population Age Distribution (80 samples)"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single

Layout System Examples ​

The layout system provides standardized chart layouts with configurable regions for title, subtitle, metadata, messages, and responsive scaling.

Standard Layout with Full Metadata ​

Complete chart with title, subtitle, source attribution, and auto point count:

View Source
type: boxplot
engine: d3
data:
  source: |
    [
      {"department": "Engineering", "salary": 65000}, {"department": "Engineering", "salary": 72000},
      {"department": "Engineering", "salary": 85000}, {"department": "Engineering", "salary": 95000},
      {"department": "Engineering", "salary": 105000}, {"department": "Engineering", "salary": 115000},
      {"department": "Engineering", "salary": 125000}, {"department": "Engineering", "salary": 135000},
      {"department": "Sales", "salary": 55000}, {"department": "Sales", "salary": 62000},
      {"department": "Sales", "salary": 68000}, {"department": "Sales", "salary": 75000},
      {"department": "Sales", "salary": 82000}, {"department": "Sales", "salary": 90000},
      {"department": "Marketing", "salary": 48000}, {"department": "Marketing", "salary": 55000},
      {"department": "Marketing", "salary": 62000}, {"department": "Marketing", "salary": 68000},
      {"department": "Marketing", "salary": 75000}, {"department": "Marketing", "salary": 82000},
      {"department": "HR", "salary": 45000}, {"department": "HR", "salary": 52000},
      {"department": "HR", "salary": 58000}, {"department": "HR", "salary": 65000},
      {"department": "HR", "salary": 72000}, {"department": "HR", "salary": 78000}
    ]
x: department
y: salary
title: "Salary Distribution by Department"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single
subtitle: "Annual compensation analysis across all divisions"
metadata:
  points: auto
  source: "HR Analytics 2024"
layout:
  preset: standard
width: 600
height: 450
minWidth: 400
maxWidth: 1500

Compact Layout Preset ​

Minimal layout for small spaces - no legend, smaller title, collapsed messages:

View Source
type: histogram
engine: d3
data:
  source: |
    [
      {"age": 18}, {"age": 22}, {"age": 25}, {"age": 28}, {"age": 31},
      {"age": 23}, {"age": 27}, {"age": 29}, {"age": 32}, {"age": 35},
      {"age": 24}, {"age": 26}, {"age": 30}, {"age": 33}, {"age": 36},
      {"age": 38}, {"age": 41}, {"age": 44}, {"age": 47}, {"age": 50},
      {"age": 39}, {"age": 42}, {"age": 45}, {"age": 48}, {"age": 52},
      {"age": 40}, {"age": 43}, {"age": 46}, {"age": 49}, {"age": 55},
      {"age": 58}, {"age": 61}, {"age": 64}, {"age": 67}, {"age": 70}
    ]
x: age
bins: 15
title: "Age Distribution"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single
subtitle: "Population sample"
layout:
  preset: compact
width: 400
height: 300
minWidth: 280

Dashboard Layout Preset ​

Silent mode for dashboards - suppresses all messages, external legend position:

View Source
type: line
engine: d3
data:
  source: |
    [
      {"timestamp": "2024-01-01T00:00", "temperature": 22.5, "sensor_id": "Sensor A"},
      {"timestamp": "2024-01-01T04:00", "temperature": 21.2, "sensor_id": "Sensor A"},
      {"timestamp": "2024-01-01T08:00", "temperature": 22.5, "sensor_id": "Sensor A"},
      {"timestamp": "2024-01-01T12:00", "temperature": 25.8, "sensor_id": "Sensor A"},
      {"timestamp": "2024-01-01T16:00", "temperature": 25.2, "sensor_id": "Sensor A"},
      {"timestamp": "2024-01-01T20:00", "temperature": 23.8, "sensor_id": "Sensor A"},
      {"timestamp": "2024-01-01T00:00", "temperature": 18.5, "sensor_id": "Sensor B"},
      {"timestamp": "2024-01-01T04:00", "temperature": 17.2, "sensor_id": "Sensor B"},
      {"timestamp": "2024-01-01T08:00", "temperature": 18.5, "sensor_id": "Sensor B"},
      {"timestamp": "2024-01-01T12:00", "temperature": 21.8, "sensor_id": "Sensor B"},
      {"timestamp": "2024-01-01T16:00", "temperature": 21.2, "sensor_id": "Sensor B"},
      {"timestamp": "2024-01-01T20:00", "temperature": 19.8, "sensor_id": "Sensor B"},
      {"timestamp": "2024-01-01T00:00", "temperature": 25.5, "sensor_id": "Sensor C"},
      {"timestamp": "2024-01-01T04:00", "temperature": 24.2, "sensor_id": "Sensor C"},
      {"timestamp": "2024-01-01T08:00", "temperature": 25.5, "sensor_id": "Sensor C"},
      {"timestamp": "2024-01-01T12:00", "temperature": 28.8, "sensor_id": "Sensor C"},
      {"timestamp": "2024-01-01T16:00", "temperature": 28.2, "sensor_id": "Sensor C"},
      {"timestamp": "2024-01-01T20:00", "temperature": 26.8, "sensor_id": "Sensor C"}
    ]
x: timestamp
y: temperature
color: sensor_id
title: "Temperature Monitoring"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single
layout:
  preset: dashboard
width: 600
height: 300

Presentation Layout Preset ​

Large centered title with horizontal legend - ideal for presentations:

View Source
type: radial-bar
engine: d3
data:
  source: |
    [
      {"month": "Jan", "sales": 42000},
      {"month": "Feb", "sales": 38000},
      {"month": "Mar", "sales": 55000},
      {"month": "Apr", "sales": 48000},
      {"month": "May", "sales": 62000},
      {"month": "Jun", "sales": 71000},
      {"month": "Jul", "sales": 68000},
      {"month": "Aug", "sales": 75000},
      {"month": "Sep", "sales": 58000},
      {"month": "Oct", "sales": 52000},
      {"month": "Nov", "sales": 65000},
      {"month": "Dec", "sales": 85000}
    ]
x: month
y: sales
title: "2024 Monthly Sales Performance"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single
subtitle: "Revenue by month in USD"
metadata:
  source: "Sales Dashboard"
layout:
  preset: presentation
width: 600
height: 600
maxWidth: 900

Responsive Chart with Constraints ​

Chart with viewBox-based fluid scaling and min/max width constraints:

View Source
type: brushable-scatter
engine: d3
data:
  source: |
    [
      {"longitude": -122.4, "latitude": 37.8, "magnitude": 4.2},
      {"longitude": -118.2, "latitude": 34.1, "magnitude": 3.8},
      {"longitude": -117.2, "latitude": 32.7, "magnitude": 4.5},
      {"longitude": 139.7, "latitude": 35.7, "magnitude": 5.2},
      {"longitude": 140.1, "latitude": 36.2, "magnitude": 4.9},
      {"longitude": -155.5, "latitude": 19.4, "magnitude": 4.3},
      {"longitude": -155.2, "latitude": 19.7, "magnitude": 3.7},
      {"longitude": -70.6, "latitude": -33.4, "magnitude": 5.5},
      {"longitude": -71.2, "latitude": -34.1, "magnitude": 4.8},
      {"longitude": 121.5, "latitude": 31.2, "magnitude": 4.2},
      {"longitude": 120.8, "latitude": 30.5, "magnitude": 3.8},
      {"longitude": 14.4, "latitude": 40.8, "magnitude": 3.9},
      {"longitude": 15.1, "latitude": 41.2, "magnitude": 4.3}
    ]
x: longitude
y: latitude
color: magnitude
title: "Global Seismic Activity"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single
subtitle: "Earthquake events - magnitude 4.0+"
metadata:
  points: auto
  source: "USGS Earthquake Data"
layout:
  preset: standard
  minWidth: 350
  maxWidth: 1200
width: 800
height: 500

Financial Chart with Layout ​

Stock data with full layout treatment:

View Source
type: candlestick
engine: d3
data:
  source: |
    [
      {"date": "2024-01-02", "open": 470.5, "high": 475.2, "low": 468.8, "close": 472.5},
      {"date": "2024-01-03", "open": 472.5, "high": 478.5, "low": 470.2, "close": 476.8},
      {"date": "2024-01-04", "open": 476.8, "high": 480.2, "low": 474.5, "close": 478.2},
      {"date": "2024-01-05", "open": 478.2, "high": 482.8, "low": 476.5, "close": 480.5},
      {"date": "2024-01-08", "open": 480.5, "high": 485.2, "low": 478.8, "close": 483.2},
      {"date": "2024-01-09", "open": 483.2, "high": 488.5, "low": 481.2, "close": 486.8},
      {"date": "2024-01-10", "open": 486.8, "high": 490.2, "low": 484.5, "close": 488.5},
      {"date": "2024-01-11", "open": 488.5, "high": 492.8, "low": 486.2, "close": 490.2},
      {"date": "2024-01-12", "open": 490.2, "high": 494.5, "low": 488.8, "close": 492.8},
      {"date": "2024-01-16", "open": 492.8, "high": 498.2, "low": 490.5, "close": 496.5},
      {"date": "2024-01-17", "open": 496.5, "high": 500.8, "low": 494.2, "close": 498.2},
      {"date": "2024-01-18", "open": 498.2, "high": 502.5, "low": 496.8, "close": 500.5}
    ]
x: date
open: open
high: high
low: low
close: close
title: "SPY ETF Daily Trading"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single
subtitle: "One year of market data"
metadata:
  points: auto
  source: "Market Data Feed"
layout:
  preset: standard
width: 1000
height: 450
minWidth: 800
maxWidth: 1200

Time Series with Metadata ​

Multi-line chart showcasing auto point count and source attribution:

View Source
type: streamgraph
engine: d3
data:
  source: |
    [
      {"date": "2024-01-01", "organic": 4500, "direct": 2800, "social": 1800, "referral": 1200, "paid": 800},
      {"date": "2024-01-02", "organic": 4800, "direct": 2900, "social": 1900, "referral": 1300, "paid": 850},
      {"date": "2024-01-03", "organic": 5200, "direct": 3100, "social": 2100, "referral": 1400, "paid": 900},
      {"date": "2024-01-04", "organic": 5500, "direct": 3300, "social": 2300, "referral": 1500, "paid": 950},
      {"date": "2024-01-05", "organic": 5100, "direct": 3000, "social": 2000, "referral": 1350, "paid": 880},
      {"date": "2024-01-06", "organic": 3800, "direct": 2200, "social": 2500, "referral": 900, "paid": 600},
      {"date": "2024-01-07", "organic": 3500, "direct": 2000, "social": 2800, "referral": 850, "paid": 550},
      {"date": "2024-01-08", "organic": 4600, "direct": 2850, "social": 1850, "referral": 1250, "paid": 820},
      {"date": "2024-01-09", "organic": 4900, "direct": 2950, "social": 1950, "referral": 1350, "paid": 870},
      {"date": "2024-01-10", "organic": 5300, "direct": 3150, "social": 2150, "referral": 1450, "paid": 920},
      {"date": "2024-01-11", "organic": 5600, "direct": 3350, "social": 2350, "referral": 1550, "paid": 970},
      {"date": "2024-01-12", "organic": 5200, "direct": 3050, "social": 2050, "referral": 1400, "paid": 900},
      {"date": "2024-01-13", "organic": 3900, "direct": 2250, "social": 2550, "referral": 950, "paid": 620},
      {"date": "2024-01-14", "organic": 3600, "direct": 2050, "social": 2850, "referral": 900, "paid": 570}
    ]
x: date
keys:
  - organic
  - direct
  - social
  - referral
  - paid
offset: wiggle
title: "Website Traffic Sources"
interactions:
  hover:
    enabled: true
    highlight: true
  selection:
    enabled: true
    mode: single
subtitle: "Daily page views by acquisition channel"
metadata:
  points: auto
  source: "Google Analytics"
layout:
  preset: compact
width: 900
height: 450
minWidth: 500

Released under the MIT License. Built by Boundary Lab.