Original file (SVG file, nominally 512 × 282 pixels, file size: 28 KB)
This is a file from the
Wikimedia Commons. Information from its
description page there is shown below. Commons is a freely licensed media file repository. You can help. |
DescriptionHeeleyGraph.svg |
English: United Kingdom general election results for
Sheffield Heeley constituency from 1950 to present. |
Date | |
Source | Own work |
Author | JeremyA |
The Background colour indicates the party of the sitting MP at any given year.
Graph drawn with R
Parties:
Data:
Year | Conservative | Labour | Liberal | UKIP | Other |
---|---|---|---|---|---|
1950.148 | 56.3 | 37.8 | 5.9 | NA | NA |
1951.82 | 61 | 39 | NA | NA | NA |
1955.4 | 60.9 | 39.1 | NA | NA | NA |
1959.77 | 59 | 41 | NA | NA | NA |
1964.79 | 51.5 | 48.5 | NA | NA | NA |
1966.25 | 46 | 54 | NA | NA | NA |
1970.46 | 47 | 45.9 | 7.1 | NA | NA |
1974.16 | 35.3 | 47.7 | 17 | NA | NA |
1974.78 | 32 | 51.6 | 14.9 | NA | 1.5 |
1979.34 | 40.1 | 49.8 | 9.5 | NA | 0.6 |
1983.44 | 29.9 | 45.8 | NA | NA | 24.3 |
1987.44 | 26.3 | 53.4 | NA | NA | 20.3 |
1992.27 | 25.9 | 55.7 | 18.4 | NA | NA |
1997.33 | 15.6 | 60.7 | 21.3 | NA | 2.4 |
2001.43 | 14.2 | 57 | 22.7 | 1.9 | 4.3 |
2005.34 | 14.63 | 53.98 | 20.63 | 2.27 | 8.48 |
2010.35 | 17.3 | 42.6 | 28.4 | 3.7 | 7.9 |
2015.35 | 16.2 | 48.2 | 11.3 | 17.4 | 7 |
2017.44 | 28.7 | 60 | 4.7 | 4.5 | 2.1 |
Code:
The graph was produced with R. The following code will reproduce the graph using the data on this page.
library(tidyverse)
library(htmltab)
library(lubridate)
election_graph <- function(pageURL) {
election <- htmltab(pageURL,
which = 2,
rm_nodata_cols = F)
election <- as.tibble(lapply(election, function(x) {gsub("unopp", "100", x)}))
tidy_election <- gather(election, "Party", "Votes", 2:length(election))
tidy_election$Year <- as.numeric(tidy_election$Year)
tidy_election$Party <- factor(tidy_election$Party, levels = c("Conservative", "Labour", "Liberal", "Green", "SNP", "UKIP", "Other"))
tidy_election$Votes <- as.numeric(tidy_election$Votes)
election_victor <- tidy_election %>% filter(is.na(Votes) == FALSE) %>% group_by(Year) %>% summarize(Party = Party[which(Votes == max(Votes))])
election_victor$Year <- as.numeric(election_victor$Year)
election_victor$start_year <- election_victor$Year
election_victor$end_year <- c(election_victor$Year[-1], ceiling(election_victor$Year[length(election_victor$Year)] + 1))
election_victor[1,3] <- floor(election_victor[1,3] - 1)
tidy_election$Votes <- as.numeric(sapply(tidy_election$Votes, function(x) {gsub(100, NA, x)}))
party_colours <- c("#0087DC", "#DC241F", "#FAA61A", "#008066", "#FFF95D", "#EFE600", "dark grey")
names(party_colours) <- c("Conservative", "Labour", "Liberal", "Green", "SNP", "UKIP", "Other")
ggplot(tidy_election) +
geom_rect(data = election_victor,
aes(xmin = start_year,xmax = end_year, ymin = -Inf, ymax = Inf, fill = Party),
alpha = 0.35,
show.legend = F) +
geom_line(aes(x = Year, y = Votes, colour = Party), size = 0.703) +
geom_point(aes(x = Year, y = Votes, colour = Party)) +
geom_hline(yintercept = 100, color="black", size = 1.5) +
geom_vline(xintercept = 2019, color="black", size = 1.5) +
scale_colour_manual(values = party_colours) +
scale_fill_manual(values = party_colours) +
theme(text = element_text(color="black", size = 14),
axis.text = element_text(color="black", size = 11),
axis.line.x = element_line(color="black", size = 0.703),
axis.ticks.x = element_line(color="black", size = 0.703),
axis.line.y = element_line(color="black", size = 0.703),
axis.ticks.y = element_line(color="black", size = 0.703),
axis.ticks.length = unit(5, "points"),
panel.grid.major = element_line(color="blue", size = 0.5, linetype = 3),
panel.grid.minor = element_blank(),
panel.background = element_blank(),
legend.position = c(.98, .97),
legend.direction = "horizontal",
legend.text = element_text(color="black", size = 11),
legend.title=element_blank(),
legend.justification = c("right", "top"),
legend.box.just = "right",
legend.key = element_blank(),
legend.background = element_rect(fill = "white", colour = "black"),
legend.margin = margin(0, 4, 4, 4)) +
scale_x_continuous(expand = c(0, 0), limits = c(election_victor[[1,3]], election_victor$end_year[length(election_victor$end_year)]), breaks = seq(1890, 2010, 10)) +
scale_y_continuous(expand = c(0, 0), limits = c(0, 100), breaks = seq(0, 100, 20)) +
labs(x = "Year", y = "Percentage Vote")
}
election_graph("https://commons.wikimedia.org/wiki/File:HeeleyGraph.svg")
ggsave("HeeleyGraph.svg", device = "svg", units = "cm", width = 20, height = 11, dpi = 120)
Click on a date/time to view the file as it appeared at that time.
Date/Time | Thumbnail | Dimensions | User | Comment | |
---|---|---|---|---|---|
current | 15:39, 16 June 2017 | 512 × 282 (28 KB) | JeremyA | User created page with UploadWizard |
This file contains additional information, probably added from the digital camera or scanner used to create or digitize it.
If the file has been modified from its original state, some details may not fully reflect the modified file.
Width | 100% |
---|---|
Height | 100% |
Original file (SVG file, nominally 512 × 282 pixels, file size: 28 KB)
This is a file from the
Wikimedia Commons. Information from its
description page there is shown below. Commons is a freely licensed media file repository. You can help. |
DescriptionHeeleyGraph.svg |
English: United Kingdom general election results for
Sheffield Heeley constituency from 1950 to present. |
Date | |
Source | Own work |
Author | JeremyA |
The Background colour indicates the party of the sitting MP at any given year.
Graph drawn with R
Parties:
Data:
Year | Conservative | Labour | Liberal | UKIP | Other |
---|---|---|---|---|---|
1950.148 | 56.3 | 37.8 | 5.9 | NA | NA |
1951.82 | 61 | 39 | NA | NA | NA |
1955.4 | 60.9 | 39.1 | NA | NA | NA |
1959.77 | 59 | 41 | NA | NA | NA |
1964.79 | 51.5 | 48.5 | NA | NA | NA |
1966.25 | 46 | 54 | NA | NA | NA |
1970.46 | 47 | 45.9 | 7.1 | NA | NA |
1974.16 | 35.3 | 47.7 | 17 | NA | NA |
1974.78 | 32 | 51.6 | 14.9 | NA | 1.5 |
1979.34 | 40.1 | 49.8 | 9.5 | NA | 0.6 |
1983.44 | 29.9 | 45.8 | NA | NA | 24.3 |
1987.44 | 26.3 | 53.4 | NA | NA | 20.3 |
1992.27 | 25.9 | 55.7 | 18.4 | NA | NA |
1997.33 | 15.6 | 60.7 | 21.3 | NA | 2.4 |
2001.43 | 14.2 | 57 | 22.7 | 1.9 | 4.3 |
2005.34 | 14.63 | 53.98 | 20.63 | 2.27 | 8.48 |
2010.35 | 17.3 | 42.6 | 28.4 | 3.7 | 7.9 |
2015.35 | 16.2 | 48.2 | 11.3 | 17.4 | 7 |
2017.44 | 28.7 | 60 | 4.7 | 4.5 | 2.1 |
Code:
The graph was produced with R. The following code will reproduce the graph using the data on this page.
library(tidyverse)
library(htmltab)
library(lubridate)
election_graph <- function(pageURL) {
election <- htmltab(pageURL,
which = 2,
rm_nodata_cols = F)
election <- as.tibble(lapply(election, function(x) {gsub("unopp", "100", x)}))
tidy_election <- gather(election, "Party", "Votes", 2:length(election))
tidy_election$Year <- as.numeric(tidy_election$Year)
tidy_election$Party <- factor(tidy_election$Party, levels = c("Conservative", "Labour", "Liberal", "Green", "SNP", "UKIP", "Other"))
tidy_election$Votes <- as.numeric(tidy_election$Votes)
election_victor <- tidy_election %>% filter(is.na(Votes) == FALSE) %>% group_by(Year) %>% summarize(Party = Party[which(Votes == max(Votes))])
election_victor$Year <- as.numeric(election_victor$Year)
election_victor$start_year <- election_victor$Year
election_victor$end_year <- c(election_victor$Year[-1], ceiling(election_victor$Year[length(election_victor$Year)] + 1))
election_victor[1,3] <- floor(election_victor[1,3] - 1)
tidy_election$Votes <- as.numeric(sapply(tidy_election$Votes, function(x) {gsub(100, NA, x)}))
party_colours <- c("#0087DC", "#DC241F", "#FAA61A", "#008066", "#FFF95D", "#EFE600", "dark grey")
names(party_colours) <- c("Conservative", "Labour", "Liberal", "Green", "SNP", "UKIP", "Other")
ggplot(tidy_election) +
geom_rect(data = election_victor,
aes(xmin = start_year,xmax = end_year, ymin = -Inf, ymax = Inf, fill = Party),
alpha = 0.35,
show.legend = F) +
geom_line(aes(x = Year, y = Votes, colour = Party), size = 0.703) +
geom_point(aes(x = Year, y = Votes, colour = Party)) +
geom_hline(yintercept = 100, color="black", size = 1.5) +
geom_vline(xintercept = 2019, color="black", size = 1.5) +
scale_colour_manual(values = party_colours) +
scale_fill_manual(values = party_colours) +
theme(text = element_text(color="black", size = 14),
axis.text = element_text(color="black", size = 11),
axis.line.x = element_line(color="black", size = 0.703),
axis.ticks.x = element_line(color="black", size = 0.703),
axis.line.y = element_line(color="black", size = 0.703),
axis.ticks.y = element_line(color="black", size = 0.703),
axis.ticks.length = unit(5, "points"),
panel.grid.major = element_line(color="blue", size = 0.5, linetype = 3),
panel.grid.minor = element_blank(),
panel.background = element_blank(),
legend.position = c(.98, .97),
legend.direction = "horizontal",
legend.text = element_text(color="black", size = 11),
legend.title=element_blank(),
legend.justification = c("right", "top"),
legend.box.just = "right",
legend.key = element_blank(),
legend.background = element_rect(fill = "white", colour = "black"),
legend.margin = margin(0, 4, 4, 4)) +
scale_x_continuous(expand = c(0, 0), limits = c(election_victor[[1,3]], election_victor$end_year[length(election_victor$end_year)]), breaks = seq(1890, 2010, 10)) +
scale_y_continuous(expand = c(0, 0), limits = c(0, 100), breaks = seq(0, 100, 20)) +
labs(x = "Year", y = "Percentage Vote")
}
election_graph("https://commons.wikimedia.org/wiki/File:HeeleyGraph.svg")
ggsave("HeeleyGraph.svg", device = "svg", units = "cm", width = 20, height = 11, dpi = 120)
Click on a date/time to view the file as it appeared at that time.
Date/Time | Thumbnail | Dimensions | User | Comment | |
---|---|---|---|---|---|
current | 15:39, 16 June 2017 | 512 × 282 (28 KB) | JeremyA | User created page with UploadWizard |
This file contains additional information, probably added from the digital camera or scanner used to create or digitize it.
If the file has been modified from its original state, some details may not fully reflect the modified file.
Width | 100% |
---|---|
Height | 100% |