This map is based on Giuseppe Sollazzo's interactive swing chart, which was based on Christopher Cook's static swing charts.
Most things here have been lifted straight from Giuseppe's excellent blog post detailing how he made it. I've thrown it together in a couple of hours - if anything, I've made Giuseppe's code even filthier, so please don't judge me on it. I will tidy it up, both from a code and design point of view, when I get a minute.
The lighter blues and reds are the holding party from the 2015 Gen Election. The darker blues and reds show which constituencies would be taken if swing were the chosen amount. Grey areas are those where lab/con are not the top two parties.