Skip to content

Instantly share code, notes, and snippets.

@mbostock
Forked from jasondavies/.block
Last active January 17, 2024 19:15
  • Star 1 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save mbostock/1558011 to your computer and use it in GitHub Desktop.
Cost of Living - Parallel Coordinates
license: gpl-3.0

It would be helpful if this were coordinated with a symbol map so that you could see the locations of the selected cities…

City Consumer Price Rent Consumer Price+Rent Groceries Restaurant Price Local Purch. Power
Trondheim, Norway 188.91 59.16 142.21 193.94 160.23 67.01
Stavanger, Norway 171.32 78.08 137.76 147.74 201.16 78.50
Zurich, Switzerland 152.84 74.58 124.67 143.70 138.79 142.77
Oslo, Norway 152.03 57.40 117.97 139.22 155.75 99.31
Geneva, Switzerland 146.24 79.05 122.06 138.95 135.25 115.54
Bern, Switzerland 142.44 57.44 111.85 126.78 103.59 149.28
Lucerne, Switzerland 139.94 72.45 115.65 146.52 95.72 105.65
Perth, Australia 139.63 43.76 105.13 113.13 131.61 125.08
Bergen, Norway 138.79 55.98 108.98 135.46 130.23 97.02
Tokyo, Japan 135.23 95.43 120.91 120.42 91.68 90.14
Sydney, Australia 132.39 86.25 115.79 121.11 110.98 97.23
Adelaide, Australia 129.60 47.30 99.98 120.68 121.44 112.19
Monaco, Monaco 128.15 173.08 144.32 89.80 138.14 62.30
Copenhagen, Denmark 123.82 48.65 96.77 104.25 139.11 97.43
Edinburgh, United Kingdom 122.52 38.21 92.18 92.92 143.02 95.08
Melbourne, Australia 121.53 64.37 100.96 112.50 102.37 87.81
Dublin, Ireland 119.56 48.30 93.91 109.96 113.19 93.54
London, United Kingdom 118.52 87.34 107.30 92.59 117.54 88.58
Arhus, Denmark 115.96 65.90 97.94 94.68 132.05 73.97
Canberra, Australia 115.89 53.55 93.45 106.77 94.30 115.91
Brisbane, Australia 114.70 57.19 94.00 113.64 101.33 100.49
Paris, France 113.88 63.47 95.73 95.93 112.89 82.49
Malmo, Sweden 112.89 38.45 86.10 92.55 129.79 96.70
Toulouse, France 112.28 29.90 82.63 89.10 105.33 82.70
Riyadh, Saudi Arabia 112.03 19.91 78.87 138.45 41.65 70.51
Amsterdam, Netherlands 110.78 64.61 94.16 69.93 114.88 88.83
Darwin, Australia 110.41 56.44 90.98 92.67 111.09 121.91
Auckland, New Zealand 110.36 36.80 83.89 98.74 88.77 97.68
Gent, Belgium 109.27 36.38 83.04 81.58 109.49 83.02
Stockholm, Sweden 109.14 37.75 83.45 87.42 117.66 85.65
Brussels, Belgium 109.10 40.63 84.46 91.44 109.75 85.76
Aberdeen, United Kingdom 109.08 42.04 84.95 103.80 110.60 119.20
Boston, MA, United States 106.80 69.66 93.43 113.24 86.06 109.87
Dusseldorf, Germany 106.51 25.77 77.45 77.03 119.73 157.89
Wellington, New Zealand 106.02 37.02 81.19 104.20 93.89 90.61
Turin, Italy 105.68 40.22 82.12 86.86 107.47 46.42
Rome, Italy 105.60 60.03 89.20 87.02 113.68 57.49
Vancouver, Canada 105.29 60.49 89.17 103.55 92.54 98.12
Edmonton, Canada 105.28 38.95 81.40 104.56 86.97 86.09
Brighton, United Kingdom 104.73 54.42 86.62 80.84 87.34 128.05
Birmingham, United Kingdom 104.57 42.93 82.39 94.22 90.62 71.95
Toronto, Canada 104.53 52.42 85.77 96.13 86.13 104.11
Helsinki, Finland 104.08 56.58 86.98 81.00 101.69 96.15
Venice, Italy 103.56 31.33 77.56 70.18 89.87 76.23
Honolulu, HI, United States 103.46 59.01 87.47 103.67 78.28 90.60
Calgary, Canada 103.38 40.93 80.91 99.95 81.08 124.17
Sao Paolo, Brazil 102.96 35.60 78.72 62.93 73.58 46.26
Tampere, Finland 102.68 30.37 76.65 100.74 98.33 93.84
San Francisco, CA, United States 102.52 90.04 98.03 97.84 83.21 89.35
Cagliari, Italy 101.88 29.29 75.76 72.93 114.90 66.47
Hanover, Germany 101.82 28.11 75.29 82.62 79.95 90.76
Belfast, United Kingdom 101.74 22.58 73.25 88.98 113.28 69.18
Vienna, Austria 101.47 46.87 81.82 82.49 80.97 99.19
Seattle, WA, United States 101.04 48.15 82.01 100.90 82.89 107.23
Strasbourg, France 100.86 32.03 76.09 76.03 126.38 79.49
Florence, Italy 100.43 41.39 79.18 72.16 94.28 66.66
Thessaloniki, Greece 100.39 18.96 71.08 69.76 95.91 42.30
Erlangen, Germany 100.39 33.07 76.16 92.92 80.27 28.69
Hamburg, Germany 100.18 37.35 77.57 92.62 76.50 90.42
Haifa, Israel 100.12 26.52 73.63 78.81 94.18 74.63
Reykjavik, Iceland 100.11 31.82 75.53 95.54 90.64 81.22
New York, NY, United States 100.00 100.00 100.00 100.00 100.00 100.00
Leeds, United Kingdom 98.85 34.95 75.85 81.88 107.45 85.65
Phoenix, AZ, United States 98.57 32.76 74.88 85.05 72.83 97.47
Washington, DC, United States 98.19 69.37 87.81 89.39 81.26 97.37
Linkoping, Sweden 98.06 26.92 72.46 90.51 102.37 114.78
Montreal, Canada 97.86 37.57 76.16 94.88 92.23 109.41
Bologna, Italy 97.82 38.03 76.31 92.02 89.53 84.84
Nice, France 96.89 34.95 74.60 81.58 85.89 85.58
Milan, Italy 96.88 49.22 79.73 74.25 106.38 74.06
Winnipeg, Canada 96.64 32.72 73.63 96.90 74.52 97.96
Athens, Greece 96.49 20.82 69.25 71.85 97.63 48.42
Singapore, Singapore 96.08 90.69 94.14 82.76 65.10 93.29
Munich, Germany 95.95 46.08 78.00 82.22 87.02 112.58
Bordeaux, France 95.92 27.63 71.34 78.45 93.93 67.43
Genoa, Italy 95.06 35.04 73.46 82.91 98.27 115.78
Manchester, United Kingdom 94.96 36.44 73.90 79.54 90.48 95.97
Christchurch, New Zealand 94.35 28.00 70.47 88.50 77.65 82.57
Halifax, Canada 94.30 34.13 72.64 95.04 79.02 119.94
San Jose, CA, United States 94.11 73.36 86.64 82.33 82.04 113.13
Columbus, OH, United States 94.03 20.43 67.54 86.75 75.11 112.75
Stuttgart, Germany 94.01 33.18 72.12 68.14 81.10 119.70
Marbella, Spain 93.95 30.68 71.18 69.65 99.73 107.63
Chania, Greece 93.77 18.01 66.50 69.52 88.97 46.87
Ottawa, Canada 93.76 36.87 73.29 96.84 83.34 116.01
Brasilia, Brazil 93.08 33.99 71.81 65.89 69.44 32.70
Hartford, CT, United States 92.90 47.57 76.59 108.41 72.13 109.10
Indianapolis, IN, United States 92.50 31.99 70.72 72.01 69.91 281.77
Marseille, France 92.13 31.44 70.28 88.65 82.98 102.35
Frankfurt, Germany 92.02 34.75 71.41 65.96 80.00 115.22
Rio De Janeiro, Brazil 91.85 39.61 73.05 59.80 69.92 42.76
Nicosia, Cyprus 91.80 25.66 68.00 76.36 100.08 65.24
London, Canada 91.51 34.41 70.96 78.95 80.36 94.75
Lyon, France 91.14 34.41 70.73 82.18 92.00 83.91
San Diego, CA, United States 91.05 57.88 79.11 81.09 84.34 109.84
Los Angeles, CA, United States 90.87 63.97 81.19 73.58 70.46 122.29
San Juan, Puerto Rico 90.78 31.15 69.32 69.25 73.68 30.49
Cologne, Germany 90.73 29.58 68.72 74.64 82.78 114.48
Minneapolis, MN, United States 90.26 34.78 70.29 72.84 77.16 108.19
Tampa, FL, United States 89.97 32.39 69.25 64.01 62.16 90.85
Sliema, Malta 89.88 26.35 67.02 70.55 89.05 80.50
Berlin, Germany 89.09 35.80 69.91 75.36 71.71 133.19
Waterloo, Canada 89.02 29.71 67.67 87.06 67.85 101.67
Baltimore, MD, United States 88.99 54.12 76.44 101.95 78.13 118.83
Sevilla, Spain 88.96 18.79 63.70 64.69 81.85 73.40
Beirut, Lebanon 88.92 37.05 70.25 44.54 76.19 25.73
Barcelona, Spain 88.82 33.92 69.06 65.26 88.14 86.59
Philadelphia, PA, United States 88.36 58.85 77.74 83.39 78.50 98.96
Hong Kong, Hong Kong 88.13 106.22 94.64 85.25 79.06 91.77
Madrid, Spain 87.93 39.57 70.52 60.85 88.31 93.96
Graz, Austria 87.76 35.14 68.82 77.79 72.87 101.91
Dallas, TX, United States 87.62 38.51 69.95 67.93 72.85 113.86
Nuremberg, Germany 87.54 30.04 66.84 69.56 78.79 107.62
Jerusalem, Israel 87.54 35.97 68.98 70.06 77.82 68.10
Houston, TX, United States 86.97 39.70 69.96 74.96 68.89 137.32
Bilbao, Spain 86.62 37.70 69.01 60.47 93.40 94.48
Leicester, United Kingdom 86.15 27.80 65.15 82.09 67.83 103.13
Campinas, Brazil 85.98 23.70 63.56 54.81 66.22 75.34
Abu Dhabi, United Arab Emirates 85.84 80.82 84.04 72.59 92.39 134.56
Chicago, IL, United States 85.41 49.96 72.65 72.28 74.80 119.92
Saint Louis, MO, United States 84.91 23.22 62.71 84.75 64.89 140.12
Doha, Qatar 84.73 63.50 77.09 81.63 70.84 153.01
Florianopolis, Brazil 83.88 27.46 63.58 69.26 48.84 37.89
Pittsburgh, PA, United States 83.72 22.56 61.71 69.83 56.65 135.19
Montevideo, Uruguay 83.56 26.22 62.93 66.73 68.83 30.20
Dubai, United Arab Emirates 83.39 67.87 77.80 66.31 78.57 149.89
Bremen, Germany 82.85 22.77 61.23 70.65 65.58 88.11
Porto Alegre, Brazil 82.33 23.75 61.25 50.02 51.01 50.42
Cincinnati, OH, United States 82.18 29.11 63.08 72.09 61.97 103.60
Valencia, Spain 81.87 19.60 59.46 57.18 73.68 84.53
Patras, Greece 81.84 17.58 58.71 63.73 76.59 45.64
Curitiba, Brazil 81.10 22.60 60.05 57.17 45.90 48.94
Detroit, MI, United States 79.72 30.54 62.02 75.82 67.24 92.61
Denver, CO, United States 79.39 48.43 68.25 69.23 64.57 126.10
Austin, TX, United States 78.92 45.55 66.91 80.38 64.96 131.95
Portland, OR, United States 77.22 33.80 61.59 67.34 68.36 123.02
Londrina, Brazil 76.68 23.42 57.51 49.26 54.52 30.91
Lisbon, Portugal 76.33 29.49 59.47 58.65 62.75 62.83
Coimbra, Portugal 75.74 15.84 54.18 68.50 48.93 53.72
Split, Croatia 75.60 15.73 54.05 59.97 59.67 51.15
Salvador, Brazil 75.53 19.72 55.44 49.95 45.98 33.97
Casablanca, Morocco 75.49 36.51 61.46 74.49 54.77 15.00
Des Moines, IA, United States 75.45 29.18 58.80 68.64 54.51 104.04
Ljubljana, Slovenia 75.42 28.59 58.56 62.73 61.98 56.95
Maribor, Slovenia 75.17 28.11 58.23 55.86 56.85 52.19
Istanbul, Turkey 74.89 23.21 56.29 55.95 55.29 57.60
Astana, Kazakhstan 74.58 36.29 60.80 50.62 38.83 32.01
Johannesburg, South Africa 74.23 38.34 61.31 59.72 55.42 89.43
Balneario Camboriu, Brazil 74.02 18.98 54.21 48.29 52.10 25.21
Las Vegas, NV, United States 73.98 36.00 60.31 66.83 70.80 138.32
Manama, Bahrain 71.86 47.24 63.00 63.60 80.96 64.67
Zagreb, Croatia 71.49 21.12 53.36 57.85 60.09 54.58
Baku, Azerbaijan 71.24 41.03 60.37 53.20 68.17 26.38
San Jose, Costa Rica 71.17 25.95 54.90 78.60 52.85 38.83
Riga, Latvia 70.75 15.16 50.74 52.59 66.61 34.70
Seoul, South Korea 70.53 37.10 58.50 71.05 50.57 121.54
Fortaleza, Brazil 70.30 20.94 52.54 51.92 47.81 59.92
Bratislava, Slovakia 69.94 29.17 55.27 55.22 50.61 48.64
Santiago, Chile 69.89 20.62 52.16 53.54 58.73 44.98
Bogota, Colombia 69.50 21.86 52.36 64.95 41.91 26.24
Belo Horizonte, Brazil 69.08 21.66 52.01 46.67 60.15 55.99
Porto, Portugal 69.05 20.32 51.51 52.65 47.06 52.55
Santa Cruz De Tenerife, Spain 68.98 22.67 52.31 54.01 56.80 71.41
Novosibirsk, Russia 67.96 26.92 53.19 46.04 77.27 38.33
Saint Petersburg, Russia 67.58 31.20 54.49 49.09 73.42 40.98
Kaunas, Lithuania 67.44 16.93 49.26 52.66 65.17 31.72
Tallinn, Estonia 66.95 15.82 48.55 52.25 60.70 49.68
Perm, Russia 66.64 18.04 49.15 59.01 56.54 30.50
Budva, Montenegro 66.16 19.29 49.29 53.35 57.43 33.57
Amman, Jordan 65.95 14.51 47.44 60.72 51.73 37.85
Buenos Aires, Argentina 65.93 21.58 49.97 55.69 57.34 40.33
Taipei, Taiwan 65.66 23.16 50.36 82.38 33.92 75.97
Jakarta, Indonesia 64.11 28.25 51.21 69.89 39.67 25.60
Vilnius, Lithuania 63.84 15.58 46.47 52.08 40.18 34.61
Budapest, Hungary 63.41 14.03 45.64 46.92 46.75 37.44
Yerevan, Armenia 63.39 25.89 49.89 37.69 57.59 19.61
Yekaterinburg, Russia 63.22 21.27 48.12 51.07 72.49 45.59
Prague, Czech Republic 62.91 27.59 50.20 49.50 43.30 58.44
Debrecen, Hungary 62.47 12.52 44.49 51.07 48.93 43.11
Tehran, Iran 62.43 30.99 51.11 56.64 49.01 45.70
Brno, Czech Republic 62.35 20.49 47.28 48.46 43.52 68.36
Izmir, Turkey 62.12 14.54 45.00 51.08 42.39 46.25
Podgorica, Montenegro 61.72 17.49 45.80 44.70 62.72 42.01
Medellin, Colombia 61.43 15.28 44.82 45.49 42.01 18.61
Antalya, Turkey 61.00 10.27 42.74 44.91 42.74 39.81
Kosice, Slovakia 60.86 21.19 46.58 47.90 42.65 54.82
Ankara, Turkey 60.73 14.95 44.25 43.66 46.31 58.15
Kiev, Ukraine 59.87 31.70 49.73 41.78 61.94 27.80
Mexico City, Mexico 59.68 23.22 46.56 53.86 47.77 42.69
Lima, Peru 59.52 19.90 45.26 51.37 43.29 34.80
Osijek, Croatia 59.50 13.07 42.79 52.02 39.77 45.81
Sarajevo, Bosnia And Herzegovina 58.59 13.01 42.19 43.89 44.13 35.81
Cordoba, Argentina 57.81 19.29 43.94 52.43 51.76 42.17
Tula, Russia 57.72 15.46 42.51 48.96 44.94 51.89
Guadalajara, Mexico 57.67 10.28 40.61 47.54 44.78 69.13
Tbilisi, Georgia 57.32 15.77 42.37 40.89 52.50 28.71
Monterrey, Mexico 56.60 23.53 44.70 49.88 53.05 65.26
Belgrade, Serbia 56.21 17.13 42.15 39.73 45.39 30.66
Sofia, Bulgaria 55.62 16.24 41.44 45.83 37.78 36.55
Kuala Lumpur, Malaysia 55.55 17.71 41.93 55.09 32.09 77.70
Damascus, Syria 55.50 14.22 40.65 41.91 41.08 20.52
Johor Baharu, Malaysia 55.32 7.56 38.13 47.53 33.04 38.85
Wroclaw, Poland 54.85 19.34 42.07 42.05 42.99 58.27
Guayaquil, Ecuador 54.76 10.14 38.70 44.89 40.14 25.86
Beijing, China 54.38 28.71 45.14 61.66 37.49 36.42
Shanghai, China 54.20 29.86 45.44 51.64 42.60 47.04
Ulaanbaatar, Mongolia 53.86 24.01 43.12 57.94 37.81 22.57
Quito, Ecuador 53.69 11.66 38.56 47.42 39.26 23.85
Warsaw, Poland 53.64 22.81 42.55 42.07 45.74 64.83
Cairo, Egypt 53.40 17.34 40.42 45.39 48.99 20.64
Poznan, Poland 53.20 13.93 39.07 42.48 41.12 58.48
Novi Sad, Serbia 52.70 10.53 37.52 36.62 50.99 35.95
Iasi, Romania 52.66 13.28 38.48 43.50 34.27 31.37
Bangkok, Thailand 52.61 26.42 43.18 63.49 29.65 29.50
Guangzhou, China 52.44 17.25 39.77 70.42 30.76 25.60
Varna, Bulgaria 52.13 11.51 37.51 45.17 38.79 34.13
Katowice, Poland 51.87 19.49 40.21 43.11 41.41 57.95
Gdansk, Poland 51.64 20.34 40.37 40.86 43.63 64.99
Cluj-napoca, Romania 51.35 10.94 36.81 45.02 36.15 38.79
Bucharest, Romania 50.97 15.28 38.12 39.77 41.79 36.15
Banja Luka, Bosnia And Herzegovina 50.12 11.38 36.18 40.89 45.75 43.60
Brasov, Romania 50.05 9.04 35.29 39.77 35.41 33.48
Constanta, Romania 49.97 14.32 37.14 36.51 36.55 37.55
Timisoara, Romania 49.90 10.66 35.78 44.77 32.78 38.57
Plovdiv, Bulgaria 49.05 10.38 35.13 39.39 32.68 31.18
Quezon City, Philippines 48.83 13.86 36.24 50.04 28.11 28.25
Krakow, Poland 48.63 19.48 38.14 38.02 34.91 61.36
Szczecin, Poland 48.59 12.85 35.73 38.88 41.24 53.60
Hanoi, Vietnam 47.83 40.93 45.34 50.12 31.48 20.82
Chisinau, Moldova 47.81 12.35 35.05 38.59 40.27 27.56
Cebu, Philippines 47.61 8.16 33.41 47.26 21.60 35.28
Minsk, Belarus 47.40 15.41 35.89 35.32 53.72 22.16
Manila, Philippines 47.34 13.47 35.15 48.24 23.02 27.02
Makati, Philippines 47.17 28.45 40.43 40.15 34.74 20.06
Managua, Nicaragua 46.57 11.08 33.80 45.10 31.34 41.13
Skopje, Macedonia 46.51 11.74 33.99 35.19 35.78 34.39
Esfahan, Iran 45.56 19.60 36.22 47.53 34.47 49.90
Nis, Serbia 44.85 11.02 32.68 31.88 37.15 28.62
Lublin, Poland 42.40 13.98 32.17 34.50 32.67 60.48
Gurgaon, India 41.64 12.26 31.07 36.11 26.13 63.86
Ho Chi Minh City, Vietnam 41.09 29.65 36.97 48.66 24.37 45.15
Algiers, Algeria 40.60 13.23 30.75 42.50 31.32 23.70
Lahore, Pakistan 40.09 7.75 28.45 37.26 31.69 23.46
Delhi, India 37.93 12.08 28.63 35.23 26.57 62.71
Davao, Philippines 37.59 11.36 28.15 39.78 21.57 44.20
Mumbai, India 36.62 21.51 31.18 35.97 26.86 57.91
Bangalore, India 34.92 9.80 25.87 35.32 19.80 65.65
Indore, India 34.85 5.75 24.38 32.90 16.09 89.92
Chandigarh, India 33.95 6.98 24.24 31.63 21.68 52.41
Ahmedabad, India 33.12 6.47 23.53 29.26 24.03 50.67
Hyderabad, India 32.67 7.26 23.52 32.57 20.06 72.32
Madurai, India 32.05 5.65 22.55 29.99 13.11 25.02
Kolkata, India 31.97 8.81 23.63 35.06 21.02 49.26
Pune, India 31.90 9.34 23.78 32.74 20.62 55.50
Chennai, India 31.09 9.19 23.21 32.57 17.17 59.10
Kochi, India 31.07 5.28 21.79 34.43 16.52 44.85
Thiruvananthapuram, India 30.30 5.09 21.23 35.64 17.20 56.05
Ludhiana, India 30.20 7.89 22.17 31.27 21.88 55.74
<!DOCTYPE html>
<meta charset="utf-8">
<style>
svg {
font: 10px sans-serif;
}
.background path {
fill: none;
stroke: #ccc;
stroke-opacity: .4;
shape-rendering: crispEdges;
}
.foreground path {
fill: none;
stroke: steelblue;
stroke-opacity: .7;
}
.brush .extent {
fill-opacity: .3;
stroke: #fff;
shape-rendering: crispEdges;
}
.axis line, .axis path {
fill: none;
stroke: #000;
shape-rendering: crispEdges;
}
.axis text {
text-shadow: 0 1px 0 #fff;
}
</style>
<body>
<script src="//d3js.org/d3.v3.min.js"></script>
<script>
var m = [30, 10, 10, 10],
w = 960 - m[1] - m[3],
h = 500 - m[0] - m[2];
var x = d3.scale.ordinal().rangePoints([0, w], .5),
y = {};
var line = d3.svg.line(),
axis = d3.svg.axis().orient("left"),
background,
foreground;
var svg = d3.select("body").append("svg")
.attr("width", w + m[1] + m[3])
.attr("height", h + m[0] + m[2])
.append("g")
.attr("transform", "translate(" + m[3] + "," + m[0] + ")");
d3.csv("cost-of-living.csv", function(error, cities) {
if (error) throw error;
// Extract the list of dimensions and create a scale for each.
x.domain(dimensions = d3.keys(cities[0]).filter(function(d) {
return d != "City" && (y[d] = d3.scale.linear()
.domain(d3.extent(cities, function(p) { return +p[d]; }))
.range([h, 0]));
}));
// Add grey background lines for context.
background = svg.append("g")
.attr("class", "background")
.selectAll("path")
.data(cities)
.enter().append("path")
.attr("d", path);
// Add blue foreground lines for focus.
foreground = svg.append("g")
.attr("class", "foreground")
.selectAll("path")
.data(cities)
.enter().append("path")
.attr("d", path);
// Add a group element for each dimension.
var g = svg.selectAll(".dimension")
.data(dimensions)
.enter().append("g")
.attr("class", "dimension")
.attr("transform", function(d) { return "translate(" + x(d) + ")"; });
// Add an axis and title.
g.append("g")
.attr("class", "axis")
.each(function(d) { d3.select(this).call(axis.scale(y[d])); })
.append("text")
.attr("text-anchor", "middle")
.attr("y", -9)
.text(String);
// Add and store a brush for each axis.
g.append("g")
.attr("class", "brush")
.each(function(d) { d3.select(this).call(y[d].brush = d3.svg.brush().y(y[d]).on("brush", brush)); })
.selectAll("rect")
.attr("x", -8)
.attr("width", 16);
});
// Returns the path for a given data point.
function path(d) {
return line(dimensions.map(function(p) { return [x(p), y[p](d[p])]; }));
}
// Handles a brush event, toggling the display of foreground lines.
function brush() {
var actives = dimensions.filter(function(p) { return !y[p].brush.empty(); }),
extents = actives.map(function(p) { return y[p].brush.extent(); });
foreground.style("display", function(d) {
return actives.every(function(p, i) {
return extents[i][0] <= d[p] && d[p] <= extents[i][1];
}) ? null : "none";
});
}
</script>
@JoanneFraser
Copy link

Thank you, I've spent almost an hour watching it, because it is really interesting.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment