This conference paper is indebted to the work of Prof. Brian M. Walker in compiliing all the electoral results for the Westminster elections during the Act of Union period, 1801 - 1922. These election results were published in two volumes; Parliamentary Elections, 1801 - 1922 (1978) and Parliamentary Elections, 1922 - 1989 (1992).
To begin the underlying constituency map for Westminster elections from 1885 - 1910 was created by Martin Charlton of the National Centre for Geocomputation, Maynooth University. Martin created the map utilised the baronies.shp and eds.shp files released by the Ordnance Survey of Ireland. The constituency boundary lines were created from Whyte’s map (reproduced in Walker’s 1978 volume) and by examining the Representation of People Act, 1885 which created the new boundaries in 1885. This is expanded in greater detail methodologically by Martin Charlton in this pdf doc.
The data shown in these maps was collated by Neale Rooney and Jack Kavanagh from Brian Walker’s volumes and was collated into a series of csv files. These files were then ‘joined’ to the map using the program QGIS, there is good tutorial adding csv files to ESRI shapefiles here. In total 8 different maps were created, representing the 8 elections that occurred between 1885 and 1910. The 1918 election utilises a different constituency map that due to time constraints we were unable to create. In addition a map without any numeric data was added called map_orig which is there for anyone to use for future analysis.
The csv files listing all the election returns and the shapefiles (maps) are available from a download link here. Once that has downloaded place the files into your working directory. You can set your working directory in RStudio via the Session tab. Be aware when importing the shapefiles that occasionally the numeric totals will import as factors. Using the readOGR function from the package ‘rgdal’ and specifying stringsAsFactors = FALSE should fix that issue.
For new users of R, I have created a separate RData file called, ConfMaps.RData within the Dropbox folder. Place this file within the working directory and type load(‘ConfMaps.RData’) into the console, this will import the entire file with the maps already imported into the R environment.
The maps for this paper utilised the following packages which must be installed, ‘tmap’, ‘tmaptools’ and ‘dplyr’.
load('ConfMaps.RData')
library(tmap)
library(tmaptools)
library(dplyr)
## To begin here is the map of Irish constituencies
# First import the map without any electoral data.
read_shape('map_orig/map_orig.shp') -> master_map
# Use the qtm function of 'tmap'
qtm(master_map, fill = "darkgrey", text = "C1885", title = "Map of Southern Irish Constituencies 1885 - 1910", text.size = "AREA", scale = 0.5) + tm_scale_bar()
Each map is named for the election i.e. con85 for the election of 1885, con86 for the election of 1886 and so forth. con1910_1 and con1910_2 are listed as such for the two elections held in January and December 1910 respectively. The smaller maps focusing upon Dublin City and County follow the same naming convention as shown above.
## The following code will display all the information contained with the map
con85@data
## OBJECTID C1885 Shape_Leng Shape_Area UNION85 NAT85
## 0 1 Birr 242572.821 1082699772.4 760 3408
## 1 2 Carlow 219821.038 896120432.1 751 4801
## 2 3 College Green 9043.524 3561735.3 NA NA
## 3 4 Connemara 1170387.314 2082452059.2 NA NA
## 4 5 Cork City 84559.364 184449501.8 1464 6716
## 5 6 Dublin Harbour 16620.841 5698524.8 NA NA
## 6 7 East Cavan 195783.345 639831060.9 NA NA
## 7 8 East Cavan+ 131571.816 244991120.0 NA NA
## 8 9 East Clare 340262.388 1838645567.7 289 6224
## 9 10 East Cork 188826.347 670371073.8 NA NA
## 10 11 East Donegal 234429.171 1041027451.2 NA NA
## 11 12 East Galway 283725.760 1449940000.3 NA NA
## 12 13 East Kerry 231906.704 1247618306.3 30 3169
## 13 14 East Limerick 331605.560 1211043881.2 NA NA
## 14 15 East Mayo 199971.776 633462562.9 NA NA
## 15 16 East Tipperary 202302.169 877738210.7 192 4064
## 16 17 East Waterford 252611.655 925520715.0 314 3291
## 17 18 East Wicklow 197924.246 693461073.3 1000 3385
## 18 19 Galway City 81338.558 99055399.0 164 1335
## 19 20 Kilkenny City 37584.038 43989092.8 NA NA
## 20 21 Leix 190475.558 756106365.3 507 3750
## 21 22 Limerick City 74880.314 149834238.9 635 3098
## 22 23 Mid Cork 270201.157 1406510371.0 106 5033
## 23 24 Mid Tipperary 305643.831 1112061556.9 255 3804
## 24 25 North-East Cork 214301.152 1138970556.7 NA NA
## 25 26 North Cork 230840.565 1326540970.4 NA NA
## 26 27 North Donegal 454886.997 1040722179.2 952 4597
## 27 28 North Dublin 313318.265 825470566.9 1425 7560
## 28 29 North Galway 278916.307 1232591564.8 NA NA
## 29 30 North Kerry 204946.947 902027346.0 NA NA
## 30 31 North Kildare 187719.058 829690477.1 467 3168
## 31 32 North Kilkenny 269842.179 1052692426.8 174 4084
## 32 33 North Leitrim 249890.697 988959847.8 541 4686
## 33 34 North Longford 141204.092 483507041.6 163 2549
## 34 35 North Louth 171767.672 401730711.8 NA NA
## 35 36 North Mayo 797898.867 2130756517.4 NA NA
## 36 37 North Meath 255463.708 1017088826.0 NA NA
## 37 38 North Monaghan 198280.535 675611188.5 2685 4055
## 38 39 North Roscommon 309816.307 1123744159.9 366 6102
## 39 40 North Sligo 404062.897 845927472.0 772 5216
## 40 41 North Tipperary 232798.074 1366024064.5 252 4789
## 41 42 North Westmeath 193295.985 957958556.7 NA NA
## 42 43 North Wexford 236103.824 1429391556.0 917 6531
## 43 44 North/South Dublin 3022.665 367749.6 NA NA
## 44 45 Ossory 217943.299 964273385.3 293 3959
## 45 46 South-East Cork 356138.305 772544132.0 661 4620
## 46 47 South Cork 299587.664 872512244.9 195 4823
## 47 48 South Donegal 476376.754 1235018627.1 1369 5055
## 48 49 South Dublin 77831.484 83114937.3 3736 5114
## 49 50 South Galway 493323.385 1488810911.0 NA NA
## 50 51 South Kerry 702598.013 1804924701.1 133 2742
## 51 52 South Kildare 240611.826 865230908.3 NA NA
## 52 53 South Kilkenny 203605.791 976011861.9 222 4088
## 53 54 South Leitrim 198398.407 617824111.0 489 4525
## 54 55 South Longford 163071.354 608113154.8 NA NA
## 55 56 South Louth 125911.385 420828824.8 NA NA
## 56 57 South Mayo 261922.047 1080783006.4 75 4953
## 57 58 South Meath 268843.293 1330464576.5 NA NA
## 58 59 South Monaghan 181594.956 619095586.5 963 4735
## 59 60 South Roscommon 314730.933 1409056995.2 338 6033
## 60 61 South Sligo 250795.479 1031218091.6 541 5151
## 61 62 South Tipperary 245873.291 945691178.5 122 3572
## 62 63 South Westmeath 202017.875 878493715.5 200 3618
## 63 64 South Wexford 263729.118 940940388.1 NA NA
## 64 65 St Patricks 8297.544 4182778.5 1162 5330
## 65 66 St Stephens Green 8406.035 3656081.2 3334 5277
## 66 67 Tullamore 222611.721 918190267.5 NA NA
## 67 68 Waterford City 37386.511 41643756.8 276 2420
## 68 69 West Cavan 307203.872 1047230131.4 1779 6425
## 69 70 West Clare 352774.455 1514291223.3 289 6763
## 70 71 West Cork 967673.570 1131734945.7 373 3920
## 71 72 West Donegal 706000.910 1545886847.0 NA NA
## 72 73 West Kerry 494237.051 852602982.6 262 2607
## 73 74 West Limerick 240845.580 1395144786.7 NA NA
## 74 75 West Mayo 822867.296 1599722193.4 131 4790
## 75 76 West Waterford 226776.186 895241998.1 359 3746
## 76 77 West Wicklow 260419.448 1332450248.9 871 3721
## TOTALVOTE8 ELECT85 TURN85
## 0 4168 5236 0.7960275
## 1 5552 6891 0.8056886
## 2 NA NA NA
## 3 NA NA NA
## 4 8180 14569 0.5614661
## 5 NA NA NA
## 6 NA NA NA
## 7 NA NA NA
## 8 6513 10128 0.6430687
## 9 NA NA NA
## 10 NA NA NA
## 11 NA NA NA
## 12 3199 5971 0.5357562
## 13 NA NA NA
## 14 NA NA NA
## 15 4256 6899 0.6169010
## 16 3605 5678 0.6349067
## 17 4385 5569 0.7873945
## 18 1499 2265 0.6618102
## 19 NA NA NA
## 20 4257 5472 0.7779605
## 21 3733 6010 0.6211314
## 22 5139 7409 0.6936159
## 23 4059 6517 0.6228326
## 24 NA NA NA
## 25 NA NA NA
## 26 5549 6932 0.8004905
## 27 8985 12329 0.7287696
## 28 NA NA NA
## 29 NA NA NA
## 30 3635 5108 0.7116288
## 31 4258 5647 0.7540287
## 32 5227 6483 0.8062625
## 33 2712 3714 0.7302100
## 34 NA NA NA
## 35 NA NA NA
## 36 NA NA NA
## 37 6740 7525 0.8956811
## 38 6468 8682 0.7449896
## 39 5988 7869 0.7609607
## 40 5041 7500 0.6721333
## 41 NA NA NA
## 42 7448 9768 0.7624898
## 43 NA NA NA
## 44 4252 5617 0.7569877
## 45 5281 8007 0.6595479
## 46 5018 7299 0.6874914
## 47 6424 7854 0.8179272
## 48 8850 11314 0.7822167
## 49 NA NA NA
## 50 2875 4529 0.6347980
## 51 NA NA NA
## 52 4310 5924 0.7275490
## 53 5014 6270 0.7996810
## 54 NA NA NA
## 55 NA NA NA
## 56 5028 7980 0.6300752
## 57 NA NA NA
## 58 5698 7474 0.7623762
## 59 6371 9351 0.6813175
## 60 5692 7693 0.7398934
## 61 3694 5841 0.6324260
## 62 3818 5419 0.7045580
## 63 NA NA NA
## 64 6492 8952 0.7252011
## 65 8611 10181 0.8457912
## 66 NA NA NA
## 67 2696 3946 0.6832235
## 68 8204 10109 0.8115541
## 69 7052 9813 0.7186385
## 70 4293 6124 0.7010124
## 71 NA NA NA
## 72 2869 5668 0.5061750
## 73 NA NA NA
## 74 4921 8009 0.6144338
## 75 4105 6025 0.6813278
## 76 4592 5226 0.8786835
## As you can see the Unionist, Nationaalist, Total Votes, Electorate and Turnout figures have already been added to the map file. Do not edit this unless you have already used R and are familiar with the environment.
The following code using the tmap package will display a chloroplethr map of unionist votes. This is adapted from Chris Brundson’s introduction to tmap which can be found at the following link.
## This creates two maps of Conservative and Nationalist Votes in the 1885 Westminster Election
tm_shape(con85) + tm_fill(col=c("UNION85","NAT85"), title=c("Conservative Votes in 1885", "Nationalist Votes in 1885"), colorNA = NULL, style = "cont") + tm_borders() + tm_style_col_blind()
## The next step is to examine the turnout for each constituency
tm_shape(con85) + tm_fill(col = "TURN85", colorNA = NULL, n=4, title = "% Turnout in 1885", style = "jenks") + tm_borders() + tm_text("C1885", size = "AREA", scale = 0.5) + tm_style_col_blind()
## There is one flaw from this map that needs to be rectified and that's the Dublin constituencies which are obscured due to the small geographical area. Therefore a small subset of the map needs to be created.
dublin85 <- subset(con85, C1885 %in% c("North/South Dublin", "South Dublin", "North Dublin", "College Green", "St Patricks", "St Stephens Green", "Dublin Harbour"))
## Run this to create a quick thematic map to check every constituency was added.
dublin85 %>% qtm
## In addition to the combined map, a smaller map of just Dublin city would also be useful.
dublincity85 <- subset(dublin85, C1885 %in% c("College Green", "St Patricks", "St Stephens Green", "Dublin Harbour" ))
dublincity85 %>% qtm
## Now we can plot the same values on this smaller map of just Dublin County and Dublin City constituencies.
tm_shape(dublin85) + tm_fill(col = "UNION85", colorNA = "grey", style = "cont", title = "Conservative Votes in Dublin County & City 1885") + tm_borders() + tm_text("C1885", size = "AREA", scale = 1) + tm_style_col_blind()
## Here is the map of just Dublin city
tm_shape(dublincity85) + tm_fill(col = "UNION85", colorNA = "grey", style = "cont", title = "Conservative Votes in Dublin City 1885") + tm_borders() + tm_text("C1885", size = "AREA", scale = 1) + tm_style_col_blind()
## Next map is of the 1886 election, from this election onwards candidates utilise the term 'Unionist' when running.
tm_shape(con86) + tm_fill(col="UNION86", colorNA = NULL, style = "cont", n=3, title = "Unionist Votes in 1886") + tm_borders() + tm_style_col_blind() + tm_text("C1885", size = "AREA", scale = 0.5)
## A smaller subset map of Dublin is needed for county and city constituencies.
dublin86 <- subset(con86, C1885 %in% c("North/South Dublin", "South Dublin", "North Dublin", "College Green", "St Patricks", "St Stephens Green", "Dublin Harbour"))
dublin86 %>% qtm
dublincity86 <- subset(dublin86, C1885 %in% c("College Green", "St Patricks", "St Stephens Green", "Dublin Harbour"))
dublincity86 %>% qtm
## This is map of Unionist & Nationalist Votes in Dublin City 1886
tm_shape(dublincity86) + tm_fill(col = c("UNION86", "NAT86"), title=c("Unionist Votes in Dublin City 1886", "Nationalist Votes in Dublin City 1886"), style = "cont", n=3, colorNA = "darkgrey") + tm_borders() + tm_style_col_blind()
## This is a map of Unionist & Nationalist Votes in Dublin City & County in 1886
tm_shape(dublin86) + tm_fill(col = c("UNION86", "NAT86"), title = c("Unionist Votes", "Nationalist Votes"), style = "cont", n=3, colorNA = "darkgrey") + tm_borders() + tm_style_col_blind()
## Next map is of the 1892 election, showing Unionist, Anti-Parnellite and Parnellite Votes.
tm_shape(con92) + tm_fill(col=c("UNION92","PN92","APN92"), colorNA = NULL, style = "cont", n=3, title =c("Unionist Votes in 1892", "Parnellite Votes in 1892", "Anti-Parnellite Votes in 1892")) + tm_borders() + tm_style_col_blind()