Skip to content

Instantly share code, notes, and snippets.

@johnwalley
Last active December 20, 2017 23:15
Show Gist options
  • Save johnwalley/38066f5de33fe211e773f79c0c71d90a to your computer and use it in GitHub Desktop.
Save johnwalley/38066f5de33fe211e773f79c0c71d90a to your computer and use it in GitHub Desktop.
Bumps Fines
license: mit
college reason amount year
Anglia Ruskin Failure to provide marshal 15 2017
Caius Early celebration 20 2017
Caius (Repeated) failure to clear 30 2017
Caius Illegal practice start 20 2017
Caius Late marshal 5 2017
Christ's Late to marshalling 20 2017
Christ's Failure to organise representative for the coxes briefing 25 2017
Clare Failure to row on upon being bumped 35 2017
Clare Failure to clear 30 2017
Clare Early celebration resulting in slow clearing 40 2017
Clare Failure to seek permission to be absent from the novice cox briefing 50 2017
Corpus Christi Failure to hold it up on bumping 45 2017
Downing Failure to provide marshal 15 2017
Emmanuel Holding up upon being bumped 35 2017
First and Third Failure to organise representative for the coxes briefing 25 2017
First and Third Dropped bung (no advantage) 15 2017
First and Third Failure to seek permission to be absent from the novice cox briefing 50 2017
Fitzwilliam Failure to organise representative for the coxes briefing 25 2017
Fitzwilliam Failure to provide marshal 15 2017
King's Late to marshalling 20 2017
LMBC Late to marshalling 20 2017
LMBC Illegal practice start 20 2017
LMBC Failure to row on upon being bumped 50 2017
Magdalene Illegal practice start 20 2017
Magdalene Late to marshalling 20 2017
Murray Edwards Early celebration resulting in slow clearing 35 2017
Pembroke Late to marshalling 20 2017
Pembroke Ignoring marshals' instructions 20 2017
Pembroke Foul and abusive language to an official 40 2017
Peterhouse Dropped bung (no advantage) 15 2017
Peterhouse Failure to provide marshal 15 2017
Queens' Failure to seek permission to be absent from the novice cox briefing 50 2017
Queens' Failure to seek permission to be absent from the novice cox briefing 50 2017
Queens' Late marshal 5 2017
Robinson Dangerous coxing 25 2017
Robinson Illegal practice start 20 2017
Selwyn Failure of representative to sign in at the coxes briefing 25 2017
Selwyn Failure to provide marshal 15 2017
St Catharine's Late to marshalling 20 2017
St Catharine's Bank party impeding umpire 30 2017
St Edmund's Failure to provide marshal 15 2017
St Edmund's Late marshal 5 2017
Trinity Hall Rowing into a stationary crew 50 2017
Anglia Ruskin Failure to provide marshal second offence 30 2017
Christ's No lifejacket at marshalling 50 2017
Christ's No lifejacket for row home 50 2017
Christ's Excessive bank party 30 2017
Christ's Excessive bank party second offence 45 2017
Clare Hall Illegal crew member 50 2017
Corpus Christi Failure to provide marshal 15 2017
First and Third Excessive bank party 30 2017
First and Third Excessive bank party second offence 45 2017
First and Third Illegal practise start 20 2017
Hughes Hall Excessive bank party 30 2017
Hughes Hall Very late marshal 10 2017
Jesus Easying upon being bumped 25 2017
Jesus Excessive bank party 30 2017
LMBC Early celebration 20 2017
Magdalene Early celebration 20 2017
Magdalene Failure to provide marshal 15 2017
Pembroke Dropped bung no advantage 15 2017
Pembroke Dropped bung no advantage 15 2017
Peterhouse Failure to provide marshal second offence 30 2017
Queens' Easying upon being bumped 25 2017
Robinson Droped bung no advantage 15 2017
Robinson Late concession 20 2017
Selwyn Late concession 20 2017
Wolfson Early celebration 20 2017
Clare Hall Easying upon being bumped 25 2017
Corpus Christi Dropped bung no advantage 15 2017
Corpus Christi Failure to provide a marshal second offence 30 2017
Downing Failure to provide a marshal second offence 30 2017
Fitzwilliam Excessive bank party 30 2017
Fitzwilliam Excessive bank party second offence 45 2017
Fitzwilliam Excessive bank party third offence 60 2017
Fitzwilliam Excessive bank party fourth offence 75 2017
Fitzwilliam Excessive bank party fifth offence 90 2017
Girton Dropped bung no advantage 15 2017
Homerton Failure to provide a marshal 15 2017
Jesus No lifejacket on row down 50 2017
Magdalene Excessively late concession 50 2017
Magdalene Illegal practice start 20 2017
Magdalene Failure to provide a marshal second offence 30 2017
LMBC Excessive bank part 30 2017
LMBC Slow to hold it up upon bumping 30 2017
LMBC Late marshal 5 2017
Queens' Dropped bung no advantage 15 2017
Queens' Failure to clear 30 2017
Selwyn Dangerous coxing 40 2017
St Edmund's Failure to provide a marshal second offence 30 2017
Wolfson Slow to hold it up upon bumping 30 2017
Anglia Ruskin Failure to provide a marshal third offence 45 2017
Caius Failure to provide a marshal 15 2017
Christ's Dropped bung no advantage 15 2017
Christ's Failure to provide a marshal 15 2017
Downing Sensible avoidance of a stationary crew -25 2017
Downing Failure to provide a marshal second offence 30 2017
Emmanuel Forgotten bung no advantage 15 2017
Emmanuel Celebration before clearing 40 2017
Emmanuel Incompetent clearing 75 2017
First and Third Dangerous coxing owing to using phone and carrying flag 40 2017
Hughes Hall Very slow to clear 50 2017
Hughes Hall Dangerously incompetent clearing 50 2017
Hughes Hall Failure to provide a marshal 15 2017
Jesus Forgotten bung no advantage 15 2017
Jesus ignoring umpire's instructions 20 2017
Jesus Dangerous coxing 40 2017
Jesus Commendation for sensibly conceding upon crashing -25 2017
LMBC Slow to hold it up upon encountering a blocked river 10 2017
LMBC Ignoring navigation rules; only victory laps by headship crews are accommodated 30 2017
Magdalene No lifejacket for row down 50 2017
Murray Edwards Obstructing an umpire and bank party ignoring an umpire 30 2017
Murray Edwards Obstructing an umpire 15 2017
Peterhouse Failure to hold it up upon bumping 50 2017
Queens' Failure to provide a marshal 15 2017
Selwyn Dropped bung no advantage 15 2017
St Catharine's Rowing into a stationary crew 75 2017
Trinity Hall Failure to provide a marshal 15 2017
Caius Public Urination 80 2016
Caius Excessive Bank Party 30 2016
Caius Failure to Following Umpire's Instructions 20 2016
Christ's Attempting to Overtake the Queue 20 2016
Christ's Stationary Practice Start 30 2016
Churchill Littering 80 2016
Clare Failure to Easy 15 2016
Clare Stationary Practice Start 30 2016
Downing Very Late to Marshalling 50 2016
Downing Excessive Bank Party 30 2016
Downing Late to Marshalling 20 2016
Downing Failure to Hold it Up 30 2016
Downing Early Celebration 30 2016
Downing Excessive Bank Party 30 2016
Emmanuel Late to Marshalling 20 2016
Hughes Hall Dangerous Coxing 75 2016
Hughes Hall Poor Conduct 25 2016
Hughes Hall Abusive Language 50 2016
Jesus Late to Marshalling 20 2016
Jesus Stationary Practice Start 30 2016
Jesus Public Urination 80 2016
King's Failure to Clear 50 2016
LMBC Public Urination 80 2016
LMBC Late to Marshalling 20 2016
LMBC Premature Celebration 20 2016
LMBC Attempted Stationary Practice Start at Railway Bridge 30 2016
Magdalene Dropped Bung No Advantage 15 2016
Queens' Foul and Abusive Language 30 2016
Selwyn Public Urination 80 2016
Selwyn Boating Without Life Jacket 50 2016
Sidney Sussex Stationary Practice Start 30 2016
Sidney Sussex Dropped Bung No Advantage 15 2016
Sidney Sussex Failure to Concede 20 2016
Selwyn Foul Language 20 2016
Wolfson Stopped Rowing upon Being Bumped 20 2016
Caius Ignoring umpires instructions 20 2016
Caius Public Urination 80 2016
Caius Excessive Bank Party 30 2016
Caius Excessive Bank Party 45 2016
Christ's Failure to conceded 20 2016
Churchill Early Celebration 30 2016
Churchill Failure to hold it up 30 2016
Clare Hall Failure to clear 15 2016
Corpus Christi Failure to easy 40 2016
Downing Excessive bank party 30 2016
Emmanuel Early Celebration 30 2016
First and Third Early Celebration 30 2016
Fitzwilliam Excessive bank party 30 2016
Girton Excessive bank party 30 2016
Homerton Late to marshalling 20 2016
Hughes Hall Disobeying umpire’s instructions 20 2016
Hughes Hall Forgot Bung no advantage 15 2016
Jesus Late to marshalling 20 2016
Jesus Dropped Bung no advantage 15 2016
King's Foul and abusive language 30 2016
LMBC No lifejacket 50 2016
Murray Edwards Boating Without Life Jacket 50 2016
Newnham Failure to Clear 50 2016
Pembroke Excessive bank party 30 2016
Pembroke Foul and abusive language 30 2016
Queens Stationary Start in Marshalling Area 30 2016
Queens' Excessive bank party 30 2016
Selwyn Failure to hold it up on bumping 30 2016
St Edmund's Disobeying umpire’s instructions 20 2016
Wolfson Excessive Bank Party 30 2016
Anglia Ruskin Stationary Practice Start on the Reach by first excessively 'pausing' 30 2016
Caius Failure to Provide Marshal (1st Offence) 15 2016
Caius Failure to Provide Marshal (2nd Offence) 30 2016
Caius Failure to Provide Marshal (3rd Offence) 45 2016
Caius Excess Bank Party 30 2016
Christ's Failure to Provide Marshal (1st Offence) 15 2016
Corpus Failure to Provide Marshal (1st Offence) 15 2016
Darwin Failure to Provide Marshal (1st Offence) 15 2016
Darwin Failure to Provide Marshal (2nd Offence) 30 2016
Darwin Dropped Bung No Advantage 15 2016
Downing Failure to Provide Marshal (1st Offence) 15 2016
Downing Failure to Provide Marshal (2nd Offence) 30 2016
Emmanuel Failure to Provide Marshal (1st Offence) 15 2016
Emmanuel Excess Bank Party 30 2016
Homerton Failure to Provide Marshal (1st Offence) 15 2016
Homerton Very Late to Marshalling 40 2016
Homerton Dropped Bung No Advantage 15 2016
LMBC Failure to Provide Marshal (1st Offence) 15 2016
LMBC Excess Bank Party 30 2016
LMBC Early Celebration 30 2016
Magdalene Dropped Bung No Advantage 15 2016
Pembroke Stopping rowing upon being bumped 30 2016
Pembroke Late to Marshalling 20 2016
Peterhouse Excess Bank Party 30 2016
Queens' Failure to Provide Marshal (1st Offence) 15 2016
Queens' Failure to Provide Marshal (2nd Offence) 30 2016
Robinson Failure to Provide Marshal (1st Offence) 15 2016
Selwyn Failure to Provide Marshal (1st Offence) 15 2016
Trinity Hall Failure to Provide Marshal (1st Offence) 15 2016
Trinity Hall Excess Bank Party 30 2016
Trinity Hall Failure to Hold it Up 30 2016
Wolfson Dropped Bung No Advantage 15 2016
Anglia Ruskin Failure to Provide Marshal 15 2016
Anglia Ruskin Failure to Provide Marshal 30 2016
Anglia Ruskin Failure to Provide Marshal 45 2016
Caius Excess Bank Party (3rd offence) 60 2016
Caius Excess Bank Party (4th offence) 75 2016
Caius Ignoring Umpire's Instructions 30 2016
Caius Failure to provide Marshal (fourth offence) 60 2016
Caius Failure to Provide Marshal (fifth offence) 60 2016
Christ's Failure to Clear 75 2016
Christ's Failure to Provide Marshal (second offence) 30 2016
Churchill Obstructing Umpire 50 2016
Churchill Abusive Language from Bank Party 50 2016
Clare Early Celebration 30 2016
Clare Failure to Clear 30 2016
Clare Hall Early Celebration 20 2016
Corpus Christi Failure to Provide Marshal (second offence) 30 2016
Corpus Christi Failure to Provide Marshal (third offence) 45 2016
Darwin Excessive Bank Party 30 2016
Darwin Very Late to Marshalling 40 2016
Darwin Dangerous Coxing 30 2016
Downing Excessive Bank Party 30 2016
Emmanuel Excessive Bank Party 30 2016
Emmanuel Failure to Provide Marshal (second offence) 30 2016
First and Third Public Urination 80 2016
First and Third Foul Language 30 2016
First and Third Excessive Bank Party 30 2016
First and Third Excessive Bank Party (second offence) 45 2016
First and Third Dangerous Failure to Concede 75 2016
Homerton Excessive Bank Party 30 2016
Homerton Late Concession 30 2016
Homerton Excessive Bank Party (first offence) 30 2016
Homerton Excessive Bank Party (second offence) 45 2016
Homerton Excessive Bank Party (third offence) 45 2016
Homerton Failure to Provide Marshal (second offence) 30 2016
Homerton Failure to Provide Marshal (third offence) 45 2016
Hughes Hall Excessive Bank Party 30 2016
Hughes Hall Excessive Bank Party 30 2016
Hughes Hall Excessive Bank Party (second offence) 45 2016
Jesus Early Celebration 20 2016
Jesus Dropped Bung No Advantage 15 2016
Jesus Dangerous Coxing 50 2016
Jesus Failure to Provide Marshal 15 2016
LMBC Failure to Hold it up on Bumping 40 2016
LMBC Early Celebration 75 2016
LMBC Obstructing Umpire 30 2016
LMBC Early Celebration 30 2016
LMBC Attempting to Overtake the Queue 20 2016
LMBC Failure to Provide Marshal (second offence) 30 2016
LMBC Failure to Provide Marshal (third offence) 45 2016
Magdalene Excess Bank Party (first runner) 30 2016
Magdalene Excess Bank Party (second runner) 45 2016
Magdalene Obstructing Umpire 30 2016
Newnham Failure to Provide Marshal 15 2016
Pembroke Excess Bank Party (first offence) 30 2016
Pembroke Excess Bank Party (second offence) 45 2016
Pembroke Ignoring Umpire's Instructions 30 2016
Pembroke Obstructing Umpire 50 2016
Pembroke Failure to Clear 30 2016
Pembroke Early Celebration 20 2016
Peterhouse Stopped Rowing Upon Being Bumped 50 2016
Queens' Early Celebration 20 2016
Queens' Stopped Rowing Upon Being Bumped 40 2016
Selwyn Failure to Clear 50 2016
Wolfson Failure to hold it up on Bumping 75 2016
Wolfson Failure to Provide Marshal 15 2016
Clare Hall Urinating in public 85 2015
Corpus Christi Failure to provide marshal 15 2015
Corpus Christi Overtaking queue 15 2015
Darwin Overtaking queue 15 2015
Downing Failure to provide marshal 15 2015
Downing Failure to provide marshal (second offence) 30 2015
Downing Pushed out without bung (no advantage) 15 2015
Downing Late concession 15 2015
Emmanuel Forgot bung (no advantage) 15 2015
Fitzwilliam Slow to clear 30 2015
Fitzwilliam Crashing into a stationary crew when attempting to clear 30 2015
Girton Late to marshalling 15 2015
Jesus Dropped bung (no advantage) 15 2015
Jesus Late to marshalling 15 2015
Queens' Late to marshalling 15 2015
Selwyn Failure to provide marshal 15 2015
Selwyn Practise start at Railway Bridge 15 2015
Selwyn Late concession 15 2015
Sidney Sussex Late concession 15 2015
Trinity Hall Overtaking queue 15 2015
Anglia Ruskin Failure to concede 30 2015
Darwin Dropped bung (no advantage) 15 2015
First and Third Excessive bank party 30 2015
First and Third Late concession 15 2015
Fitzwilliam Excessive bank party 30 2015
Girton Late concession 15 2015
Homerton Failure to clear 30 2015
Jesus No lifejacket 50 2015
Jesus Forgot bung (no advantage) 15 2015
King's Failure to clear 30 2015
LMBC Foul and abusive language / gestures from bank party 50 2015
Robinson Dropped bung (no advantage) 15 2015
Sidney Sussex Excessive bank party 30 2015
Sidney Sussex Bank party impeding umpires 30 2015
Sidney Sussex Serious failure to easy taking five strokes into crew in front after they'd conceded 50 2015
St Catharine's Late concession 15 2015
St Edmund's Excessive bank party 30 2015
Trinity Hall Failure to hold it up 40 2015
Trinity Hall Early celebration 30 2015
Christ's Excessive bank party 30 2015
Churchill Late to marshalling 20 2015
Clare Late to marshalling 20 2015
Clare Hall Failure to hold it up on bumping 35 2015
Corpus Christi Excessive bank party 30 2015
Corpus Christi Failure to hold it up on bumping 35 2015
Emmanuel Dropped bung (no advantage) 15 2015
First and Third Excessive bank party 30 2015
First and Third Late to marshalling 20 2015
King's No life jacket 50 2015
LMBC Failure to hold it up on bumping early celebration and then failure to clear 50 2015
LMBC Public urination 80 2015
LMBC Late concession 25 2015
LMBC Late concession 25 2015
LMBC Easying upon being bumped 35 2015
LMBC Late to marshalling 20 2015
Pembroke Late to marshalling 20 2015
Queens' Bank party obstructing umpires 25 2015
Robinson Dropped bung (no advantage) 15 2015
Robinson Dropped bung (no advantage) 15 2015
Selwyn Extremely late to marshalling 20 2015
Anglia Ruskin Failure to provide marshal (Friday) 15 2015
Caius Excessive bank party 30 2015
Caius Easied when bumped 20 2015
Christ's Failure to hold it up 30 2015
Christ's Practice start at railway bridge 15 2015
Clare Failure to provide marshal (Friday) 15 2015
Corpus Christi Bank party obstructed umpire 20 2015
Emmanuel Excessive bank party (joined in the gut) 30 2015
Emmanuel Practise start at railway bridge 15 2015
Girton Failure to easy 40 2015
Homerton Failure to provide marshal (Thursday) 15 2015
Homerton Failure to provide marshal (Friday second offence) 30 2015
Homerton Early celebration 20 2015
Homerton Failure to clear 20 2015
Hughes Hall Easied when bumped 10 2015
Jesus Failure to provide marshal (Thursday) 15 2015
Jesus Bank party obstructing umpire 20 2015
King's Failure to hold it up 40 2015
LMBC Excessive bank party 30 2015
LMBC Excessive bank party (second offence) 45 2015
LMBC Excessive bank party (third offence) 60 2015
LMBC Slow to clear 15 2015
LMBC Dropped bung (no advantage) 15 2015
Pembroke Excessive bank party 30 2015
Pembroke Excessive bank party (second offence) 45 2015
Selwyn Failure to provide marshal (Thursday second offence) 30 2015
St Catharine's Rowed into stationary crew at race pace 75 2015
St Edmund's Illegal Crew Member (Friday) 50 2015
Christ's Dropped bung no advantage 15 2014
Corpus Christi Early celebration 20 2014
Corpus Christi Impeding chasing crew 50 2014
Darwin Failure to clear 50 2014
Downing Excessive bank party 30 2014
Emmanuel Very late to marshalling 20 2014
Hughes Hall Failure to hold it up early celebration and failure to clear 25 2014
Hughes Hall Late to marshal due to swapping blades 20 2014
Fitzwilliam Very late to marshalling 20 2014
Girton Dangerous coxing on row home 30 2014
LMBC Excessive bank party 30 2014
LMBC Very late to marshalling 20 2014
LMBC Dropped bung no advantage 15 2014
Magdalene Failure to concede 20 2014
Peterhouse Late to marshalling 20 2014
Sidney Sussex Dropped bung no advantage 15 2014
Wolfson Dangerous failure to clear 50 2014
Corpus Christi Failure to provide marshal 15 2014
Downing Failure to provide marshal 15 2014
First and Third Failure to provide marshal 15 2014
Fitzwilliam Late marshal 5 2014
Jesus Failure to provide marshal 15 2014
LMBC Failure to provide marshal 15 2014
Pembroke Inexperienced marshal 5 2014
St Catharine's Failure to provide marshal 15 2014
Trinity Hall Failure to provide marshal 15 2014
Caius Practice start at railway bridge 20 2014
Churchill Excessive bank party 30 2014
Churchill Late to marshalling 20 2014
Churchill Failure to hold it up 20 2014
First and Third Obstructing an umpire 30 2014
Girton Abusive behaviour by bank party 50 2014
Homerton Late to marshalling 20 2014
Hughes Hall Very late to marshalling 20 2014
Hughes Hall Boating without full crew 50 2014
Hughes Hall Boating without full crew 50 2014
Jesus Dropped bung no advantage 15 2014
Jesus Boating without full crew 50 2014
LMBC Public urination 80 2014
LMBC Late to hold it up 20 2014
LMBC Public urination 80 2014
Magdalene Late to marshal 20 2014
Pembroke Public urination 80 2014
Pembroke Failure to concede 50 2014
Pembroke Public urination 80 2014
Queens' Excessive bank party 30 2014
Queens' Failure to concede 25 2014
Queens' Failure to clear 30 2014
Robinson Dropped bung no advantage 15 2014
Selwyn Dropped bung no advantage 15 2014
Sidney Sussex M1 Dropped bung no advantage 15 2014
St Catharine's Failure to concede 20 2014
St Catharine's Failure to clear 30 2014
Trinity Hall No lifejacket 50 2014
Trinity Hall Excessive bank party 30 2014
Downing Failure to provide marshal 15 2014
Caius Failure to provide marshal 15 2014
Darwin Marshal getting lost on way to grassy 5 2014
Homerton Failure to provide marshal 15 2014
Selwyn Failure to provide marshal 15 2014
Trinity Hall Failure to provide marshal (2nd) 30 2014
Caius No lifejacket (and only realised 7 minutes before the start) 50 2014
Caius Foul and abusive language 25 2014
Christ's Very serious failure to acknowledge 75 2014
Christ's Rowing at race pace while marshalling into another crew 20 2014
Churchill Early celebration 20 2014
Clare Hall Stopped rowing upon being bumped 20 2014
Corpus Christi Aggressive coxing on row home 30 2014
Corpus Christi Dropped bung no advantage 15 2014
Girton Stopped rowing upon being bumped causing serious collision 75 2014
Girton Abusive language towards an umpire 50 2014
Homerton Foul and abusive language 25 2014
Hughes Hall Failure to easy after bump awarded 30 2014
Jesus Excessive bank party 30 2014
LMBC Excessive bank party 30 2014
Pembroke Late to marshalling 20 2014
Peterhouse Serious failure to hold it up and early celebration 60 2014
Robinson Dropped bung small advantage did not affect outcome 20 2014
Robinson Dropped bung no advantage 15 2014
Selwyn Ignoring umpire's instructions 20 2014
Sidney Sussex Dropped bung no advantage 15 2014
St Catharine's Failure to concede 20 2014
St Edmund's Foul and abusive language 30 2014
Trinity Hall Practice start at railway bridge 20 2014
Caius Failure to provide marshal (2nd) 30 2014
Darwin Failure to provide marshal 15 2014
Girton Failure to provide marshal 15 2014
Jesus Failure to provide marshal (2nd) 30 2014
LMBC Failure to provide marshal (2nd) 30 2014
Queens' Failure to provide marshal 15 2014
Christ's Abusive language towards an umpire 50 2014
Churchill Excessive bank party 60 2014
Clare Late concession 20 2014
Darwin Excessive bank party 60 2014
Downing Excessive bank party 60 2014
Emmanuel Excessive bank party 60 2014
First and Third Excessive bank party 60 2014
First and Third Foul and abusive language to another crew 25 2014
Jesus Late to marshalling 20 2014
LMBC Excessive bank party 60 2014
LMBC Very slow to clear 25 2014
Magdalene Failure to clear 40 2014
Pembroke Practice start at railway bridge 20 2014
Pembroke Dropped bung no advantage 15 2014
Queens' Excessive bank party 60 2014
Queens' Late concession 40 2014
Robinson Dropped bung small advantage did not affect outcome 20 2014
<!DOCTYPE html>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>May Bumps Fines</title>
<style>
html {
height: 100%;
}
body {
height: 100vh;
margin: 0px;
display: flex;
font-family: sans-serif;
background-color: #f0ece9;
flex-direction: column;
overflow: hidden;
}
#header {
background-color: #f5f3f2;
padding-left: 22px;
padding-top: 12px;
border-bottom: 1px solid white;
}
#header #headline {
display: flex;
flex-direction: row;
justify-content: space-between;
}
#header h1 {
font-family: Helvetica, sans-serif;
font-size: 20px;
color: #635f5d;
margin-top: 0px;
margin-bottom: 5px;
}
#header p {
font-family: Georgia, serif;
font-size: 14px;
font-style: italic;
color: #8e8883;
margin-top: 5px;
margin-bottom: 5px;
}
#footer {
height: 22px;
line-height: 22px;
font-family: Georgia, serif;
font-size: 12px;
color: #625e5b;
background-color: #e6e2df;
padding-left: 22px;
border-top: 1px dashed #cdcdc9;
}
#footer span {
display: inline-block;
vertical-align: middle;
}
div#chart {
flex: 1;
}
.title {
font-family: Helvetica, sans-serif;
font-size: 30px;
fill: #625e5b;
}
.dropdown {
color: #635f5d;
font-family: Helvetica, sans-serif;
font-size: 16px;
padding-right: 12px;
}
.dropdown select {
color: #635f5d;
font-family: Helvetica, sans-serif;
font-size: 16px;
}
svg text {
fill: #635f5d;
}
#quantity {
display: none;
}
.axis--x path {
display: none;
}
.axis--x .tick line {
display: none;
}
.axis--x {
font-size: 2vw;
}
.label {
font-size: 2vw;
}
.axis--y {
font-size: 2vw;
}
.axis--y .domain {
display: none;
}
.axis--y .tick line {
stroke: white;
}
@media screen and (max-width: 500px) {
.axis--x {
font-size: 10px;
}
.axis--y {
font-size: 10px;
}
.label {
font-size: 10px;
}
}
@media screen and (min-width: 800px) {
.axis--x {
font-size: 16px;
}
.axis--y {
font-size: 16px;
}
.label {
font-size: 16px;
}
}
</style>
<div id="header">
<div id="headline">
<h1>May Bumps Fines</h1>
<div class="dropdown" id="year"><label>Year: </label><select></select></div>
</div>
<p>Total fines incurred over four days of racing</p>
</div>
<div id="chart"></div>
<div id="footer">
<span><b>Source</b>: <i>CUCBC mailing lists</i></span>
</div>
<script src="https://d3js.org/d3.v4.min.js"></script>
<script>
d3.csv("data.csv", function (d) {
d.amount = +d.amount;
return d;
}, function (error, data) {
if (error) throw error;
var barChart = chart();
var nestedData = d3.nest()
.key(function (d) { return d.year; }).sortKeys(d3.ascending)
.key(function (d) { return d.college; }).sortKeys(d3.ascending)
.rollup(function (leaves) { return { "number": leaves.length, "total_amount": d3.sum(leaves, function (d) { return +d.amount; }) } })
.entries(data);
var menuYear = d3.select("#year select")
.on("change", () => change(false));
menuYear.selectAll("option")
.data(nestedData)
.enter().append("option")
.text(function (d) { return d.key; });
menuYear.property("value", "2017");
var change = function (isResize) {
var year = menuYear.property("value");
var currentData = nestedData.find(function (d) { return d.key === year }).values
.map(function (d) { return { key: d.key, value: d.value.total_amount }; })
.sort(function (a, b) { return b.value - a.value; });
var selection = d3.select("#chart");
selection.datum(currentData).call(barChart, isResize);
}
window.onresize = function () {
change(true);
}
change(false);
});
var chart = function () {
var svg = null;
var width;
var height;
var chartWidth;
var chartHeight;
var x;
var y;
function chart(selection, isResize) {
selection.each(function (data) {
var duration = isResize ? 0 : 1000;
width = selection.node().getBoundingClientRect().width;
height = selection.node().getBoundingClientRect().height;
var ratio = (width - 500) / (800 - 500);
var clampedRatio = Math.max(0, Math.min(1, ratio));
var marginBottom = 80 + 48 * clampedRatio;
var marginLeft = 48 + 24 * clampedRatio;
var margin = {
top: 22,
right: 10,
bottom: marginBottom,
left: marginLeft
};
chartWidth = width - margin.left - margin.right;
chartHeight = height - margin.top - margin.bottom;
if (!svg) {
svg = selection.append("svg")
.style("vertical-align", "bottom"); // <-- Makes all the difference
var g = svg.append("g");
g.append("g")
.attr("class", "axis axis--x");
g.append("g")
.attr("class", "axis axis--y");
svg.append("text")
.attr("class", "label")
.attr("transform", "rotate(-90)")
.attr("dy", "0.71em")
.attr("text-anchor", "middle")
.text("Total Amount (£)");
}
svg.attr("height", "100%")
.attr("width", width);
svg.select("g")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")");
svg.select(".title")
.attr("x", width - margin.right);
svg.select(".label")
.attr("x", -chartHeight / 2)
.attr("y", 8);
d3.select("#year")
.style("right", margin.right + "px")
.style("top", (12 + 13.4) + "px");
d3.select("#quantity")
.style("right", margin.right + "px")
.style("top", (margin.top + 50) + "px");
x = d3.scaleBand().range([0, chartWidth]).padding(0.1);
y = d3.scaleLinear().rangeRound([chartHeight, 0]);
x.domain(data.map(function (d) { return d.key; }));
y.domain([0, d3.max(data, function (d) { return d.value; })]).nice();
var t = d3.transition()
.duration(duration);
var xAxis = svg.select(".axis--x")
.attr("transform", "translate(0," + chartHeight + ")");
xAxis.transition()
.duration(duration)
.call(d3.axisBottom(x))
.selectAll("text")
.attr("y", 0);
xAxis.selectAll("text")
.attr("y", 0)
.attr("x", -5)
.attr("dy", ".35em")
.attr("transform", "rotate(-90)")
.style("text-anchor", "end");
svg.select(".axis--y")
.transition(t)
.delay(duration)
.call(d3.axisLeft(y).tickSize(-width));
var bars = svg.select('g')
.selectAll(".bar")
.data(data, function (d) { return d.key; });
bars
.transition(t)
.attr("x", function (d) { return x(d.key); })
.attr("width", x.bandwidth())
.transition(t)
.attr("y", function (d) { return y(d.value); })
.attr("height", function (d) { return chartHeight - y(d.value); })
.style("fill", function (d) { return "#e6842a"; });
bars.enter()
.append("rect")
.attr("class", "bar")
.attr("x", function (d) { return x(d.key); })
.attr("y", function (d) { return y(0); })
.attr("width", x.bandwidth())
.style("fill", function (d) { return "#e6842a"; })
.transition(t)
.delay(duration)
.attr("y", function (d) { return y(d.value); })
.attr("height", function (d) { return chartHeight - y(d.value); });
bars.exit()
.attr("opacity", 1)
.transition(t)
.attr("y", function (d) { return y(0); })
.attr("height", function (d) { return 0; })
.attr("opacity", 0)
.remove();
});
}
return chart;
}
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment