Skip to content

Instantly share code, notes, and snippets.

@johnlovesdata
Forked from hrbrmstr/orig.png
Created March 16, 2016 20:52
Show Gist options
  • Select an option

  • Save johnlovesdata/09e9a2679bc90640e244 to your computer and use it in GitHub Desktop.

Select an option

Save johnlovesdata/09e9a2679bc90640e244 to your computer and use it in GitHub Desktop.

Revisions

  1. @hrbrmstr hrbrmstr revised this gist Mar 16, 2016. No changes.
  2. @hrbrmstr hrbrmstr revised this gist Mar 16, 2016. 1 changed file with 0 additions and 1 deletion.
    1 change: 0 additions & 1 deletion supreme.r
    Original file line number Diff line number Diff line change
    @@ -2,7 +2,6 @@ library(ggplot2)

    dat <- read.csv("supreme_court_vacancies.csv",
    col.names=c("year", "wait"))
    dat[] <- lapply(dat, as.integer)

    # We only want every other tick labeled
    xlabs <- seq(1780, 2020, by=10)
  3. @hrbrmstr hrbrmstr revised this gist Mar 16, 2016. No changes.
  4. @hrbrmstr hrbrmstr revised this gist Mar 16, 2016. 1 changed file with 0 additions and 0 deletions.
    Binary file added orig.png
    Loading
    Sorry, something went wrong. Reload?
    Sorry, we cannot display this file.
    Sorry, this file is invalid so it cannot be displayed.
  5. @hrbrmstr hrbrmstr revised this gist Mar 16, 2016. 1 changed file with 0 additions and 0 deletions.
    Binary file added plot.png
    Loading
    Sorry, something went wrong. Reload?
    Sorry, we cannot display this file.
    Sorry, this file is invalid so it cannot be displayed.
  6. @hrbrmstr hrbrmstr created this gist Mar 16, 2016.
    58 changes: 58 additions & 0 deletions supreme.r
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,58 @@
    library(ggplot2)

    dat <- read.csv("supreme_court_vacancies.csv",
    col.names=c("year", "wait"))
    dat[] <- lapply(dat, as.integer)

    # We only want every other tick labeled
    xlabs <- seq(1780, 2020, by=10)
    xlabs[seq(2, 24, by=2)] <- " "

    # Pretty long caption
    caption <- "Note: Vacancies are counted as the number of days between a justice's death, retirement or resignation and the successor justice's swearing in (or commissioning in the case of a recess appointment) as a member of the court.Sources: U.S. Senate, 'Supreme Court Nominations, present-1789'; Supreme Court, 'Members of the Supreme Court of the United States'; Pew Research Center calculations"
    caption <- paste0(strwrap(caption, 160), sep="", collapse="\n")

    annot <- read.table(text=
    "year|wait|just|text
    1848|860|0|Robert Cooper Grier was sworn in Aug 10, 1846,<br>841 days after the death of Henry Baldwin
    1969|440|1|Henry Blackmun was sworn<br>in June 9, 1970, 391 days<br>after Abe Fortas resigned.
    1990|290|0|Anthony Kennedy<br>was sworn in Feb.<br>18, 1988, 237<br>days after Lewis<br>Powell retired.",
    sep="|", header=TRUE, stringsAsFactors=FALSE)
    annot$text <- gsub("<br>", "\n", annot$text)

    gg <- ggplot()
    gg <- gg + geom_point(data=dat, aes(x=year, y=wait))
    gg <- gg + geom_label(aes(x=1780, y=900, label="days"),
    family="OpenSans-CondensedLight",
    size=3.5, hjust=0, label.size=0, color="#2b2b2b")
    gg <- gg + geom_label(data=annot, aes(x=year, y=wait, label=text, hjust=just),
    family="OpenSans-CondensedLight", lineheight=0.95,
    size=3, label.size=0, color="#2b2b2b")
    gg <- gg + scale_x_continuous(expand=c(0,0),
    breaks=seq(1780, 2020, by=10),
    labels=xlabs, limits=c(1780,2020))
    gg <- gg + scale_y_continuous(expand=c(0,10),
    breaks=seq(100, 900, by=100),
    limits=c(0, 1000))
    gg <- gg + labs(x=NULL, y=NULL,
    title="Lengthy Supreme Court vacancies are rare now, but weren't always",
    subtitle="Supreme Court vacancies, by duration",
    caption=caption)
    gg <- gg + theme_minimal(base_family="OpenSans-CondensedLight")
    gg <- gg + theme(panel.grid=element_line())
    gg <- gg + theme(panel.grid.major.y=element_line(color="#2b2b2b", linetype="dotted", size=0.15))
    gg <- gg + theme(panel.grid.major.x=element_blank())
    gg <- gg + theme(panel.grid.minor.x=element_blank())
    gg <- gg + theme(panel.grid.minor.y=element_blank())
    gg <- gg + theme(axis.line=element_line())
    gg <- gg + theme(axis.line.x=element_line(color="#2b2b2b", size=0.15))
    gg <- gg + theme(axis.ticks=element_line())
    gg <- gg + theme(axis.ticks.x=element_line(color="#2b2b2b", size=0.15))
    gg <- gg + theme(axis.ticks.y=element_blank())
    gg <- gg + theme(axis.ticks.length=unit(5, "pt"))
    gg <- gg + theme(plot.margin=unit(rep(0.5, 4), "cm"))
    gg <- gg + theme(axis.text.y=element_text(margin=margin(r=-5)))
    gg <- gg + theme(plot.title=element_text(family="OpenSans-CondensedBold", margin=margin(b=15)))
    gg <- gg + theme(plot.subtitle=element_text(family="OpenSans-CondensedLightItalic"))
    gg <- gg + theme(plot.caption=element_text(size=8, hjust=0, margin=margin(t=15)))
    gg
    104 changes: 104 additions & 0 deletions supreme_court_vacancies.csv
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,104 @@
    "year","wait"
    1845,841
    1792,152
    1793,43
    1795,103
    1795,70
    1795,4
    1799,37
    1800,141
    1801,180
    1803,98
    1806,62
    1811,504
    1811,154
    1823,166
    1825,133
    1829,55
    1830,500
    1835,264
    1835,164
    1836,483
    1842,314
    1845,440
    1845,6
    1851,17
    1852,260
    1857,111
    1862,780
    1862,584
    1862,293
    1864,66
    1869,43
    1872,43
    1873,301
    1878,275
    1880,111
    1880,19
    1882,162
    1882,66
    1887,244
    1887,191
    1890,293
    1891,76
    1892,39
    1892,266
    1894,244
    1896,152
    1897,57
    1902,6
    1903,84
    1906,207
    1909,199
    1909,72
    1910,166
    1910,45
    1910,17
    1911,154
    1914,92
    1916,156
    1916,121
    1920,55
    1922,53
    1922,10
    1924,53
    1929,14
    1930,80
    1931,62
    1936,76
    1938,58
    1938,10
    1939,207
    1939,76
    1941,158
    1941,0
    1942,137
    1942,14
    1944,58
    1946,64
    1948,35
    1953,25
    1955,170
    1956,0
    1956,23
    1958,0
    1962,37
    1962,21
    1964,68
    1968,0
    1968,111
    1970,391
    1972,115
    1972,103
    1976,41
    1981,82
    1986,2
    1987,237
    1990,19
    1990,82
    1992,43
    1994,0
    2005,0
    2005,25
    2009,41
    2010,41