Plik:Delegate count for the 2016 Republican Party presidential primaries.svg

Rozmiar pierwotny(Plik SVG, nominalnie 720 × 450 pikseli, rozmiar pliku: 109 KB)

Opis

Opis
English: Delegate count for the 2016 Republican Party presidential primaries. Graph may not reflect the latest developments. Graph generated with an R script.
Data
Źródło Praca własna
Autor Abjiklam

Licencja

Ja, właściciel praw autorskich do tego dzieła, udostępniam je na poniższej licencji
w:pl:Licencje Creative Commons
uznanie autorstwa na tych samych warunkach
Wolno:
  • dzielić się – kopiować, rozpowszechniać, odtwarzać i wykonywać utwór
  • modyfikować – tworzyć utwory zależne
Na następujących warunkach:
  • uznanie autorstwa – musisz określić autorstwo utworu, podać link do licencji, a także wskazać czy utwór został zmieniony. Możesz to zrobić w każdy rozsądny sposób, o ile nie będzie to sugerować, że licencjodawca popiera Ciebie lub Twoje użycie utworu.
  • na tych samych warunkach – Jeśli zmienia się lub przekształca niniejszy utwór, lub tworzy inny na jego podstawie, można rozpowszechniać powstały w ten sposób nowy utwór tylko na podstawie tej samej lub podobnej licencji.

Code

The graph is generated by the following R script:

library(RCurl)
library(reshape)
library(htmltab)
library(ggplot2)
library(stringr)
library(scales) # needed if your code breaks at date_format function
Sys.setlocale("LC_TIME", "English") # results are in en_US format, you may need to specifically tell R to treat them that way

#get the table from the url
theurl <- getURL("https://en.wikipedia.org/wiki/Results_of_the_Republican_Party_presidential_primaries,_2016", ssl.verifyPeer=FALSE)
table <- htmltab(theurl, which=7)

#keep only the useful columns and name them
df <- table[3:61, 1:ncol(table)-1]
names(df)[1:2] <- c("Date", "State")

#extract delegate count
for (i in 3:ncol(df)) {
  df[[i]] = str_extract_all(df[[i]], "[0-9,]+ delegate")
  df[[i]] = as.numeric(str_extract(df[[i]], "[0-9,]+"))
}

#sum up minor candidates
df[[7]] = rowSums(df[,7:14], na.rm=TRUE)
names(df)[7] = "Others"
df = df[,1:7]

#extract state names
df[[2]] = str_replace(df[[2]], "Binding[A-Za-z ]+", "")
df[[2]] = str_replace(df[[2]], "Territorial[A-Za-z ]+", "")
df[[2]] = str_replace(df[[2]], "State[A-Za-z ]+", "")
df[[2]] = str_replace(df[[2]], "District Co[A-Za-z ]+", "")
df[[2]] = str_replace(df[[2]], "District an[A-Za-z ]+", "")
df[[2]] = str_replace(df[[2]], "Conv[A-Za-z ]+", "")

#replace NA with 0
df[is.na(df)] = 0

#extract date or last day in date range
df$Date = sub("[0-9]+\\s*–\\s*([0-9]+)", "\\1", df$Date)
df$Date = sub("[0-9]+,\\s*([0-9]+)", "\\1", df$Date)
df$Date = as.Date(df$Date, format="%b %d")

#remove contests that haven't happened
df = df[rowSums(df[,3:7], na.rm=TRUE)!=0,]

#new dataframes for unique dates and cumulative count
df2 = data.frame(Date=unique(df$Date))
df3 = df2
for (i in 3:7) {
  df2[[names(df)[i]]] = rep(NA, length(df2$Date))
  df3[[names(df)[i]]] = rep(NA, length(df2$Date))
  for (j in 1:length(df2$Date)) {
    df2[[names(df)[i]]][j] = sum(subset(df, Date==df2$Date[j])[[names(df)[i]]])
    df3[[names(df)[i]]][j] = sum(df2[[names(df)[i]]][1:j])
  }
}

#reshape data so that candidate becomes a variable
mdata <- melt(df2, id=c("Date"))
mdata2 <- melt(df3, id=c("Date"))
names(mdata) <- c("Date", "Candidate", "Delegates")
mdata[["Cumulative"]] <- mdata2[, 3]

results = mdata

#nomination threshold
nomination <- data.frame(yintercept=1237, nomination=factor(1237))

#colors
colors <- c("#283681", "#29AB87", "#DAA520", "#C60E3B", "#000000")
labels = c("Trump", "Kasich", "Cruz", "Rubio", "Other")

#generate plot
d <- ggplot(results, aes(x=Date, y=Cumulative, group=Candidate, colour=Candidate)) + 
  geom_hline(aes(yintercept=yintercept, linetype=nomination), data=nomination, show.legend=TRUE) + 
  geom_path(size=1) +
  scale_color_manual(values=colors) + 
  scale_y_continuous(breaks=seq(0, 2000, 100), minor_breaks=seq(0, 2000, 50)) + 
  scale_x_date(limits=c(as.Date("2016/2/1"), as.Date("2016/7/21")),
               breaks=sort(c(seq(as.Date("2016/2/1"), as.Date("2016/7/21"), "month"),
                             seq(as.Date("2016/2/15"), as.Date("2016/7/14"), "month"),
                             as.Date("2016/7/21"))),
               labels=date_format("%b %d")) + 
  scale_linetype_manual(values=c("dashed")) + 
  labs(x="Date", y="Delegates", title="Delegate count", linetype="Nomination") + 
  theme(plot.background = element_rect(fill="transparent",colour = NA)) + 
  theme(legend.background = element_rect(fill="transparent",colour = NA))

#display plot
svg(filename="count.svg", 
    width=8, 
    height=5, 
    pointsize=12,
    bg="transparent")
d
dev.off()

Podpisy

Dodaj jednolinijkowe objaśnienie tego, co ten plik pokazuje

Obiekty przedstawione na tym zdjęciu

przedstawia

Historia pliku

Kliknij na datę/czas, aby zobaczyć, jak plik wyglądał w tym czasie.

Data i czasMiniaturaWymiaryUżytkownikOpis
aktualny12:43, 8 cze 2016Miniatura wersji z 12:43, 8 cze 2016720 × 450 (109 KB)Χupdate
03:46, 27 maj 2016Miniatura wersji z 03:46, 27 maj 2016720 × 450 (158 KB)ByteflushUpdated (Washington primary)
17:17, 22 maj 2016Miniatura wersji z 17:17, 22 maj 2016720 × 450 (156 KB)Χminor
17:16, 22 maj 2016Miniatura wersji z 17:16, 22 maj 2016720 × 450 (157 KB)Χupdate
15:34, 6 kwi 2016Miniatura wersji z 15:34, 6 kwi 2016484 × 333 (114 KB)Χupdate
18:45, 4 kwi 2016Miniatura wersji z 18:45, 4 kwi 2016484 × 333 (109 KB)Χbetter
18:18, 4 kwi 2016Miniatura wersji z 18:18, 4 kwi 2016484 × 333 (109 KB)ΧUser created page with UploadWizard

Żadna strona nie korzysta z tego pliku.

Globalne wykorzystanie pliku

Ten plik jest wykorzystywany także w innych projektach wiki:

Metadane