Fil:Nationwide polls for the 2016 Democratic Party presidential primaries.svg

Page contents not supported in other languages.
Fra Wikipedia, den frie encyklopædi

Fuld opløsning(SVG fil, basisstørrelse 810 × 450 pixels, filstørrelse: 232 KB)


Denne fil er fra Wikimedia Commons

Beskrivelse

Beskrivelse
English: A combination of nationwide opinion polls during the 2016 Democratic Party presidential primaries. The trend lines are Local Regressions with α = 0.8 and 95% confidence interval ribbons. The point sizes and trend lines are weighted according to the margin of error of each poll.
Dato
Kilde Eget arbejde
Forfatter Abjiklam

Licensering

Jeg, dette værks ophavsretsindehaver, publicerer hermed værket under den følgende licens:
w:da:Creative Commons
kreditering deling på samme vilkår
This file is licensed under the Creative Commons Attribution-Share Alike 4.0 International license.
Du må frit:
  • at dele – at kopiere, distribuere og overføre værket
  • at remixe – at tilpasse værket
Under følgende vilkår:
  • kreditering – Du skal give passende kreditering, angive et link til licensen, og oplyse om der er foretaget ændringer. Du må gøre det på enhver fornuftig måde, men ikke på en måde der antyder at licensgiveren godkender dig eller din anvendelse.
  • deling på samme vilkår – Hvis du bearbejder, ændrer eller bygger videre på dette værk, skal du distribuere dine bidrag under den samme eller en kompatibel licens som originalen.

Code

The graph is generated by the following R script, largely inspired by this file.

library(RCurl)
library(reshape)
library(htmltab)
library(ggplot2)
library(stringr)
library(scales)

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

table = table[,1:6]
table2 = table2[,c(1:5,7)]

names(table) <- c("Source", "Size", "Error", "Date", "Clinton", "Sanders")
names(table2) <- names(table)

df = rbind(table, table2)

for (i in c(3, 5:7)) {
  df[[i]] = as.numeric(sub("%", "", df[[i]]))/100
}

df$Date = sub("[0-9]+\\s*–\\s*([0-9]+)", "\\1", df$Date)
df$Date = sub(".*–", "", df$Date)
df$Date = sub("[0-9]+\\s*-\\s*([0-9]+)", "\\1", df$Date)
df$Date = sub(".*-", "", df$Date)
df$Date = trimws(df$Date)
df$Date = as.Date(df$Date, format="%B %d, %Y")

df$Size = as.numeric(sub(",", "", df$Size))

df$Error = 1/sqrt(df$Size)
mdata <- melt(df, id=c("Date", "Source", "Error", "Size"))

names(mdata)[5:6] = c("Candidate", "Support")

colors = c("#D4AA00", "#228b22")
labels = c("Clinton", "Sanders")

results = mdata

#breaks() returns n evenly spaced numbers between x and y
#whose squares are divisible by p
#the function is used for the legend
breaks <- function(x, y, n, p) {
  x = sqrt(ceiling(as.integer(x^2) / p) * p)
  y = sqrt(floor(as.integer(y^2) / p) * p)
  s = seq(x, y, length.out=n)
  for (i in 2:(n-1)) {
    s[i] = sqrt(round(s[i]^2 / p) * p)
  }
  return(unique(s))
}

d = ggplot(results, aes(x=Date, y=Support, colour=Candidate, size=1/Error, weight=1/Error)) +
  geom_point(alpha=0.7) + 
  geom_smooth(span=0.8, show.legend=F) + 
  scale_colour_manual(values = colors) + 
  labs(title="Nationwide opinion polling for the 2016 Democratic Party primaries") + 
  scale_size_area(max_size=3,
                  breaks=function(x) breaks(x[1], x[2], 5, 100), #5 numbers divisible by 100
                  labels=function(x) comma_format()(x^2),
                  name="Sample Size") + 
  scale_y_continuous(breaks=seq(0,1,0.1), minor_breaks=seq(0,1,0.02),
                     labels=percent, limits=c(0.2,0.7)) + 
  scale_x_date(labels=date_format("%b %d"),
               breaks=sort(c(seq(as.Date("2016/1/1"), as.Date("2016/7/28"), "month"),
                             seq(as.Date("2016/1/15"), as.Date("2016/7/28"), "month"),
                             as.Date("2016/7/28"))),
               limits=c(as.Date("2016/1/1"), as.Date("2016/7/28"))) +
  theme(panel.grid.minor=element_line(size=0.2),
        panel.grid.major=element_line(size=0.6))

#save plot as "dp.svg"
svg(filename="dp.svg", 
    width=9, 
    height=5, 
    pointsize=12,
    bg="transparent")
d
dev.off()

Captions

Tilføj en kort forklaring på en enkelt linje om hvad filen viser

Elementer som er med i denne fil

afbilder

Filhistorik

Klik på en dato/tid for at se filen som den så ud på det tidspunkt.

(Nyeste | Ældste) Se (10 nyere | ) (10 | 20 | 50 | 100 | 250 | 500)
Dato/tidMiniaturebilledeDimensionerBrugerKommentar
nuværende29. jun. 2016, 18:32Miniature af versionen fra 29. jun. 2016, 18:32810 × 450 (232 KB)Χupdate
8. jun. 2016, 16:10Miniature af versionen fra 8. jun. 2016, 16:10810 × 450 (228 KB)Χupdate
6. jun. 2016, 13:57Miniature af versionen fra 6. jun. 2016, 13:57810 × 360 (226 KB)Χupdate
31. maj 2016, 05:41Miniature af versionen fra 31. maj 2016, 05:41810 × 360 (223 KB)Χbetter sample size legend
30. maj 2016, 06:33Miniature af versionen fra 30. maj 2016, 06:33810 × 360 (220 KB)Χkept only major candidates (as was done for the republican graph)
29. maj 2016, 17:50Miniature af versionen fra 29. maj 2016, 17:50810 × 360 (238 KB)Χupdate
22. maj 2016, 16:42Miniature af versionen fra 22. maj 2016, 16:42810 × 360 (233 KB)Χupdate
17. maj 2016, 00:24Miniature af versionen fra 17. maj 2016, 00:24810 × 360 (231 KB)Χupdate
8. maj 2016, 19:42Miniature af versionen fra 8. maj 2016, 19:42810 × 360 (229 KB)Χupdate
2. maj 2016, 14:36Miniature af versionen fra 2. maj 2016, 14:36810 × 360 (225 KB)Χupdate
(Nyeste | Ældste) Se (10 nyere | ) (10 | 20 | 50 | 100 | 250 | 500)

De følgende 2 sider bruger denne fil:

Global filanvendelse

Metadata