Published
Edited
Oct 1, 2019
Insert cell
md`# Homework3
Himarsha Jayanetti
[CS 625, Fall 2019](https://www.cs.odu.edu/~mweigle/CS625-F19/)`
Insert cell
import {vl} from '@vega/vega-lite-api'
Insert cell
import {fromColumns, printTable} from '@uwdata/data-utilities'
Insert cell
md`## 1: What was the breakdown of women vs. men who were provided shelter each night?`
Insert cell
d3 = require("https://d3js.org/d3.v5.js")
Insert cell
menvswomen = d3.csvParse(`date,women,men,total_guests
11/29/2017,14,33,47
11/30/2017,17,32,49
12/1/2017,15,26,41
12/2/2017,19,33,52
12/3/2017,17,37,54
12/4/2017,19,32,51
12/5/2017,17,32,49
12/6/2017,21,51,72
12/7/2017,20,56,76
12/8/2017,19,60,79
12/9/2017,20,73,93
12/10/2017,22,71,93
12/11/2017,24,86,110
12/12/2017,23,84,107
12/13/2017,24,38,62
12/14/2017,19,47,66
12/15/2017,16,48,64
12/16/2017,25,53,78
12/17/2017,23,48,71
12/18/2017,20,44,64
12/19/2017,26,45,71
12/20/2017,25,80,105
12/21/2017,24,91,115
12/22/2017,26,74,100
12/23/2017,24,67,91
12/24/2017,21,69,90
12/25/2017,24,76,100
12/26/2017,31,83,114
12/27/2017,25,89,114
12/28/2017,21,83,104
12/29/2017,18,60,78
12/30/2017,26,71,97
12/31/2017,24,86,110
1/1/2018,25,89,114
1/2/2018,22,84,106
1/3/2018,24,86,110
1/4/2018,27,105,132
1/5/2018,28,94,122
1/6/2018,29,94,123
1/7/2018,27,88,115
1/8/2018,25,97,122
1/9/2018,28,88,116
1/10/2018,22,80,102
1/11/2018,27,71,98
1/12/2018,26,71,97
1/13/2018,26,74,100
1/14/2018,24,76,100
1/15/2018,30,76,106
1/16/2018,24,79,103
`)
Insert cell
printTable(menvswomen)
Insert cell
md`${menvswomen.length} rows, ${Object.keys(menvswomen[0]).length} columns!`
Insert cell
{
const linemen = vl.markLine().data(menvswomen).encode(
vl.x().fieldT('date'),
vl.y().fieldQ('men'),
);
const linewomen = vl.markLine().data(menvswomen).encode(
vl.x().fieldT('date'),
vl.y().fieldQ('women')
);
return vl.layer(linemen , linewomen).render();
}

Insert cell
md`## 2: In total, how many guests were provided shelter by each church (or pair of churches)?`
Insert cell
churchvsguests = d3.csvParse(`church,total_guests_sum
Tabernacle / Ohef Sholom Temple,840
Larchmont Methodist / Christ & St Luke's,723
First Presbyterian Church / Christ the King,715
St Pius X / Oaklette United Church,706
First Lutheran / Great Bridge UMC,630
Wesley Grace,476
Blessed Sacrament,343
`)
Insert cell
printTable(churchvsguests)
Insert cell
md`${churchvsguests.length} rows, ${Object.keys(churchvsguests[0]).length} columns!`
Insert cell
vl.markBar()
.data(churchvsguests)
.encode(
vl.y().fieldN('church').scale({rangeStep: 12}),
vl.x().fieldQ('total_guests_sum'),
)
.render()
Insert cell
md`## 3: Is total demand for shelter affected by weather?`
Insert cell
demandvsweather = d3.csvParse(`date,total_demand,temp_low,precipitation,snow,snow_depth
11/29/2017,49,45,0,0,0
11/30/2017,54,46,0,0,0
12/1/2017,41,41,0,0,0
12/2/2017,53,35.1,0,0,0
12/3/2017,55,44.1,0,0,0
12/4/2017,57,41,0,0,0
12/5/2017,50,45,0.01,0,0
12/6/2017,72,42.1,0.21,0,0
12/7/2017,76,41,0,0,0
12/8/2017,79,37.9,1.3,0,0
12/9/2017,93,33.1,0.87,0,0
12/10/2017,93,30.2,0,0,0
12/11/2017,110,30.2,0,0,0
12/12/2017,107,33.1,0.01,0,0
12/13/2017,88,26.2,0,0,0
12/14/2017,93,37,0,0,0
12/15/2017,84,32,0,0,0
12/16/2017,92,27.1,0,0,0
12/17/2017,79,28.2,0,0,0
12/18/2017,78,37.9,0,0,0
12/19/2017,88,39,0,0,0
12/20/2017,105,44.1,0,0,0
12/21/2017,115,37,0,0,0
12/22/2017,100,39,0,0,0
12/23/2017,91,48.9,0,0,0
12/24/2017,90,41,0,0,0
12/25/2017,100,36,0,0,0
12/26/2017,114,33.1,0,0,0
12/27/2017,114,30.2,0,0,0
12/28/2017,104,23.2,0,0,0
12/29/2017,78,22.1,0,0,0
12/30/2017,99,27.1,0,0,0
12/31/2017,113,22.1,0,0,0
1/1/2018,114,21.2,0,0,0
1/2/2018,106,15.3,0,0,0
1/3/2018,114,13.1,0.42,5.2,0
1/4/2018,134,21.2,0.64,5.12,9.06
1/5/2018,122,15.3,0,0,9.84
1/6/2018,123,15.3,0,0,7.87
1/7/2018,117,10.2,0,0,7.87
1/8/2018,128,10.2,0.01,0,7.09
1/9/2018,118,28.2,0.03,0,5.91
1/10/2018,102,28.2,0,0,5.12
1/11/2018,98,34,0,0,3.94
1/12/2018,107,59,0.49,0,0
1/13/2018,122,30.2,0.05,0,0
1/14/2018,114,23.2,0,0,0
1/15/2018,124,27.1,0,0,0
1/16/2018,117,31.1,0,0,0`)
Insert cell
printTable(demandvsweather)
Insert cell
{
const temp = vl.markPoint().data(demandvsweather).encode(
vl.x().fieldQ('temp_low'),
vl.y().fieldQ('total_demand')
);
const preci = vl.markPoint().data(demandvsweather).encode(
vl.x().fieldQ('precipitation'),
vl.y().fieldQ('total_demand')
);
const snow = vl.markPoint().data(demandvsweather).encode(
vl.x().fieldQ('snow'),
vl.y().fieldQ('total_demand')
);
const snowdep = vl.markPoint().data(demandvsweather).encode(
vl.x().fieldQ('snow_depth'),
vl.y().fieldQ('total_demand')
);
return vl.hconcat(
vl.layer(temp, temp.markCircle()),
vl.layer(preci, preci.markCircle()),
vl.layer(snow, snow.markCircle()),
vl.layer(snowdep, snowdep.markCircle())
).render();
}
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more