Public
Edited
Dec 28, 2021
Insert cell
# 2021 Gamelogs
Insert cell
allScores = retro21.map(g=>g.homeScore).concat(retro21.map(g=>g.awayScore))
Insert cell
vl.markCircle({tooltip:true}).data(retro21)
.transform({
calculate: "datum.homeH + datum.visitH", as: "totalH"
})
.encode(
vl.x().fieldQ("totalH"),
vl.y().fieldQ("timeInMinutes"),
vl.tooltip(["date", "visitTeam", "homeTeam"])
).render()
Insert cell
vl.markRect()
.data(allScores.map(o => ({ value: o})))
.encode(
vl.x({field: "value", bin: {step: 1}}),
vl.y().count().axis({ orient: 'right' })
)
.width(400)
.height(100)
.render()
Insert cell
md`# Appendix
---
`
Insert cell
retro21 = {
const resp = await fetch("https://raw.githubusercontent.com/chadwickbureau/retrosheet/master/gamelog/GL2021.TXT")
const csv = await resp.text()
const rows = d3.csvParseRows(csv)
return rows.map( row => ({
date: row[0],
numOfGameOnDay: +row[1],
dayOfWeek: row[2],
visitTeam: row[3],
visitLg: row[4],
visitGameNum: +row[5],
homeTeam: row[6],
homeLg: row[7],
homeGameNum: +row[8],
visitScore: +row[9],
homeScore: +row[10],
numOuts: +row[11],
dayNight: row[12],
completionInfo: row[13],
forfiet: row[14],
protest: row[15],
parkId: row[16],
attendance: row[17],
timeInMinutes: +row[18],
visitLineScore: row[19],
homeLineScore: row[20],
visitAB: +row[21],
visitH: +row[22],
visit2B: +row[23],
visit3B: +row[24],
visitHR: +row[25],
visitRBI: +row[26],
visitSH: +row[27],
visitSF: +row[28],
visitHBP: +row[29],
visitBB: +row[30],
visitIBB: +row[31],
visitSO: +row[32],
visitSB: +row[33],
visitCS: +row[34],
visitGDP: +row[35],
visitCI: +row[34],
visitLOB: +row[37],
visitPitchersUsed: +row[38],
visitER: +row[39],
visitTeamER: +row[40],
visitWP: +row[41],
visitBalks: +row[42],
visitPO: +row[43],
visitAS: +row[44],
visitErrors: +row[45],
visitPB: +row[46],
visitDP: +row[47],
visitTP: +row[48],
homeAB: +row[49],
homeH: +row[50],
home2B: +row[51],
home3B: +row[52],
homeHR: +row[53],
homeRBI: +row[54],
homeSH: +row[55],
homeSF: +row[56],
homeHBP: +row[57],
homeBB: ++row[58],
homeIBB: +row[59],
homeSO: +row[60],
homeSB: +row[61],
homeCS: +row[62],
homeGDP: +row[63],
homeCI: +row[64],
homeLOB: +row[65],
homePitchersUsed: +row[66],
homeER: +row[67],
homeTeamER: +row[68],
homeWP: +row[69],
homeBalks: +row[70],
homePO: +row[71],
homeAS: +row[72],
homeErrors: +row[73],
homePB: +row[74],
homeDP: +row[75],
homeTP: +row[76]
}))
}
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