<?xml version="1.0" encoding="UTF-8"?>
<rss  xmlns:atom="http://www.w3.org/2005/Atom" 
      xmlns:media="http://search.yahoo.com/mrss/" 
      xmlns:content="http://purl.org/rss/1.0/modules/content/" 
      xmlns:dc="http://purl.org/dc/elements/1.1/" 
      version="2.0">
<channel>
<title>Nicola Rennie</title>
<link>https://nrennie.com/blog/</link>
<atom:link href="https://nrennie.com/blog/index.xml" rel="self" type="application/rss+xml"/>
<description>A blog about all things visualisation, data science, and open source software. Some of these blog posts can also be found on [R-bloggers](https://www.r-bloggers.com/), and many have been featured in the [R Weekly](https://rweekly.org/) highlights.</description>
<image>
<url>https://nrennie.com/assets/img/featured.png</url>
<title>Nicola Rennie</title>
<link>https://nrennie.com/blog/</link>
<height>75</height>
<width>144</width>
</image>
<generator>quarto-1.9.37</generator>
<lastBuildDate>Mon, 27 Apr 2026 00:00:00 GMT</lastBuildDate>
<item>
  <title>Five ggplot2 functions I wish I’d known about earlier</title>
  <dc:creator>Nicola Rennie</dc:creator>
  <link>https://nrennie.com/blog/2026-04-27-five-ggplot2-functions/</link>
  <description><![CDATA[ 





<p>In order to make a chart effective, aesthetic, and accessible, you will almost always need to adjust the default styling - regardless of which programming language or packages you use. In <code>ggplot2</code> there are lots of helpful functions and arguments that massively improve how your chart looks. However, a lot of these functions aren’t taught or don’t come up in examples very often. And so many of us (myself included) learn the hard way to do things, and then later find out we could have just changed one argument to do all of it! So this blog post will explain five <code>ggplot2</code> functions that I wish I’d known about earlier!</p>
<p>We’ll start by loading the packages we need for some examples, including <code>ggplot2</code> of course! We’ll use the <code>gapminder</code> package for some data, and <code>dplyr</code> to do a little bit of data wrangling.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb1" data-source-line-numbers="nil" data-code-line-numbers="nil" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb1-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(ggplot2)</span>
<span id="cb1-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(gapminder)</span>
<span id="cb1-3"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(dplyr)</span></code></pre></div></div>
</div>
<div class="callout callout-style-default callout-warning callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Warning
</div>
</div>
<div class="callout-body-container callout-body">
<p>The example charts used in this blog post have deliberately had minimal styling applied to keep the code simple and demonstrate one feature at a time. That means many of the examples may not be the best looking chart, and would require a little bit more work before being of publication quality!</p>
</div>
</div>
<section id="guide_axis" class="level2">
<h2 class="anchored" data-anchor-id="guide_axis"><code>guide_axis()</code></h2>
<p>When creating faceted plots, you’ll often find that the axis text gets squashed due to the reduced space available. For example, in this faceted line chart of life expectancy over time, the x-axis labels for the years overlap, making them very hard to read.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb2" data-source-line-numbers="nil" data-code-line-numbers="nil" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb2-1">plot_data <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> gapminder <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb2-2">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">filter</span>(continent <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">==</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Americas"</span>)</span>
<span id="cb2-3">g <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>(</span>
<span id="cb2-4">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> plot_data,</span>
<span id="cb2-5">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> year, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> lifeExp)</span>
<span id="cb2-6">) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb2-7">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_line</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb2-8">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">facet_wrap</span>(<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">~</span>country)</span>
<span id="cb2-9">g</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-2-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1"><img src="https://nrennie.com/blog/2026-04-27-five-ggplot2-functions/index_files/figure-html/unnamed-chunk-2-1.png" class="img-fluid figure-img" style="width:100.0%"></a></p>
</figure>
</div>
</div>
</div>
<p>You <em>could</em> manually adjust the breaks and labels, but there’s an easier way. Within <code>scale_x_continuous()</code> you can adjust the axis using the <code>guide_axis()</code> function for the <code>guide</code> argument. We don’t often think about <code>x</code> and <code>y</code> variables as having a guide (i.e., legend) but that’s essentially what an axis is. It helps to think about <code>x</code> and <code>y</code> variables in the same way as <code>colour</code> and <code>fill</code>. In <code>guide_axis()</code>, there’s an argument called <code>check.overlap</code>. By default, this argument is <code>FALSE</code>. If it’s <code>TRUE</code>, it will silently remove overlapping labels, while prioritising keeping the first, last, and middle labels.</p>
<div class="cell" data-source-line-numbers="2">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb3" data-source-line-numbers="2" data-code-line-numbers="2" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb3-1">g <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_x_continuous</span>(</span>
<span id="cb3-2">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">guide =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">guide_axis</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">check.overlap =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">TRUE</span>)</span>
<span id="cb3-3">)</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-3-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-2"><img src="https://nrennie.com/blog/2026-04-27-five-ggplot2-functions/index_files/figure-html/unnamed-chunk-3-1.png" class="img-fluid figure-img" style="width:100.0%"></a></p>
</figure>
</div>
</div>
</div>
<p>With one extra line of code, the chart looks so much cleaner and easier to read!</p>
</section>
<section id="size_unit" class="level2">
<h2 class="anchored" data-anchor-id="size_unit"><code>size_unit</code></h2>
<p>If you’ve ever added some labels or annotations using <code>geom_text()</code> and tried to adjust the text size, you might have been confused by the text sizing. For example, if you want to make the text a little bit bigger, you might set the <code>size</code> argument to <code>12</code>, which results in <em>huge</em> labels!</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb4" data-source-line-numbers="nil" data-code-line-numbers="nil" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb4-1">plot_data <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> gapminder <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb4-2">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">filter</span>(year <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">==</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2007</span>)</span>
<span id="cb4-3">text_data <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> plot_data <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb4-4">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">group_by</span>(continent) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb4-5">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">slice_max</span>(lifeExp) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb4-6">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ungroup</span>()</span>
<span id="cb4-7">g <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb4-8">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_point</span>(</span>
<span id="cb4-9">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> plot_data,</span>
<span id="cb4-10">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> lifeExp, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> continent)</span>
<span id="cb4-11">  )</span>
<span id="cb4-12"></span>
<span id="cb4-13">g <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb4-14">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_text</span>(</span>
<span id="cb4-15">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> text_data,</span>
<span id="cb4-16">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> lifeExp, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> continent, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">label =</span> country),</span>
<span id="cb4-17">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">vjust =</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">1.3</span>,</span>
<span id="cb4-18">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">size =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">12</span>, <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># make the text a little bit bigger</span></span>
<span id="cb4-19">  )</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-4-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-3"><img src="https://nrennie.com/blog/2026-04-27-five-ggplot2-functions/index_files/figure-html/unnamed-chunk-4-1.png" class="img-fluid figure-img" style="width:100.0%"></a></p>
</figure>
</div>
</div>
</div>
<p>The default font size in <code>geom_text()</code> is 3.88 which might seem like an unusual value! This is because the default unit for <code>geom_text()</code> is millimetres rather than the more common points (pts), which is used within <code>theme()</code>. Instead of trying to convert millimetres to points, you can simply changed the units used, making it easier to use consistent font sizes between the theme and annotations.</p>
<div class="cell" data-source-line-numbers="7">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb5" data-source-line-numbers="7" data-code-line-numbers="7" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb5-1">g <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb5-2">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_text</span>(</span>
<span id="cb5-3">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> text_data,</span>
<span id="cb5-4">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> lifeExp, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> continent, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">label =</span> country),</span>
<span id="cb5-5">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">vjust =</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">1.3</span>,</span>
<span id="cb5-6">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">size =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">12</span>,</span>
<span id="cb5-7">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">size.unit =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"pt"</span></span>
<span id="cb5-8">  )</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-5-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-4"><img src="https://nrennie.com/blog/2026-04-27-five-ggplot2-functions/index_files/figure-html/unnamed-chunk-5-1.png" class="img-fluid figure-img" style="width:100.0%"></a></p>
</figure>
</div>
</div>
</div>
</section>
<section id="rel" class="level2">
<h2 class="anchored" data-anchor-id="rel"><code>rel()</code></h2>
<p>Since dealing with fonts in R is often tricky, here’s another text sizing tip! Let’s say we want to increase the font size across all chart elements. We can do this within any of the <code>theme_*()</code> functions, using the <code>base_size</code> argument. We might also want to further increase the size of the title text, and can use the <code>size</code> argument <code>element_text()</code> to do that.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb6" data-source-line-numbers="nil" data-code-line-numbers="nil" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb6-1">plot_data <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> gapminder <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb6-2">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">filter</span>(year <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">==</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2007</span>)</span>
<span id="cb6-3">g <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>(</span>
<span id="cb6-4">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> plot_data,</span>
<span id="cb6-5">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> pop, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> continent)</span>
<span id="cb6-6">) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb6-7">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_boxplot</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb6-8">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">labs</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">title =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Asia has the highest popultion on average"</span>)</span>
<span id="cb6-9"></span>
<span id="cb6-10">g <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb6-11">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme_minimal</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">base_size =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">13</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb6-12">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme</span>(</span>
<span id="cb6-13">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">plot.title =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">element_text</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">size =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">16</span>)</span>
<span id="cb6-14">  )</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-6-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-5"><img src="https://nrennie.com/blog/2026-04-27-five-ggplot2-functions/index_files/figure-html/unnamed-chunk-6-1.png" class="img-fluid figure-img" style="width:100.0%"></a></p>
</figure>
</div>
</div>
</div>
<p>This plot looks perfectly fine. However, a problem might arise if we need to resize the chart and increase or decrease the font size. This would mean going through every function and argument where we’ve specified a text size and updating to new values. This is a bit tedious, and prone to errors. Instead, we can specify <em>relative</em> font sizes using the <code>rel()</code> function. This means the title text will be 1.25 times larger than the base size.</p>
<div class="cell" data-source-line-numbers="4">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb7" data-source-line-numbers="4" data-code-line-numbers="4" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb7-1">g <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb7-2">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme_minimal</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">base_size =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">13</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb7-3">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme</span>(</span>
<span id="cb7-4">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">plot.title =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">element_text</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">size =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">rel</span>(<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">1.25</span>))</span>
<span id="cb7-5">  )</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-7-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-6"><img src="https://nrennie.com/blog/2026-04-27-five-ggplot2-functions/index_files/figure-html/unnamed-chunk-7-1.png" class="img-fluid figure-img" style="width:100.0%"></a></p>
</figure>
</div>
</div>
</div>
<p>It looks the same as the previous plot, but it’s much easier to make adjustments. Now if we need to change the text size across the entire chart, we can simple update the <code>base_size</code> argument and everything else will be resized accordingly.</p>
</section>
<section id="plot.title.position" class="level2">
<h2 class="anchored" data-anchor-id="plot.title.position"><code>plot.title.position</code></h2>
<p>If you’ve ever added a title to a plot, especially a chart where you have long y-axis category labels, you may notice that the title isn’t positioned at the left hand side of the plot. To demonstrate this, let’s make a simple bar chart of GDP per capita in different countries in 1952. You can see that the title is neither left aligned nor centre aligned within the chart. Instead, it’s hovering in a slightly weird place.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb8" data-source-line-numbers="nil" data-code-line-numbers="nil" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb8-1">plot_data <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> gapminder <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb8-2">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">filter</span>(continent <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">==</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Americas"</span>, year <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">==</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1952</span>)</span>
<span id="cb8-3">g <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>(</span>
<span id="cb8-4">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> plot_data,</span>
<span id="cb8-5">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> gdpPercap, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> country)</span>
<span id="cb8-6">) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb8-7">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_col</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb8-8">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">labs</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">title =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"GDP per capita"</span>)</span>
<span id="cb8-9">g</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-8-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-7"><img src="https://nrennie.com/blog/2026-04-27-five-ggplot2-functions/index_files/figure-html/unnamed-chunk-8-1.png" class="img-fluid figure-img" style="width:100.0%"></a></p>
</figure>
</div>
</div>
</div>
<p>We can fix this by using the <code>theme()</code> function, and setting the argument <code>plot.title.position</code> to <code>"plot"</code>. By default, this argument is set to <code>"panel"</code> which aligns the text with the plot panel (the grey area, which might not be visible with a different theme). Setting it to <code>"plot"</code> aligns the text to the whole plot.</p>
<div class="cell" data-source-line-numbers="3">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb9" data-source-line-numbers="3" data-code-line-numbers="3" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb9-1">g <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb9-2">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme</span>(</span>
<span id="cb9-3">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">plot.title.position =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"plot"</span></span>
<span id="cb9-4">  )</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-9-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-8"><img src="https://nrennie.com/blog/2026-04-27-five-ggplot2-functions/index_files/figure-html/unnamed-chunk-9-1.png" class="img-fluid figure-img" style="width:100.0%"></a></p>
</figure>
</div>
</div>
</div>
<p>This looks much cleaner and professional, and means you can use all of the space available for longer titles or subtitles!</p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Tip
</div>
</div>
<div class="callout-body-container callout-body">
<p>Setting <code>plot.title.position</code> adjusts <em>both</em> the title and subtitle. If you also want to adjust the caption, the <code>plot.caption.position</code> argument works similarly.</p>
</div>
</div>
</section>
<section id="bg" class="level2">
<h2 class="anchored" data-anchor-id="bg"><code>bg</code></h2>
<p>When styling a chart, it’s very common to change the theme. This might be to a different built-in theme, one from another R package, or one of your own design. What might not be immediately obvious is that some themes have a white background, whereas others have a transparent background.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb10" data-source-line-numbers="nil" data-code-line-numbers="nil" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb10-1">g <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb10-2">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme_minimal</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb10-3">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme</span>(</span>
<span id="cb10-4">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">plot.title.position =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"plot"</span></span>
<span id="cb10-5">  )</span>
<span id="cb10-6"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggsave</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"barchart.png"</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">width =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">height =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">4</span>)</span></code></pre></div></div>
</div>
<p>You might not notice that the background is transparent, as many documents and slides also have white backgrounds. However, you may see something like this , if you open the image.</p>
<p><a href="images/transparent.png" class="lightbox" data-gallery="quarto-lightbox-gallery-9"><img src="https://nrennie.com/blog/2026-04-27-five-ggplot2-functions/images/transparent.png" class="img-fluid" style="width:100.0%" alt="Screenshot of image preview showing dark background, with light grey lines and bars"></a></p>
<p>We can fix this when saving, by adding a colour to the <code>bg</code> argument of <code>ggsave()</code> which adjusts the background colour.</p>
<div class="cell" data-source-line-numbers="3">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb11" data-source-line-numbers="3" data-code-line-numbers="3" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb11-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggsave</span>(</span>
<span id="cb11-2">  <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"barchart.png"</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">width =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">height =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">4</span>,</span>
<span id="cb11-3">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">bg =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"white"</span></span>
<span id="cb11-4">)</span></code></pre></div></div>
</div>
<div class="callout callout-style-default callout-warning callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Warning
</div>
</div>
<div class="callout-body-container callout-body">
<p>Since version 4.0.0 of <code>ggplot2</code>, the ways that background colours can be adjusted have changed. Now, all <code>theme_*()</code> functions, have a <code>paper</code> argument. The default for <code>theme_minimal()</code> is now <code>"white"</code>. This might cause some unexpected issues if (like me) you were relying on the default being transparent!</p>
</div>
</div>
</section>
<section id="bonus-scale_xy_symmetric" class="level2">
<h2 class="anchored" data-anchor-id="bonus-scale_xy_symmetric">Bonus: <code>scale_x/y_symmetric()</code></h2>
<p>This helpful function isn’t actually in <code>ggplot2</code> itself, so it’s included as a bonus! For continuous variables, the default axis range is simply the range of the data. However if you’re plotting data that has a skewed distribution, where the middle of the data isn’t in the middle of the range, this can make it harder to see that the data is skewed. This is especially true when comparing differences above or below 0, for example. To demonstrate, here’s a scatter plot of the difference in a country’s life expectancy from the average across all countries.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb12" data-source-line-numbers="nil" data-code-line-numbers="nil" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb12-1">plot_data <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> gapminder <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb12-2">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">filter</span>(year <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">==</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2007</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb12-3">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">lifeExpDiff =</span> lifeExp <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mean</span>(lifeExp))</span>
<span id="cb12-4">g <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>(</span>
<span id="cb12-5">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> plot_data,</span>
<span id="cb12-6">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> continent, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> lifeExpDiff)</span>
<span id="cb12-7">) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb12-8">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_point</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">position =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">position_jitter</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">height =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">width =</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.3</span>))</span>
<span id="cb12-9">g</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-12-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-10"><img src="https://nrennie.com/blog/2026-04-27-five-ggplot2-functions/index_files/figure-html/unnamed-chunk-12-1.png" class="img-fluid figure-img" style="width:100.0%"></a></p>
</figure>
</div>
</div>
</div>
<p>If you look carefully at the chart, you’ll notice that most of the values are less than 0. However, at first glance, the chart might suggest that it is equally spread above and below zero because we often expect 0 to be in the middle of the chart. But it isn’t. Of course, you can calculate the limits of the data and pass in the absolute maximum (with positive and negative values) to the <code>limits</code> argument of the <code>scale_y_continuous()</code> function. An easier way to fix this, is to use <code>scale_y_symmetric()</code> from the <a href="https://github.com/stefanedwards/lemon" target="_blank"><code>lemon</code></a> package.</p>
<div class="cell" data-source-line-numbers="3">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb13" data-source-line-numbers="3" data-code-line-numbers="3" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb13-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(lemon)</span>
<span id="cb13-2">g <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb13-3">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_y_symmetric</span>()</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-13-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-11"><img src="https://nrennie.com/blog/2026-04-27-five-ggplot2-functions/index_files/figure-html/unnamed-chunk-13-1.png" class="img-fluid figure-img" style="width:100.0%"></a></p>
</figure>
</div>
</div>
</div>
<p>This is especially useful for residuals plots where you’re often comparing the spread above and below 0.</p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Tip
</div>
</div>
<div class="callout-body-container callout-body">
<p>The analogous function for the x axis is <code>scale_x_symmetric()</code>. You can adjust the mid point using the <code>mid</code> argument if you need to show whether something is symmetric about some value other than 0.</p>
</div>
</div>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span>More <code>ggplot2</code> resources
</div>
</div>
<div class="callout-body-container callout-body">
<ul>
<li><p><strong>The Art of Data Visualization with <code>ggplot2</code></strong>: <a href="https://nrennie.rbind.io/art-of-viz/" target="_blank">nrennie.rbind.io/art-of-viz</a></p></li>
<li><p><strong>ggplot2: Elegant Graphics for Data Analysis</strong>: <a href="https://ggplot2-book.org/" target="_blank">ggplot2-book.org</a></p></li>
<li><p><strong>R Graphics Cookbook</strong>: <a href="https://r-graphics.org/" target="_blank">r-graphics.org</a></p></li>
</ul>
</div>
</div>


</section>

<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-reuse"><h2 class="anchored quarto-appendix-heading">Reuse</h2><div class="quarto-appendix-contents"><div><a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></div></div></section><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Citation</h2><div><div class="quarto-appendix-secondary-label">BibTeX citation:</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{rennie2026,
  author = {Rennie, Nicola},
  title = {Five `Ggplot2` Functions {I} Wish {I’d} Known about Earlier},
  date = {2026-04-27},
  url = {https://nrennie.com/blog/2026-04-27-five-ggplot2-functions/},
  langid = {en}
}
</code></pre><div class="quarto-appendix-secondary-label">For attribution, please cite this work as:</div><div id="ref-rennie2026" class="csl-entry quarto-appendix-citeas">
Rennie, Nicola. 2026. <span>“Five `Ggplot2` Functions I Wish I’d Known
about Earlier.”</span> April 27. <a href="https://nrennie.com/blog/2026-04-27-five-ggplot2-functions/">https://nrennie.com/blog/2026-04-27-five-ggplot2-functions/</a>.
</div></div></section></div> ]]></description>
  <category>Data Visualisation</category>
  <category>R</category>
  <guid>https://nrennie.com/blog/2026-04-27-five-ggplot2-functions/</guid>
  <pubDate>Mon, 27 Apr 2026 00:00:00 GMT</pubDate>
  <media:content url="https://nrennie.com/blog/2026-04-27-five-ggplot2-functions/featured.png" medium="image" type="image/png" height="103" width="144"/>
</item>
<item>
  <title>Introducing ggauto: automating better charts</title>
  <dc:creator>Nicola Rennie</dc:creator>
  <link>https://nrennie.com/blog/2026-03-27-introducing-ggauto/</link>
  <description><![CDATA[ 





<p>Choosing the right chart type is key to creating an effective visualisation of your data. And styling that chart well can vastly improve its clarity and accessibility. However, it’s not always easy to switch between chart types, or tweak the styling of charts made with <code>ggplot2</code>. That’s where <code>ggauto</code> comes in.</p>
<section id="what-isggauto" class="level2">
<h2 class="anchored" data-anchor-id="what-isggauto">What is<code>ggauto</code>?</h2>
<p><code>ggauto</code> is an <em>opinionated</em> <code>ggplot2</code> extension package to automatically choose the best chart type and styling, based on the types and values in the data.</p>
<p>It’s based on the following three principles:</p>
<ul>
<li>Data wrangling is separate to plotting</li>
<li>Accessible default styling</li>
<li>Some chart types are better than others</li>
</ul>
<section id="data-wrangling-is-separate-to-plotting" class="level3">
<h3 class="anchored" data-anchor-id="data-wrangling-is-separate-to-plotting">Data wrangling is separate to plotting</h3>
<p><code>ggauto</code> is designed to choose the <em>best</em> chart type, based on the type of data that you have. That means that you need to pre-process your data into the correct type <em>before</em> plotting it. This is a requirement to make <code>ggauto</code> possible, but is more generally a good idea because it forces you to understand what your data is before you plot it.</p>
<p>Tasks like ordering data, converting to correct date formats, or computing summary statistics should be performed before passing into a plotting function from <code>ggauto</code>. For example, if you have data collected over years, encoded as numeric values <code>2021</code>, <code>2022</code>, and so on then you should either convert these to a category or a date object first.</p>
<p><code>ggauto</code> also assumes that all data is in long format, and can currently create plots with up to three different variables.</p>
</section>
<section id="accessible-default-styling" class="level3">
<h3 class="anchored" data-anchor-id="accessible-default-styling">Accessible default styling</h3>
<p>The default styling for charts should be as accessible as possible. In terms of styling, the defaults differ from <code>ggplot2</code> in the following ways:</p>
<ul>
<li><strong>Colours</strong>:
<ul>
<li>Chart colours that are more likely to be accessible, using <a href="https://sronpersonalpages.nl/~pault/" target="_blank">Paul Tol’s palettes</a>.</li>
<li>The use of a white background (rather than grey) to improve contrast.</li>
<li>Combined use of either shapes or direct labels alongside colour to improve accessibility.</li>
</ul></li>
<li><strong>Text</strong>:
<ul>
<li>Larger default text sizes</li>
<li>Text is aligned horizontally to improve readability, including axis titles and category labels.</li>
<li>Improved styling for title and subtitle, including automatic text wrapping for long text.</li>
<li>Some processing to default axis titles, to make them into sentence case instead of simply using column names.</li>
</ul></li>
<li><strong>Axes</strong>:
<ul>
<li>Unless the data is a <code>factor</code> where a specific order is defined, categorical variables are arranged by magnitude instead of alphabetically.</li>
<li>For some chart types, if <code>0</code> is included in the range of the data, the axis is set to be symmetric about <code>0</code>.</li>
</ul></li>
</ul>
</section>
<section id="some-chart-types-are-better-than-others" class="level3">
<h3 class="anchored" data-anchor-id="some-chart-types-are-better-than-others">Some chart types are better than others</h3>
<p><code>ggauto</code> tries to choose the best chart type based on:</p>
<ul>
<li>the <em>type</em> of data e.g.&nbsp;continuous, discrete, or date</li>
<li>the <em>values</em> in the data e.g.&nbsp;number of categories</li>
</ul>
<p>There is no automatically perfect chart type for a given data type, but some are better than others. The main aim of <code>ggauto</code> is to make it easier to make better charts.</p>
</section>
</section>
<section id="what-does-ggauto-not-do" class="level2">
<h2 class="anchored" data-anchor-id="what-does-ggauto-not-do">What does <code>ggauto</code> not do?</h2>
<p><code>ggauto</code> isn’t designed to make especially complex charts, mainly because I don’t believe complex designs can’t be well automated and require human input on the design. It’s primarily designed to be used to create simple chart types (including bar charts, line charts, scatter charts, and distribution (raincloud) charts) with better design defaults that are appropriate for the data.</p>
<p>It also doesn’t have the capability to add additional features like summary statistics as annotations in a simple way. This is mainly because it’s starting to get into statistical modelling, and again, I think that’s something that requires human oversight. However, the output from <code>ggauto</code> is simply a <code>ggplot2</code> object so you can always calculate summary statistics and add them as annotations yourself. If you need a simple way to create more <em>statistical</em> plots, have a look at <a href="https://tidyplots.org/" target="_blank"><code>tidyplots</code></a>.</p>
</section>
<section id="installation" class="level2">
<h2 class="anchored" data-anchor-id="installation">Installation</h2>
<p>As of March 2026, <code>ggauto</code> can be installed from CRAN:</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb1-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">install.packages</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"ggauto"</span>)</span></code></pre></div></div>
<p>You can install the development version of <code>ggauto</code> from <a href="https://github.com/nrennie/ggauto" target="_blank">GitHub</a> with:</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb2-1"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># install.packages("pak")</span></span>
<span id="cb2-2">pak<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">pak</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"nrennie/ggauto"</span>)</span></code></pre></div></div>
</section>
<section id="mapping-data-to-chart-types" class="level2">
<h2 class="anchored" data-anchor-id="mapping-data-to-chart-types">Mapping data to chart types</h2>
<p>The available data types are based on the <code>scale_x/y_</code> options in <code>ggplot2</code>:</p>
<ul>
<li>Continuous</li>
<li>Discrete (categorical variables that are either a <code>character</code> or a <code>factor</code>)</li>
<li>Date</li>
</ul>
<p>You can pass between 1 and 3 variables into <code>ggauto</code> to produce the following chart types:</p>
<table class="caption-top table">
<colgroup>
<col style="width: 9%">
<col style="width: 9%">
<col style="width: 9%">
<col style="width: 71%">
</colgroup>
<thead>
<tr class="header">
<th>var1</th>
<th>var2</th>
<th>var3</th>
<th>Chart Type</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Continuous</td>
<td>-</td>
<td>-</td>
<td>Raincloud plot</td>
</tr>
<tr class="even">
<td>Continuous</td>
<td>Continuous</td>
<td>-</td>
<td>Scatter plot</td>
</tr>
<tr class="odd">
<td>Continuous</td>
<td>Continuous</td>
<td>Discrete</td>
<td>Scatter plot with coloured shapes</td>
</tr>
<tr class="even">
<td>Discrete</td>
<td>-</td>
<td>-</td>
<td>Bar chart (showing count of categories)</td>
</tr>
<tr class="odd">
<td>Discrete</td>
<td>Continuous</td>
<td>-</td>
<td>Bar chart (if one value per category) or raincloud plot (if multiple values per category)</td>
</tr>
<tr class="even">
<td>Discrete</td>
<td>Discrete</td>
<td>-</td>
<td>Heatmap (showing count of category combinations)</td>
</tr>
<tr class="odd">
<td>Discrete</td>
<td>Discrete</td>
<td>Continuous</td>
<td>Heatmap (showing continuous variable)</td>
</tr>
<tr class="even">
<td>Date</td>
<td>Continuous</td>
<td>-</td>
<td>Line chart</td>
</tr>
<tr class="odd">
<td>Date</td>
<td>Continuous</td>
<td>Discrete</td>
<td>Line chart with coloured lines</td>
</tr>
</tbody>
</table>
</section>
<section id="examples" class="level2">
<h2 class="anchored" data-anchor-id="examples">Examples</h2>
<p>Let’s start by loading the package:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb3-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(ggauto)</span></code></pre></div></div>
</div>
<p>We’ll be using some of the built-in datasets from <code>ggplot2</code> in these examples, so we’ll also load it here:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb4" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb4-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(ggplot2)</span></code></pre></div></div>
</div>
<section id="visualising-distributions" class="level3">
<h3 class="anchored" data-anchor-id="visualising-distributions">Visualising distributions</h3>
<p>If you have only <strong>continuous variable</strong> and you want to visualise the distribution, for example:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb5" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb5-1">penguins <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb5-2">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggauto</span>(bill_dep)</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-3-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1"><img src="https://nrennie.com/blog/2026-03-27-introducing-ggauto/index_files/figure-html/unnamed-chunk-3-1.png" class="img-fluid figure-img" width="672"></a></p>
</figure>
</div>
</div>
</div>
<p>You can pass the data directly instead of using the pipe:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb6" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb6-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggauto</span>(penguins, bill_dep)</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-4-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-2"><img src="https://nrennie.com/blog/2026-03-27-introducing-ggauto/index_files/figure-html/unnamed-chunk-4-1.png" class="img-fluid figure-img" width="672"></a></p>
</figure>
</div>
</div>
</div>
<p>Or pass it in as a vector:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb7" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb7-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggauto</span>(penguins<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>bill_dep)</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-5-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-3"><img src="https://nrennie.com/blog/2026-03-27-introducing-ggauto/index_files/figure-html/unnamed-chunk-5-1.png" class="img-fluid figure-img" width="672"></a></p>
</figure>
</div>
</div>
</div>
<p>If you have multiple categories, and you want to visualise the distribution for each of them, i.e., you have <strong>one discrete variable, and one continuous variable</strong>, then multiple raincloud plots are produced.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb8" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb8-1">penguins <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb8-2">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">filter</span>(species <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">==</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Adelie"</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb8-3">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggauto</span>(island, flipper_len)</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-6-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-4"><img src="https://nrennie.com/blog/2026-03-27-introducing-ggauto/index_files/figure-html/unnamed-chunk-6-1.png" class="img-fluid figure-img" width="672"></a></p>
</figure>
</div>
</div>
</div>
</section>
<section id="visualising-data-over-time" class="level3">
<h3 class="anchored" data-anchor-id="visualising-data-over-time">Visualising data over time</h3>
<p>If you have a single variable to show over time, i.e., <strong>one date variable, and one continuous variable</strong>, a line chart is produced.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb9" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb9-1">economics_long <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb9-2">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">filter</span>(variable <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">==</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"unemploy"</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb9-3">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggauto</span>(date, value)</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-7-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-5"><img src="https://nrennie.com/blog/2026-03-27-introducing-ggauto/index_files/figure-html/unnamed-chunk-7-1.png" class="img-fluid figure-img" width="672"></a></p>
</figure>
</div>
</div>
</div>
<p>If you need to show how multiple variables change over time, i.e., <strong>one date variable, continuous variable, and one discrete variable</strong>, the type of chart will depend on how many categories (unique values in the discrete variable) you have.</p>
<p>If you have 6 or fewer categories, a multi-line chart is created, with colours and symbols identifying the categories. Category labels are added at the end of each line automatically.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb10" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb10-1">txhousing <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb10-2">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">filter</span>(city <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%in%</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Houston"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Fort Worth"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"San Antonio"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Austin"</span>)) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb10-3">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">date =</span> lubridate<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ymd</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">paste0</span>(year, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"/"</span>, month, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"/01"</span>))) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb10-4">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggauto</span>(date, sales, city)</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-8-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-6"><img src="https://nrennie.com/blog/2026-03-27-introducing-ggauto/index_files/figure-html/unnamed-chunk-8-1.png" class="img-fluid figure-img" width="672"></a></p>
</figure>
</div>
</div>
</div>
<p>If you have more than 6 categories, the plot type changes to a faceted line chart, with one category highlighted on each facet:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb11" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb11-1">txhousing <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb11-2">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">filter</span>(city <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%in%</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(</span>
<span id="cb11-3">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Houston"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Fort Worth"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"San Antonio"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Austin"</span>,</span>
<span id="cb11-4">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Bay Area"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Dallas"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Paris"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"San Angelo"</span></span>
<span id="cb11-5">  )) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb11-6">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">date =</span> lubridate<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ymd</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">paste0</span>(year, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"/"</span>, month, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"/01"</span>))) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb11-7">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggauto</span>(date, sales, city)</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-9-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-7"><img src="https://nrennie.com/blog/2026-03-27-introducing-ggauto/index_files/figure-html/unnamed-chunk-9-1.png" class="img-fluid figure-img" width="672"></a></p>
</figure>
</div>
</div>
</div>
</section>
<section id="visualising-magnitudes-and-ranks" class="level3">
<h3 class="anchored" data-anchor-id="visualising-magnitudes-and-ranks">Visualising magnitudes and ranks</h3>
<p>If you have a single discrete variable, a bar chart showing the counts of each category is created:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb12" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb12-1">diamonds <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb12-2">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggauto</span>(cut)</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-10-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-8"><img src="https://nrennie.com/blog/2026-03-27-introducing-ggauto/index_files/figure-html/unnamed-chunk-10-1.png" class="img-fluid figure-img" width="672"></a></p>
</figure>
</div>
</div>
</div>
<p>If you have pre-computed the counts or some other summary statistics, i.e., if you have <strong>one discrete variable, and one continuous variable</strong> with only a single value for each discrete variable, a bar chart of the values is created:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb13" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb13-1">diamonds <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb13-2">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">group_by</span>(cut) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb13-3">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">summarise</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">med_price =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">median</span>(price)) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb13-4">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggauto</span>(cut, med_price)</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-11-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-9"><img src="https://nrennie.com/blog/2026-03-27-introducing-ggauto/index_files/figure-html/unnamed-chunk-11-1.png" class="img-fluid figure-img" width="672"></a></p>
</figure>
</div>
</div>
</div>
<p>As you can see, when the discrete variable is a factor (i.e.&nbsp;<code>cut</code>), the desired order is respected. If the discrete variable is not a factor, the bars are ordered from highest to lowest instead of the default alphabetical ordering:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb14" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb14-1">diamonds <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb14-2">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">group_by</span>(cut) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb14-3">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">summarise</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">med_price =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">median</span>(price)) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb14-4">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">cut =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">as.character</span>(cut)) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb14-5">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggauto</span>(cut, med_price)</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-12-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-10"><img src="https://nrennie.com/blog/2026-03-27-introducing-ggauto/index_files/figure-html/unnamed-chunk-12-1.png" class="img-fluid figure-img" width="672"></a></p>
</figure>
</div>
</div>
</div>
<blockquote class="blockquote">
<p>There was a small bug in version 0.0.1 affecting the ordering of categorical variables. This has now been fixed in the development version as of 27 March, 2026.</p>
</blockquote>
<p>If you have <strong>two discrete variables</strong>, then a heatmap is created showing the count of each combination of categories. Labels are added showing the count.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb15" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb15-1">mpg <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb15-2">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">cyl =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">as.character</span>(cyl)) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb15-3">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggauto</span>(cyl, drv)</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-13-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-11"><img src="https://nrennie.com/blog/2026-03-27-introducing-ggauto/index_files/figure-html/unnamed-chunk-13-1.png" class="img-fluid figure-img" width="672"></a></p>
</figure>
</div>
</div>
</div>
<p>If there are more than 6 categories on either axis, labels are replaced with a legend:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb16" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb16-1">txhousing <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb16-2">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">filter</span>(median <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;=</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">150000</span>, year <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;=</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2005</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb16-3">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(</span>
<span id="cb16-4">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">month =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">factor</span>(month, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">levels =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">12</span>),</span>
<span id="cb16-5">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">year =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">factor</span>(year, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">levels =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2005</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2015</span>)</span>
<span id="cb16-6">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb16-7">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggauto</span>(month, year)</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-14-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-12"><img src="https://nrennie.com/blog/2026-03-27-introducing-ggauto/index_files/figure-html/unnamed-chunk-14-1.png" class="img-fluid figure-img" width="672"></a></p>
</figure>
</div>
</div>
</div>
<p>Again, if one or both of the discrete variables is a factor, then the order is respected. If not, the categories are ordered by magnitude (based on the sum).</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb17" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb17-1">txhousing <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb17-2">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">filter</span>(median <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;=</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">150000</span>, year <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;=</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2005</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb17-3">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(</span>
<span id="cb17-4">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">month =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">as.character</span>(month),</span>
<span id="cb17-5">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">year =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">factor</span>(year, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">levels =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2005</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2015</span>)</span>
<span id="cb17-6">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb17-7">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggauto</span>(month, year)</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-15-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-13"><img src="https://nrennie.com/blog/2026-03-27-introducing-ggauto/index_files/figure-html/unnamed-chunk-15-1.png" class="img-fluid figure-img" width="672"></a></p>
</figure>
</div>
</div>
</div>
<p>If you have <strong>two discrete variables</strong> and a third <strong>continuous variable</strong> showing some summary statistic for each category combination, a heatmap showing that value is created. Labels are rounded to 2 decimal places.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb18" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb18-1">mpg <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb18-2">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">cyl =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">as.character</span>(cyl)) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb18-3">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">group_by</span>(cyl, drv) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb18-4">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">summarise</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mean_hwy =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mean</span>(hwy)) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb18-5">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ungroup</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb18-6">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggauto</span>(cyl, drv, mean_hwy)</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-16-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-14"><img src="https://nrennie.com/blog/2026-03-27-introducing-ggauto/index_files/figure-html/unnamed-chunk-16-1.png" class="img-fluid figure-img" width="672"></a></p>
</figure>
</div>
</div>
</div>
<p>If there are multiple continuous values per combination of categories, an error is returned, asking you to first summarise the data:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb19" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb19-1">mpg <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb19-2">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">cyl =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">as.character</span>(cyl)) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb19-3">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggauto</span>(cyl, drv, hwy)</span></code></pre></div></div>
<div class="cell-output cell-output-error">
<pre><code>Error in `ggauto()`:
! Too many values per category. Summarise data first.</code></pre>
</div>
</div>
</section>
<section id="visualising-correlation" class="level3">
<h3 class="anchored" data-anchor-id="visualising-correlation">Visualising correlation</h3>
<p>To show the correlation between <strong>two continuous variables</strong>:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb21" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb21-1">mpg <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb21-2">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggauto</span>(displ, hwy)</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-18-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-15"><img src="https://nrennie.com/blog/2026-03-27-introducing-ggauto/index_files/figure-html/unnamed-chunk-18-1.png" class="img-fluid figure-img" width="672"></a></p>
</figure>
</div>
</div>
</div>
<p>To show the correlation between <strong>two continuous variables</strong>, split by a third <strong>discrete</strong> variable, a scatter plot using colours and shapes is created:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb22" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb22-1">mpg <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb22-2">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">cyl =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">as.factor</span>(cyl)) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb22-3">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggauto</span>(displ, hwy, cyl)</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-19-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-16"><img src="https://nrennie.com/blog/2026-03-27-introducing-ggauto/index_files/figure-html/unnamed-chunk-19-1.png" class="img-fluid figure-img" width="672"></a></p>
</figure>
</div>
</div>
</div>
<p>If you try to use more than 6 colours (categories), the chart type changes to a faceted scatter plot with one category highlighted on each facet:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb23" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb23-1">mpg <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb23-2">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">cyl =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">as.factor</span>(cyl)) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb23-3">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggauto</span>(displ, hwy, manufacturer)</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-20-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-17"><img src="https://nrennie.com/blog/2026-03-27-introducing-ggauto/index_files/figure-html/unnamed-chunk-20-1.png" class="img-fluid figure-img" width="672"></a></p>
</figure>
</div>
</div>
</div>
</section>
</section>
<section id="comparing-to-ggplot2" class="level2">
<h2 class="anchored" data-anchor-id="comparing-to-ggplot2">Comparing to <code>ggplot2</code></h2>
<p>Using the Texas housing data we can compare <code>ggauto</code> with <code>ggplot2</code> defaults:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb24" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb24-1">plot_data <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> txhousing <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb24-2">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">filter</span>(city <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%in%</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(</span>
<span id="cb24-3">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Houston"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Fort Worth"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"San Antonio"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Austin"</span>,</span>
<span id="cb24-4">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Bay Area"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Dallas"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Paris"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"San Angelo"</span></span>
<span id="cb24-5">  )) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb24-6">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">date =</span> lubridate<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ymd</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">paste0</span>(year, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"/"</span>, month, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"/01"</span>)))</span></code></pre></div></div>
</div>
<div class="grid">
<div class="g-col-12 g-col-md-6">
<p>With <code>ggplot2</code> you have to decide on a line chart yourself:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb25" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb25-1">plot_data <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb25-2">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb25-3">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_line</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> date, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> sales, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">colour =</span> city))</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-22-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-18"><img src="https://nrennie.com/blog/2026-03-27-introducing-ggauto/index_files/figure-html/unnamed-chunk-22-1.png" class="img-fluid figure-img" width="672"></a></p>
</figure>
</div>
</div>
</div>
</div>
<div class="g-col-12 g-col-md-6">
<p>With <code>ggauto</code> the chart type is chosen for you, with more readable defaults:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb26" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb26-1">plot_data <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb26-2">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggauto</span>(date, sales, city)</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-23-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-19"><img src="https://nrennie.com/blog/2026-03-27-introducing-ggauto/index_files/figure-html/unnamed-chunk-23-1.png" class="img-fluid figure-img" width="672"></a></p>
</figure>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="editing-charts" class="level2">
<h2 class="anchored" data-anchor-id="editing-charts">Editing charts</h2>
<section id="scales" class="level3">
<h3 class="anchored" data-anchor-id="scales">Scales</h3>
<p>For scatter plots, raincloud plots, and line charts, one or both of the axes may be symmetric about 0 by default. This happens automatically when 0 exists in the range of values. Since the output of <code>ggauto()</code> is simply a <code>ggplot2</code> chart, you can override this if you don’t want it:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb27" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb27-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">set.seed</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">123</span>)</span>
<span id="cb27-2">plot_data <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">data.frame</span>(</span>
<span id="cb27-3">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">v1 =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">rnorm</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">50</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>)</span>
<span id="cb27-4">)</span></code></pre></div></div>
</div>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb28" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb28-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggauto</span>(plot_data, v1) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb28-2">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_x_continuous</span>()</span></code></pre></div></div>
<div class="cell-output cell-output-stderr">
<pre><code>Scale for x is already present.
Adding another scale for x, which will replace the existing scale.</code></pre>
</div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-25-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-20"><img src="https://nrennie.com/blog/2026-03-27-introducing-ggauto/index_files/figure-html/unnamed-chunk-25-1.png" class="img-fluid figure-img" width="672"></a></p>
</figure>
</div>
</div>
</div>
<p>You’ll get a warning to say you are replacing the existing scale which you can ignore because it’s what you’re trying to do! Similarly, you can edit the default colour/fill scales. However, the default palette is chosen to be accessible.</p>
</section>
<section id="text" class="level3">
<h3 class="anchored" data-anchor-id="text">Text</h3>
<p>You can a title, subtitle, caption, and labels with the <code>labs()</code> function in <code>ggplot2</code> as you normally would, or directly using the same arguments in <code>ggauto()</code>. The latter is recommended as the arguments are used a little abnormally to implement the styling. You can add markdown formatting into the title, subtitle, or caption:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb30" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb30-1">plot_data <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb30-2">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggauto</span>(v1,</span>
<span id="cb30-3">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">title =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Descriptive title goes here"</span>,</span>
<span id="cb30-4">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">subtitle =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"More information about what's in the chart which can be a really, really long sentence that will wrap onto multiple lines automatically."</span>,</span>
<span id="cb30-5">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">caption =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"**Source**: where the data is from"</span>,</span>
<span id="cb30-6">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">xlab =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Nice variable name"</span></span>
<span id="cb30-7">  )</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-26-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-21"><img src="https://nrennie.com/blog/2026-03-27-introducing-ggauto/index_files/figure-html/unnamed-chunk-26-1.png" class="img-fluid figure-img" width="672"></a></p>
</figure>
</div>
</div>
</div>
<p>By default, the x or y axis title is removed on chart types e.g.&nbsp;where the axis is a date or category and a further label stating that is unnecessary. Unless otherwise specified, the axis labels are clean versions of the column names where it’s parsed in sentence case, with underscores removed.</p>
<p>You can edit the size and family of the text using the <code>base_size</code> and <code>base_family</code> arguments. Other plot elements e.g.&nbsp;lines and points scale relative to the <code>base_size</code> as well.</p>
</section>
</section>
<section id="whats-next-for-ggauto" class="level2">
<h2 class="anchored" data-anchor-id="whats-next-for-ggauto">What’s next for <code>ggauto</code>?</h2>
<p>Some of the features coming in later versions:</p>
<ul>
<li>Chart options for visualising distributions for combinations of discrete variables</li>
<li>Better support for time and datetime data</li>
<li>Better layering for points that overlap in scatter plots</li>
<li>Ordering for faceted line charts</li>
</ul>
<p>You can view the source code on <a href="https://github.com/nrennie/ggauto" target="_blank">GitHub</a>, and if you find a bug, please <a href="https://github.com/nrennie/ggauto/issues" target="_blank">raise an issue</a>.</p>


</section>

<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-reuse"><h2 class="anchored quarto-appendix-heading">Reuse</h2><div class="quarto-appendix-contents"><div><a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></div></div></section><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Citation</h2><div><div class="quarto-appendix-secondary-label">BibTeX citation:</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{rennie2026,
  author = {Rennie, Nicola},
  title = {Introducing `Ggauto`: Automating Better Charts},
  date = {2026-03-27},
  url = {https://nrennie.com/blog/2026-03-27-introducing-ggauto/},
  langid = {en}
}
</code></pre><div class="quarto-appendix-secondary-label">For attribution, please cite this work as:</div><div id="ref-rennie2026" class="csl-entry quarto-appendix-citeas">
Rennie, Nicola. 2026. <span>“Introducing `Ggauto`: Automating Better
Charts.”</span> March 27. <a href="https://nrennie.com/blog/2026-03-27-introducing-ggauto/">https://nrennie.com/blog/2026-03-27-introducing-ggauto/</a>.
</div></div></section></div> ]]></description>
  <category>Data Visualisation</category>
  <category>R</category>
  <guid>https://nrennie.com/blog/2026-03-27-introducing-ggauto/</guid>
  <pubDate>Fri, 27 Mar 2026 00:00:00 GMT</pubDate>
  <media:content url="https://nrennie.com/blog/2026-03-27-introducing-ggauto/featured.png" medium="image" type="image/png" height="103" width="144"/>
</item>
<item>
  <title>Interactive beeswarm charts in R</title>
  <dc:creator>Nicola Rennie</dc:creator>
  <link>https://nrennie.com/blog/2026-02-27-interactive-beeswarm-r/</link>
  <description><![CDATA[ 





<p>You might be wondering <em>what exactly is a beeswarm chart</em>? A beeswarm chart is a type of chart used to show the distribution of a continuous variable. Unlike density plots or histograms, beeswarm charts show every individual data point. The points are placed so that they don’t overlap, make it look a bit like a <em>swarm</em> of bees - the name becomes clearer once you’ve seen an example!</p>
<section id="data" class="level2">
<h2 class="anchored" data-anchor-id="data">Data</h2>
<p>Of course, if we’re making a chart, we need some data to plot! We’re going to use the <a href="https://raw.githubusercontent.com/nrennie/rainbowR-VisLGBTQ/refs/heads/main/data/additional-ew/sexual_general_health.csv" target="_blank">General health by sexual orientation</a> data that we used to demonstrate beeswarm charts in our recent <a href="https://github.com/nrennie/rainbowR-VisLGBTQ" target="_blank">rainbowR workshop</a> on <em>Visualising the UK’s LGBTQ+ population</em>.</p>
<div class="callout callout-style-default callout-important callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Important</span>#VisLGBTQ
</div>
</div>
<div class="callout-body-container callout-body">
<p>For LGBTQ+ History Month, between 25 February and 13 March 2026, Kirstie Ken English and I are challenging people to produce visualisations using UK census data on LGBTQ+ people.</p>
<p>Share your visualisations and code via social media using <code>#VisLGBTQ</code> or send it to us via GitHub. Find more information and data on our <a href="https://github.com/nrennie/rainbowR-VisLGBTQ" target="_blank">rainbowR workshop GitHub repository</a>.</p>
</div>
</div>
<p>Let’s load the data:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb1" data-source-line-numbers="nil" data-code-line-numbers="nil" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb1-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(tidyverse)</span>
<span id="cb1-2">sexual_general_health <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">read_csv</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"sexual_general_health.csv"</span>)</span></code></pre></div></div>
</div>
<p>which looks like this:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb2" data-source-line-numbers="nil" data-code-line-numbers="nil" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb2-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">head</span>(sexual_general_health)</span></code></pre></div></div>
<div class="cell-output cell-output-stdout">
<pre data-code-line-numbers=""><code># A tibble: 6 × 7
  area_code area_name  sexual_orientation general_health       n population
  &lt;chr&gt;     &lt;chr&gt;      &lt;chr&gt;              &lt;chr&gt;            &lt;dbl&gt;      &lt;dbl&gt;
1 E06000001 Hartlepool Does not apply     Does not apply       0      92300
2 E06000001 Hartlepool Does not apply     Very good health     0      92300
3 E06000001 Hartlepool Does not apply     Good health          0      92300
4 E06000001 Hartlepool Does not apply     Fair health          0      92300
5 E06000001 Hartlepool Does not apply     Bad health           0      92300
6 E06000001 Hartlepool Does not apply     Very bad health      0      92300
# ℹ 1 more variable: percentage &lt;dbl&gt;</code></pre>
</div>
</div>
<p>Let’s do a little bit of data wrangling to get it into the format we need for plotting. We’re going to make a chart showing the percentage of people in each area who reported bad or very bad health, split by sexual orientation.</p>
<p>The <code>percentage</code> column currently shows the percentage of the population in each area who responded with a specific combination of <code>sexual_orientation</code> and <code>general_health</code>. That’s not quite the percentage we want. Instead we need to calculate the population in each area who reported a specific <code>sexual_orientation</code>, and then calculate the percentage of those who responded with either <code>"Bad health"</code> or <code>"Very bad health"</code>.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb4" data-source-line-numbers="nil" data-code-line-numbers="nil" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb4-1">plot_data <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> sexual_general_health <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb4-2">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">group_by</span>(area_name, sexual_orientation) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb4-3">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">population =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">sum</span>(n)) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb4-4">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ungroup</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb4-5">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">filter</span>(</span>
<span id="cb4-6">    general_health <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%in%</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Bad health"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Very bad health"</span>),</span>
<span id="cb4-7">    sexual_orientation <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">!=</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Does not apply"</span></span>
<span id="cb4-8">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb4-9">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">percentage =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">100</span> <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">*</span> n <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/</span> population) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb4-10">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">group_by</span>(area_name, sexual_orientation) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb4-11">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">summarise</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">percentage =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">sum</span>(percentage)) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb4-12">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ungroup</span>()</span></code></pre></div></div>
</div>
<p>By default in R, categories are sorted alphabetically unless you specify otherwise. Although there are times when an alphabetical ordering of categories on a chart is appropriate, it’s not really going to make sense here. Instead, we’ll sort the sexual orientation categories from highest to lowest median percentage. Let’s calculate the median for each group:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb5" data-source-line-numbers="nil" data-code-line-numbers="nil" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb5-1">summary_data <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> plot_data <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb5-2">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">group_by</span>(sexual_orientation) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb5-3">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">summarise</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">med_perc =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">median</span>(percentage)) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb5-4">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">arrange</span>(med_perc)</span></code></pre></div></div>
</div>
<p>And then convert the <code>sexual_orientation</code> category to a factor, using the order of the medians to set the order of the categories. And yes, I am mixing base R and <code>tidyverse</code> here - use <code>mutate()</code> if you’d prefer!</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb6" data-source-line-numbers="nil" data-code-line-numbers="nil" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb6-1">plot_data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>sexual_orientation <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">factor</span>(</span>
<span id="cb6-2">  plot_data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>sexual_orientation,</span>
<span id="cb6-3">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">levels =</span> summary_data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>sexual_orientation</span>
<span id="cb6-4">)</span></code></pre></div></div>
</div>
<p>Now we have the data that we need to make our beeswarm chart!</p>
</section>
<section id="how-to-make-a-beeswarm-chart-in-r" class="level2">
<h2 class="anchored" data-anchor-id="how-to-make-a-beeswarm-chart-in-r">How to make a beeswarm chart in R</h2>
<p>Before we get into interactivity, we’re going to start with figuring out how to make a static beeswarm chart. Luckily for us, the <code>ggbeeswarm</code> package will be doing pretty much all of the hard work! So let’s start by loading the package.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb7" data-source-line-numbers="nil" data-code-line-numbers="nil" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb7-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(ggbeeswarm)</span></code></pre></div></div>
</div>
<p>There are multiple functions in the <code>ggbeeswarm</code> package that can be used to create beeswarm charts, with the different functions giving different layouts of how the points are jittered. Though <code>geom_beeswarm()</code> might seem like the obvious function, I tend to use <code>geom_quasirandom()</code> because I personally prefer the layout of the points it results in.</p>
<p>The <code>geom_quasirandom()</code> function works much like any other <code>geom_</code> function in <code>ggplot2</code>. We start by passing in our data, and the aesthetic mapping to the <code>ggplot()</code> function. Then simply add <code>geom_quasirandom()</code>.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb8" data-source-line-numbers="nil" data-code-line-numbers="nil" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb8-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>(</span>
<span id="cb8-2">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> plot_data,</span>
<span id="cb8-3">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> percentage, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> sexual_orientation)</span>
<span id="cb8-4">) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb8-5">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_quasirandom</span>()</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-7-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1"><img src="https://nrennie.com/blog/2026-02-27-interactive-beeswarm-r/index_files/figure-html/unnamed-chunk-7-1.png" class="img-fluid figure-img" width="672"></a></p>
</figure>
</div>
</div>
</div>
<p>Now we have a beeswarm chart! You can clearly compare the location and spread of the different distributions, but at the same time still see each individual data point. However, you can also clearly see there are some outliers and the first thing you want to know is <em>‘which areas are those?’</em> We could add some annotations to our static chart, but that can quickly get messy. Instead, beeswarm charts are often made interactive with a tooltip showing information about a point when it is hovered over.</p>
</section>
<section id="making-an-interactive-beeswarm" class="level2">
<h2 class="anchored" data-anchor-id="making-an-interactive-beeswarm">Making an interactive beeswarm</h2>
<p>There are several packages in R for making interactive charts. If you’ve already made a static chart with <code>ggplot2</code> then by far the easiest option is to use the <code>ggiraph</code> package. It’s designed to make <code>ggplot2</code> charts interactive, with drop-in replacements for the common <code>geom_</code> functions.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb9" data-source-line-numbers="nil" data-code-line-numbers="nil" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb9-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(ggiraph)</span></code></pre></div></div>
</div>
<p>Unfortunately, <code>ggiraph</code> doesn’t necessarily work out of the box with <code>geom</code>s provided by extensions. There is no <code>geom_quasirandom_interactive()</code> function. However, our beeswarm chart is essentially just <code>geom_point()</code> with a very specific layout. This means we can actually use <code>geom_point()</code> to make our chart, and just borrow the layout from the <code>ggbeeswarm</code> package.</p>
<div class="cell" data-source-line-numbers="5-7">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb10" data-source-line-numbers="5-7" data-code-line-numbers="5-7" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb10-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>(</span>
<span id="cb10-2">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> plot_data,</span>
<span id="cb10-3">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> percentage, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> sexual_orientation)</span>
<span id="cb10-4">) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb10-5">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_point</span>(</span>
<span id="cb10-6">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">position =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">position_quasirandom</span>(),</span>
<span id="cb10-7">  )</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-9-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-2"><img src="https://nrennie.com/blog/2026-02-27-interactive-beeswarm-r/index_files/figure-html/unnamed-chunk-9-1.png" class="img-fluid figure-img" width="672"></a></p>
</figure>
</div>
</div>
</div>
<p>This is identical to the plot we made earlier with <code>geom_quasirandom()</code>. Now, it’s easy for us to use the <code>ggiraph</code> package to make our chart interactive. We simple switch <code>geom_point()</code> for <code>geom_point_interactive()</code>. We also add in two further aesthetic mappings: <code>tooltip</code> and <code>data_id</code>. As you might expect, <code>tooltip</code> defines what text appears in the tooltip on hover. Here, we’ve simply added the <code>area_name</code> but you can use <code>glue()</code> or <code>paste()</code> to create custom tooltips containing static text, and values if you prefer. The <code>data_id</code> makes each graphical element uniquely identifiable, and ensures elements that share the same <code>data_id</code> are treated as the same <em>thing</em>. This means that when we hover over an area in one of the beeswarms, the same area in the other beeswarms will also be highlighted, enabling better comparison.</p>
<div class="cell" data-source-line-numbers="5-6">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb11" data-source-line-numbers="5-6" data-code-line-numbers="5-6" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb11-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>(</span>
<span id="cb11-2">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> plot_data,</span>
<span id="cb11-3">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> percentage, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> sexual_orientation)</span>
<span id="cb11-4">) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb11-5">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_point_interactive</span>(</span>
<span id="cb11-6">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">tooltip =</span> area_name, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data_id =</span> area_name),</span>
<span id="cb11-7">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">position =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">position_quasirandom</span>(),</span>
<span id="cb11-8">  )</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-10-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-3"><img src="https://nrennie.com/blog/2026-02-27-interactive-beeswarm-r/index_files/figure-html/unnamed-chunk-10-1.png" class="img-fluid figure-img" width="672"></a></p>
</figure>
</div>
</div>
</div>
<p>You’ll notice that this chart still looks identical to our previous charts, and it’s not actually interactive yet. We’ll deal with that in just a moment. First, lets adjust the styling and add a little bit of text. I’m not going to go into too much detail here about styling because that’s not the main point of this blog post, but essentially we: make the points a nicer colour add some transparency; set the x axis range; add a subtitle and caption with information about the data; and adjust the theme to be a little bit cleaner looking.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb12" data-source-line-numbers="nil" data-code-line-numbers="nil" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb12-1">g_int <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>(</span>
<span id="cb12-2">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> plot_data,</span>
<span id="cb12-3">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> percentage, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> sexual_orientation)</span>
<span id="cb12-4">) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb12-5">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_point_interactive</span>(</span>
<span id="cb12-6">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">tooltip =</span> area_name, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data_id =</span> area_name),</span>
<span id="cb12-7">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">position =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">position_quasirandom</span>(),</span>
<span id="cb12-8">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">alpha =</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.7</span>,</span>
<span id="cb12-9">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">colour =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">alpha</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#018E42"</span>, <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.7</span>),</span>
<span id="cb12-10">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">fill =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#018E42"</span>,</span>
<span id="cb12-11">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">pch =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">21</span></span>
<span id="cb12-12">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb12-13">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_x_continuous</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">limits =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">25</span>)) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb12-14">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">labs</span>(</span>
<span id="cb12-15">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Percentage"</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">NULL</span>,</span>
<span id="cb12-16">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">subtitle =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Percentage of population in each area reporting bad or very bad health by sexual orientation"</span>,</span>
<span id="cb12-17">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">caption =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Source: General health by sexual orientation from Office for National Statistics | Graphic: Nicola Rennie"</span></span>
<span id="cb12-18">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb12-19">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme_minimal</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb12-20">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme</span>(</span>
<span id="cb12-21">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">plot.title.position =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"plot"</span>,</span>
<span id="cb12-22">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">plot.caption.position =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"plot"</span>,</span>
<span id="cb12-23">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">plot.title =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">element_text</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">face =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"bold"</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">margin =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">margin</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">b =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5</span>)),</span>
<span id="cb12-24">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">plot.subtitle =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">element_text</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">margin =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">margin</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">b =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5</span>)),</span>
<span id="cb12-25">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">plot.caption =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">element_text</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">margin =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">margin</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">t =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5</span>)),</span>
<span id="cb12-26">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">axis.title.x =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">element_text</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">hjust =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">size =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">rel</span>(<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.9</span>)),</span>
<span id="cb12-27">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">panel.grid.minor.y =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">element_blank</span>(),</span>
<span id="cb12-28">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">plot.margin =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">margin</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">15</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span>)</span>
<span id="cb12-29">  )</span>
<span id="cb12-30">g_int</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-11-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-4"><img src="https://nrennie.com/blog/2026-02-27-interactive-beeswarm-r/index_files/figure-html/unnamed-chunk-11-1.png" class="img-fluid figure-img" width="672"></a></p>
</figure>
</div>
</div>
</div>
<p>Now we can deal with actually making it interactive. Simply printing charts made with <code>geom_*_interactive()</code> doesn’t result in an interactive chart. Instead, we need to save our chart as an object, and pass it into the <code>girafe()</code> function:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb13" data-source-line-numbers="nil" data-code-line-numbers="nil" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb13-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">girafe</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">ggobj =</span> g_int)</span></code></pre></div></div>
<div class="cell-output-display">
<div class="girafe html-widget html-fill-item" id="htmlwidget-ed6fcace99c25a7fe053" style="width:100%;height:464px;"></div>
<script type="application/json" data-for="htmlwidget-ed6fcace99c25a7fe053">{"x":{"html":"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' class='ggiraph-svg' role='graphics-document' id='svg_be8c2f440082a37d' viewBox='0 0 504 360'>\n <defs id='svg_be8c2f440082a37d_defs'>\n  <clipPath id='svg_be8c2f440082a37d_c1'>\n   <rect x='0' y='0' width='504' height='360'/>\n  <\/clipPath>\n  <clipPath id='svg_be8c2f440082a37d_c2'>\n   <rect x='123.02' y='25.14' width='366.04' height='286.78'/>\n  <\/clipPath>\n <\/defs>\n <g id='svg_be8c2f440082a37d_rootg' class='ggiraph-svg-rootg'>\n  <g clip-path='url(#svg_be8c2f440082a37d_c1)'>\n   <rect x='0' y='0' width='504' height='360' fill='#FFFFFF' fill-opacity='1' stroke='#FFFFFF' stroke-opacity='1' stroke-width='0.75' stroke-linejoin='round' stroke-linecap='round' class='ggiraph-svg-bg'/>\n   <rect x='0' y='0' width='504' height='360' fill='#FFFFFF' fill-opacity='1' stroke='none'/>\n  <\/g>\n  <g clip-path='url(#svg_be8c2f440082a37d_c2)'>\n   <polyline points='172.93,311.92 172.93,25.14' fill='none' stroke='#EBEBEB' stroke-opacity='1' stroke-width='0.53' stroke-linejoin='round' stroke-linecap='butt'/>\n   <polyline points='239.48,311.92 239.48,25.14' fill='none' stroke='#EBEBEB' stroke-opacity='1' stroke-width='0.53' stroke-linejoin='round' stroke-linecap='butt'/>\n   <polyline points='306.04,311.92 306.04,25.14' fill='none' stroke='#EBEBEB' stroke-opacity='1' stroke-width='0.53' stroke-linejoin='round' stroke-linecap='butt'/>\n   <polyline points='372.59,311.92 372.59,25.14' fill='none' stroke='#EBEBEB' stroke-opacity='1' stroke-width='0.53' stroke-linejoin='round' stroke-linecap='butt'/>\n   <polyline points='439.14,311.92 439.14,25.14' fill='none' stroke='#EBEBEB' stroke-opacity='1' stroke-width='0.53' stroke-linejoin='round' stroke-linecap='butt'/>\n   <polyline points='123.02,278.83 489.06,278.83' fill='none' stroke='#EBEBEB' stroke-opacity='1' stroke-width='1.07' stroke-linejoin='round' stroke-linecap='butt'/>\n   <polyline points='123.02,223.68 489.06,223.68' fill='none' stroke='#EBEBEB' stroke-opacity='1' stroke-width='1.07' stroke-linejoin='round' stroke-linecap='butt'/>\n   <polyline points='123.02,168.53 489.06,168.53' fill='none' stroke='#EBEBEB' stroke-opacity='1' stroke-width='1.07' stroke-linejoin='round' stroke-linecap='butt'/>\n   <polyline points='123.02,113.38 489.06,113.38' fill='none' stroke='#EBEBEB' stroke-opacity='1' stroke-width='1.07' stroke-linejoin='round' stroke-linecap='butt'/>\n   <polyline points='123.02,58.23 489.06,58.23' fill='none' stroke='#EBEBEB' stroke-opacity='1' stroke-width='1.07' stroke-linejoin='round' stroke-linecap='butt'/>\n   <polyline points='139.65,311.92 139.65,25.14' fill='none' stroke='#EBEBEB' stroke-opacity='1' stroke-width='1.07' stroke-linejoin='round' stroke-linecap='butt'/>\n   <polyline points='206.21,311.92 206.21,25.14' fill='none' stroke='#EBEBEB' stroke-opacity='1' stroke-width='1.07' stroke-linejoin='round' stroke-linecap='butt'/>\n   <polyline points='272.76,311.92 272.76,25.14' fill='none' stroke='#EBEBEB' stroke-opacity='1' stroke-width='1.07' stroke-linejoin='round' stroke-linecap='butt'/>\n   <polyline points='339.31,311.92 339.31,25.14' fill='none' stroke='#EBEBEB' stroke-opacity='1' stroke-width='1.07' stroke-linejoin='round' stroke-linecap='butt'/>\n   <polyline points='405.87,311.92 405.87,25.14' fill='none' stroke='#EBEBEB' stroke-opacity='1' stroke-width='1.07' stroke-linejoin='round' stroke-linecap='butt'/>\n   <polyline points='472.42,311.92 472.42,25.14' fill='none' stroke='#EBEBEB' stroke-opacity='1' stroke-width='1.07' stroke-linejoin='round' stroke-linecap='butt'/>\n   <circle id='svg_be8c2f440082a37d_e1' cx='199.98' cy='265.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Adur' data-id='Adur'/>\n   <circle id='svg_be8c2f440082a37d_e2' cx='245.1' cy='270.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Allerdale' data-id='Allerdale'/>\n   <circle id='svg_be8c2f440082a37d_e3' cx='215.85' cy='279.98' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Amber Valley' data-id='Amber Valley'/>\n   <circle id='svg_be8c2f440082a37d_e4' cx='222.68' cy='268.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Arun' data-id='Arun'/>\n   <circle id='svg_be8c2f440082a37d_e5' cx='242.25' cy='281.56' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ashfield' data-id='Ashfield'/>\n   <circle id='svg_be8c2f440082a37d_e6' cx='195.68' cy='273.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ashford' data-id='Ashford'/>\n   <circle id='svg_be8c2f440082a37d_e7' cx='207.55' cy='297.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Babergh' data-id='Babergh'/>\n   <circle id='svg_be8c2f440082a37d_e8' cx='239.58' cy='274.76' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barking and Dagenham' data-id='Barking and Dagenham'/>\n   <circle id='svg_be8c2f440082a37d_e9' cx='190.29' cy='281.58' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barnet' data-id='Barnet'/>\n   <circle id='svg_be8c2f440082a37d_e10' cx='248.28' cy='284.34' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barnsley' data-id='Barnsley'/>\n   <circle id='svg_be8c2f440082a37d_e11' cx='300.4' cy='278.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barrow-in-Furness' data-id='Barrow-in-Furness'/>\n   <circle id='svg_be8c2f440082a37d_e12' cx='216.76' cy='293.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Basildon' data-id='Basildon'/>\n   <circle id='svg_be8c2f440082a37d_e13' cx='202.94' cy='294.11' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Basingstoke and Deane' data-id='Basingstoke and Deane'/>\n   <circle id='svg_be8c2f440082a37d_e14' cx='243.23' cy='290.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bassetlaw' data-id='Bassetlaw'/>\n   <circle id='svg_be8c2f440082a37d_e15' cx='202.13' cy='272.63' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bath and North East Somerset' data-id='Bath and North East Somerset'/>\n   <circle id='svg_be8c2f440082a37d_e16' cx='218.17' cy='259.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bedford' data-id='Bedford'/>\n   <circle id='svg_be8c2f440082a37d_e17' cx='188.81' cy='290.93' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bexley' data-id='Bexley'/>\n   <circle id='svg_be8c2f440082a37d_e18' cx='232.97' cy='273.42' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Birmingham' data-id='Birmingham'/>\n   <circle id='svg_be8c2f440082a37d_e19' cx='217.8' cy='290.97' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blaby' data-id='Blaby'/>\n   <circle id='svg_be8c2f440082a37d_e20' cx='265.12' cy='276.69' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blackburn with Darwen' data-id='Blackburn with Darwen'/>\n   <circle id='svg_be8c2f440082a37d_e21' cx='316.12' cy='278.53' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blackpool' data-id='Blackpool'/>\n   <circle id='svg_be8c2f440082a37d_e22' cx='259.82' cy='275.42' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blaenau Gwent' data-id='Blaenau Gwent'/>\n   <circle id='svg_be8c2f440082a37d_e23' cx='244.67' cy='276.35' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bolsover' data-id='Bolsover'/>\n   <circle id='svg_be8c2f440082a37d_e24' cx='251.13' cy='277.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bolton' data-id='Bolton'/>\n   <circle id='svg_be8c2f440082a37d_e25' cx='221.82' cy='259.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Boston' data-id='Boston'/>\n   <circle id='svg_be8c2f440082a37d_e26' cx='219.8' cy='286.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bournemouth, Christchurch and Poole' data-id='Bournemouth, Christchurch and Poole'/>\n   <circle id='svg_be8c2f440082a37d_e27' cx='191.93' cy='276.84' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bracknell Forest' data-id='Bracknell Forest'/>\n   <circle id='svg_be8c2f440082a37d_e28' cx='240.94' cy='268.93' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bradford' data-id='Bradford'/>\n   <circle id='svg_be8c2f440082a37d_e29' cx='199.85' cy='283' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Braintree' data-id='Braintree'/>\n   <circle id='svg_be8c2f440082a37d_e30' cx='237.22' cy='275.23' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Breckland' data-id='Breckland'/>\n   <circle id='svg_be8c2f440082a37d_e31' cx='189.51' cy='278.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Brent' data-id='Brent'/>\n   <circle id='svg_be8c2f440082a37d_e32' cx='197.9' cy='294.91' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Brentwood' data-id='Brentwood'/>\n   <circle id='svg_be8c2f440082a37d_e33' cx='241.6' cy='293.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bridgend' data-id='Bridgend'/>\n   <circle id='svg_be8c2f440082a37d_e34' cx='223.05' cy='264.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Brighton and Hove' data-id='Brighton and Hove'/>\n   <circle id='svg_be8c2f440082a37d_e35' cx='208.79' cy='292.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bristol' data-id='Bristol'/>\n   <circle id='svg_be8c2f440082a37d_e36' cx='209.49' cy='262.72' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Broadland' data-id='Broadland'/>\n   <circle id='svg_be8c2f440082a37d_e37' cx='186.69' cy='269.14' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bromley' data-id='Bromley'/>\n   <circle id='svg_be8c2f440082a37d_e38' cx='196.23' cy='290.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bromsgrove' data-id='Bromsgrove'/>\n   <circle id='svg_be8c2f440082a37d_e39' cx='207.43' cy='269.91' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Broxbourne' data-id='Broxbourne'/>\n   <circle id='svg_be8c2f440082a37d_e40' cx='213.78' cy='293.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Broxtowe' data-id='Broxtowe'/>\n   <circle id='svg_be8c2f440082a37d_e41' cx='185.22' cy='275.4' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Buckinghamshire' data-id='Buckinghamshire'/>\n   <circle id='svg_be8c2f440082a37d_e42' cx='242.15' cy='289.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Burnley' data-id='Burnley'/>\n   <circle id='svg_be8c2f440082a37d_e43' cx='221.93' cy='297.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bury' data-id='Bury'/>\n   <circle id='svg_be8c2f440082a37d_e44' cx='250.86' cy='288.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Caerphilly' data-id='Caerphilly'/>\n   <circle id='svg_be8c2f440082a37d_e45' cx='249.04' cy='281.31' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Calderdale' data-id='Calderdale'/>\n   <circle id='svg_be8c2f440082a37d_e46' cx='184.43' cy='278.19' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cambridge' data-id='Cambridge'/>\n   <circle id='svg_be8c2f440082a37d_e47' cx='200.3' cy='267.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Camden' data-id='Camden'/>\n   <circle id='svg_be8c2f440082a37d_e48' cx='213.87' cy='282.69' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cannock Chase' data-id='Cannock Chase'/>\n   <circle id='svg_be8c2f440082a37d_e49' cx='195.59' cy='288.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Canterbury' data-id='Canterbury'/>\n   <circle id='svg_be8c2f440082a37d_e50' cx='207.54' cy='259.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cardiff' data-id='Cardiff'/>\n   <circle id='svg_be8c2f440082a37d_e51' cx='238.25' cy='271.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Carlisle' data-id='Carlisle'/>\n   <circle id='svg_be8c2f440082a37d_e52' cx='249.37' cy='277' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Carmarthenshire' data-id='Carmarthenshire'/>\n   <circle id='svg_be8c2f440082a37d_e53' cx='227.11' cy='283.3' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Castle Point' data-id='Castle Point'/>\n   <circle id='svg_be8c2f440082a37d_e54' cx='198.03' cy='278.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Central Bedfordshire' data-id='Central Bedfordshire'/>\n   <circle id='svg_be8c2f440082a37d_e55' cx='216.04' cy='278.01' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ceredigion' data-id='Ceredigion'/>\n   <circle id='svg_be8c2f440082a37d_e56' cx='205.9' cy='282.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Charnwood' data-id='Charnwood'/>\n   <circle id='svg_be8c2f440082a37d_e57' cx='206.65' cy='275.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chelmsford' data-id='Chelmsford'/>\n   <circle id='svg_be8c2f440082a37d_e58' cx='201.96' cy='267.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cheltenham' data-id='Cheltenham'/>\n   <circle id='svg_be8c2f440082a37d_e59' cx='210.66' cy='289.69' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cherwell' data-id='Cherwell'/>\n   <circle id='svg_be8c2f440082a37d_e60' cx='205.94' cy='262.59' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cheshire East' data-id='Cheshire East'/>\n   <circle id='svg_be8c2f440082a37d_e61' cx='211.26' cy='273.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cheshire West and Chester' data-id='Cheshire West and Chester'/>\n   <circle id='svg_be8c2f440082a37d_e62' cx='238.99' cy='278.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chesterfield' data-id='Chesterfield'/>\n   <circle id='svg_be8c2f440082a37d_e63' cx='194.1' cy='277.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chichester' data-id='Chichester'/>\n   <circle id='svg_be8c2f440082a37d_e64' cx='207.43' cy='291.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chorley' data-id='Chorley'/>\n   <circle id='svg_be8c2f440082a37d_e65' cx='168.11' cy='279.37' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='City of London' data-id='City of London'/>\n   <circle id='svg_be8c2f440082a37d_e66' cx='204.43' cy='297.61' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Colchester' data-id='Colchester'/>\n   <circle id='svg_be8c2f440082a37d_e67' cx='239.73' cy='266.76' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Conwy' data-id='Conwy'/>\n   <circle id='svg_be8c2f440082a37d_e68' cx='225.06' cy='280.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Copeland' data-id='Copeland'/>\n   <circle id='svg_be8c2f440082a37d_e69' cx='234.73' cy='283.83' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cornwall' data-id='Cornwall'/>\n   <circle id='svg_be8c2f440082a37d_e70' cx='183.72' cy='275.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cotswold' data-id='Cotswold'/>\n   <circle id='svg_be8c2f440082a37d_e71' cx='249.08' cy='269.76' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='County Durham' data-id='County Durham'/>\n   <circle id='svg_be8c2f440082a37d_e72' cx='225.76' cy='269.14' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Coventry' data-id='Coventry'/>\n   <circle id='svg_be8c2f440082a37d_e73' cx='204.71' cy='267.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Craven' data-id='Craven'/>\n   <circle id='svg_be8c2f440082a37d_e74' cx='217.67' cy='265.06' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Crawley' data-id='Crawley'/>\n   <circle id='svg_be8c2f440082a37d_e75' cx='203.43' cy='274.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Croydon' data-id='Croydon'/>\n   <circle id='svg_be8c2f440082a37d_e76' cx='211.6' cy='297.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dacorum' data-id='Dacorum'/>\n   <circle id='svg_be8c2f440082a37d_e77' cx='237.44' cy='286.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Darlington' data-id='Darlington'/>\n   <circle id='svg_be8c2f440082a37d_e78' cx='221.02' cy='269.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dartford' data-id='Dartford'/>\n   <circle id='svg_be8c2f440082a37d_e79' cx='263.44' cy='283.35' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Denbighshire' data-id='Denbighshire'/>\n   <circle id='svg_be8c2f440082a37d_e80' cx='234.97' cy='270.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Derby' data-id='Derby'/>\n   <circle id='svg_be8c2f440082a37d_e81' cx='212.08' cy='270.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Derbyshire Dales' data-id='Derbyshire Dales'/>\n   <circle id='svg_be8c2f440082a37d_e82' cx='263.35' cy='274.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Doncaster' data-id='Doncaster'/>\n   <circle id='svg_be8c2f440082a37d_e83' cx='210.4' cy='300.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dorset' data-id='Dorset'/>\n   <circle id='svg_be8c2f440082a37d_e84' cx='221.04' cy='279.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dover' data-id='Dover'/>\n   <circle id='svg_be8c2f440082a37d_e85' cx='230.21' cy='274.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dudley' data-id='Dudley'/>\n   <circle id='svg_be8c2f440082a37d_e86' cx='187.15' cy='270.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ealing' data-id='Ealing'/>\n   <circle id='svg_be8c2f440082a37d_e87' cx='220.32' cy='294.34' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Cambridgeshire' data-id='East Cambridgeshire'/>\n   <circle id='svg_be8c2f440082a37d_e88' cx='222.85' cy='292.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Devon' data-id='East Devon'/>\n   <circle id='svg_be8c2f440082a37d_e89' cx='197.63' cy='279.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Hampshire' data-id='East Hampshire'/>\n   <circle id='svg_be8c2f440082a37d_e90' cx='188.06' cy='279.6' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Hertfordshire' data-id='East Hertfordshire'/>\n   <circle id='svg_be8c2f440082a37d_e91' cx='247.16' cy='290.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Lindsey' data-id='East Lindsey'/>\n   <circle id='svg_be8c2f440082a37d_e92' cx='214.76' cy='295.93' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Riding of Yorkshire' data-id='East Riding of Yorkshire'/>\n   <circle id='svg_be8c2f440082a37d_e93' cx='203.99' cy='289.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Staffordshire' data-id='East Staffordshire'/>\n   <circle id='svg_be8c2f440082a37d_e94' cx='241.67' cy='285.47' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Suffolk' data-id='East Suffolk'/>\n   <circle id='svg_be8c2f440082a37d_e95' cx='231.66' cy='282.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Eastbourne' data-id='Eastbourne'/>\n   <circle id='svg_be8c2f440082a37d_e96' cx='205.1' cy='292.88' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Eastleigh' data-id='Eastleigh'/>\n   <circle id='svg_be8c2f440082a37d_e97' cx='235.74' cy='273.8' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Eden' data-id='Eden'/>\n   <circle id='svg_be8c2f440082a37d_e98' cx='186.86' cy='288.59' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Elmbridge' data-id='Elmbridge'/>\n   <circle id='svg_be8c2f440082a37d_e99' cx='211.27' cy='284.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Enfield' data-id='Enfield'/>\n   <circle id='svg_be8c2f440082a37d_e100' cx='202.76' cy='263' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Epping Forest' data-id='Epping Forest'/>\n   <circle id='svg_be8c2f440082a37d_e101' cx='189.74' cy='284.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Epsom and Ewell' data-id='Epsom and Ewell'/>\n   <circle id='svg_be8c2f440082a37d_e102' cx='220.64' cy='284.28' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Erewash' data-id='Erewash'/>\n   <circle id='svg_be8c2f440082a37d_e103' cx='218.13' cy='280.6' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Exeter' data-id='Exeter'/>\n   <circle id='svg_be8c2f440082a37d_e104' cx='201' cy='280.84' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Fareham' data-id='Fareham'/>\n   <circle id='svg_be8c2f440082a37d_e105' cx='249.39' cy='282.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Fenland' data-id='Fenland'/>\n   <circle id='svg_be8c2f440082a37d_e106' cx='241.33' cy='280.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Flintshire' data-id='Flintshire'/>\n   <circle id='svg_be8c2f440082a37d_e107' cx='232.96' cy='286.01' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Folkestone and Hythe' data-id='Folkestone and Hythe'/>\n   <circle id='svg_be8c2f440082a37d_e108' cx='219.84' cy='266.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Forest of Dean' data-id='Forest of Dean'/>\n   <circle id='svg_be8c2f440082a37d_e109' cx='236.98' cy='289.94' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Fylde' data-id='Fylde'/>\n   <circle id='svg_be8c2f440082a37d_e110' cx='227.59' cy='268.08' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gateshead' data-id='Gateshead'/>\n   <circle id='svg_be8c2f440082a37d_e111' cx='209.96' cy='279.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gedling' data-id='Gedling'/>\n   <circle id='svg_be8c2f440082a37d_e112' cx='216.53' cy='267.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gloucester' data-id='Gloucester'/>\n   <circle id='svg_be8c2f440082a37d_e113' cx='258.14' cy='277.79' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gosport' data-id='Gosport'/>\n   <circle id='svg_be8c2f440082a37d_e114' cx='208.07' cy='265.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gravesham' data-id='Gravesham'/>\n   <circle id='svg_be8c2f440082a37d_e115' cx='251.91' cy='282.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Great Yarmouth' data-id='Great Yarmouth'/>\n   <circle id='svg_be8c2f440082a37d_e116' cx='205.66' cy='272.82' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Greenwich' data-id='Greenwich'/>\n   <circle id='svg_be8c2f440082a37d_e117' cx='184.29' cy='288.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Guildford' data-id='Guildford'/>\n   <circle id='svg_be8c2f440082a37d_e118' cx='213.2' cy='288.13' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gwynedd' data-id='Gwynedd'/>\n   <circle id='svg_be8c2f440082a37d_e119' cx='187' cy='282.6' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hackney' data-id='Hackney'/>\n   <circle id='svg_be8c2f440082a37d_e120' cx='233.87' cy='266.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Halton' data-id='Halton'/>\n   <circle id='svg_be8c2f440082a37d_e121' cx='192.82' cy='286.5' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hambleton' data-id='Hambleton'/>\n   <circle id='svg_be8c2f440082a37d_e122' cx='203.93' cy='265.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hammersmith and Fulham' data-id='Hammersmith and Fulham'/>\n   <circle id='svg_be8c2f440082a37d_e123' cx='217.53' cy='275.42' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harborough' data-id='Harborough'/>\n   <circle id='svg_be8c2f440082a37d_e124' cx='191.21' cy='289.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Haringey' data-id='Haringey'/>\n   <circle id='svg_be8c2f440082a37d_e125' cx='223.42' cy='285.28' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harlow' data-id='Harlow'/>\n   <circle id='svg_be8c2f440082a37d_e126' cx='197.04' cy='267.61' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harrogate' data-id='Harrogate'/>\n   <circle id='svg_be8c2f440082a37d_e127' cx='209.14' cy='295.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harrow' data-id='Harrow'/>\n   <circle id='svg_be8c2f440082a37d_e128' cx='177.02' cy='278.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hart' data-id='Hart'/>\n   <circle id='svg_be8c2f440082a37d_e129' cx='277.39' cy='279.74' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hartlepool' data-id='Hartlepool'/>\n   <circle id='svg_be8c2f440082a37d_e130' cx='246.57' cy='279.54' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hastings' data-id='Hastings'/>\n   <circle id='svg_be8c2f440082a37d_e131' cx='220.36' cy='274.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Havant' data-id='Havant'/>\n   <circle id='svg_be8c2f440082a37d_e132' cx='215.12' cy='285.28' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Havering' data-id='Havering'/>\n   <circle id='svg_be8c2f440082a37d_e133' cx='226.34' cy='273.43' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Herefordshire' data-id='Herefordshire'/>\n   <circle id='svg_be8c2f440082a37d_e134' cx='204.31' cy='279.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hertsmere' data-id='Hertsmere'/>\n   <circle id='svg_be8c2f440082a37d_e135' cx='215.38' cy='264.14' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='High Peak' data-id='High Peak'/>\n   <circle id='svg_be8c2f440082a37d_e136' cx='209.68' cy='290.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hillingdon' data-id='Hillingdon'/>\n   <circle id='svg_be8c2f440082a37d_e137' cx='204.7' cy='287.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hinckley and Bosworth' data-id='Hinckley and Bosworth'/>\n   <circle id='svg_be8c2f440082a37d_e138' cx='195.96' cy='266.42' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Horsham' data-id='Horsham'/>\n   <circle id='svg_be8c2f440082a37d_e139' cx='192.22' cy='270.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hounslow' data-id='Hounslow'/>\n   <circle id='svg_be8c2f440082a37d_e140' cx='204.32' cy='260.08' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Huntingdonshire' data-id='Huntingdonshire'/>\n   <circle id='svg_be8c2f440082a37d_e141' cx='258.71' cy='280.12' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hyndburn' data-id='Hyndburn'/>\n   <circle id='svg_be8c2f440082a37d_e142' cx='238.65' cy='263.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ipswich' data-id='Ipswich'/>\n   <circle id='svg_be8c2f440082a37d_e143' cx='240.56' cy='276.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Isle of Anglesey' data-id='Isle of Anglesey'/>\n   <circle id='svg_be8c2f440082a37d_e144' cx='236.69' cy='266.31' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Isle of Wight' data-id='Isle of Wight'/>\n   <circle id='svg_be8c2f440082a37d_e145' cx='228.39' cy='279.4' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Isles of Scilly' data-id='Isles of Scilly'/>\n   <circle id='svg_be8c2f440082a37d_e146' cx='202.09' cy='291.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Islington' data-id='Islington'/>\n   <circle id='svg_be8c2f440082a37d_e147' cx='241.8' cy='270.21' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kensington and Chelsea' data-id='Kensington and Chelsea'/>\n   <circle id='svg_be8c2f440082a37d_e148' cx='240.46' cy='292.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='King&amp;#39;s Lynn and West Norfolk' data-id='King’s Lynn and West Norfolk'/>\n   <circle id='svg_be8c2f440082a37d_e149' cx='240.89' cy='284.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kingston upon Hull' data-id='Kingston upon Hull'/>\n   <circle id='svg_be8c2f440082a37d_e150' cx='183.14' cy='284.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kingston upon Thames' data-id='Kingston upon Thames'/>\n   <circle id='svg_be8c2f440082a37d_e151' cx='225.53' cy='285.76' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kirklees' data-id='Kirklees'/>\n   <circle id='svg_be8c2f440082a37d_e152' cx='247.44' cy='278.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Knowsley' data-id='Knowsley'/>\n   <circle id='svg_be8c2f440082a37d_e153' cx='186.97' cy='276.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lambeth' data-id='Lambeth'/>\n   <circle id='svg_be8c2f440082a37d_e154' cx='225.35' cy='277.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lancaster' data-id='Lancaster'/>\n   <circle id='svg_be8c2f440082a37d_e155' cx='209.86' cy='268.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Leeds' data-id='Leeds'/>\n   <circle id='svg_be8c2f440082a37d_e156' cx='223.78' cy='271.62' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Leicester' data-id='Leicester'/>\n   <circle id='svg_be8c2f440082a37d_e157' cx='225.31' cy='294.28' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lewes' data-id='Lewes'/>\n   <circle id='svg_be8c2f440082a37d_e158' cx='196.98' cy='283.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lewisham' data-id='Lewisham'/>\n   <circle id='svg_be8c2f440082a37d_e159' cx='213.82' cy='271.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lichfield' data-id='Lichfield'/>\n   <circle id='svg_be8c2f440082a37d_e160' cx='218.95' cy='297.22' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lincoln' data-id='Lincoln'/>\n   <circle id='svg_be8c2f440082a37d_e161' cx='226.78' cy='275.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Liverpool' data-id='Liverpool'/>\n   <circle id='svg_be8c2f440082a37d_e162' cx='233.39' cy='279.72' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Luton' data-id='Luton'/>\n   <circle id='svg_be8c2f440082a37d_e163' cx='203.56' cy='284.59' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Maidstone' data-id='Maidstone'/>\n   <circle id='svg_be8c2f440082a37d_e164' cx='250.17' cy='279.8' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Maldon' data-id='Maldon'/>\n   <circle id='svg_be8c2f440082a37d_e165' cx='226.73' cy='291.27' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Malvern Hills' data-id='Malvern Hills'/>\n   <circle id='svg_be8c2f440082a37d_e166' cx='219.84' cy='291.94' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Manchester' data-id='Manchester'/>\n   <circle id='svg_be8c2f440082a37d_e167' cx='260.56' cy='281.35' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mansfield' data-id='Mansfield'/>\n   <circle id='svg_be8c2f440082a37d_e168' cx='217.37' cy='296.21' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Medway' data-id='Medway'/>\n   <circle id='svg_be8c2f440082a37d_e169' cx='184.12' cy='270.12' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Melton' data-id='Melton'/>\n   <circle id='svg_be8c2f440082a37d_e170' cx='210.72' cy='267.63' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mendip' data-id='Mendip'/>\n   <circle id='svg_be8c2f440082a37d_e171' cx='268.47' cy='279.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Merthyr Tydfil' data-id='Merthyr Tydfil'/>\n   <circle id='svg_be8c2f440082a37d_e172' cx='184.94' cy='272.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Merton' data-id='Merton'/>\n   <circle id='svg_be8c2f440082a37d_e173' cx='223.06' cy='294.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mid Devon' data-id='Mid Devon'/>\n   <circle id='svg_be8c2f440082a37d_e174' cx='204.26' cy='269.93' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mid Suffolk' data-id='Mid Suffolk'/>\n   <circle id='svg_be8c2f440082a37d_e175' cx='195.49' cy='270.31' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mid Sussex' data-id='Mid Sussex'/>\n   <circle id='svg_be8c2f440082a37d_e176' cx='258.09' cy='282.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Middlesbrough' data-id='Middlesbrough'/>\n   <circle id='svg_be8c2f440082a37d_e177' cx='220.28' cy='261.74' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Milton Keynes' data-id='Milton Keynes'/>\n   <circle id='svg_be8c2f440082a37d_e178' cx='204.46' cy='277.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mole Valley' data-id='Mole Valley'/>\n   <circle id='svg_be8c2f440082a37d_e179' cx='237.23' cy='282.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Monmouthshire' data-id='Monmouthshire'/>\n   <circle id='svg_be8c2f440082a37d_e180' cx='263.81' cy='278.74' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Neath Port Talbot' data-id='Neath Port Talbot'/>\n   <circle id='svg_be8c2f440082a37d_e181' cx='213.4' cy='266.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='New Forest' data-id='New Forest'/>\n   <circle id='svg_be8c2f440082a37d_e182' cx='229.73' cy='278.08' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newark and Sherwood' data-id='Newark and Sherwood'/>\n   <circle id='svg_be8c2f440082a37d_e183' cx='228.76' cy='265.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newcastle upon Tyne' data-id='Newcastle upon Tyne'/>\n   <circle id='svg_be8c2f440082a37d_e184' cx='249.7' cy='271.43' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newcastle-under-Lyme' data-id='Newcastle-under-Lyme'/>\n   <circle id='svg_be8c2f440082a37d_e185' cx='189.78' cy='287.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newham' data-id='Newham'/>\n   <circle id='svg_be8c2f440082a37d_e186' cx='238.72' cy='294.54' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newport' data-id='Newport'/>\n   <circle id='svg_be8c2f440082a37d_e187' cx='219.84' cy='271.72' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Devon' data-id='North Devon'/>\n   <circle id='svg_be8c2f440082a37d_e188' cx='239.72' cy='282.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North East Derbyshire' data-id='North East Derbyshire'/>\n   <circle id='svg_be8c2f440082a37d_e189' cx='246.82' cy='267.39' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North East Lincolnshire' data-id='North East Lincolnshire'/>\n   <circle id='svg_be8c2f440082a37d_e190' cx='194.71' cy='284.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Hertfordshire' data-id='North Hertfordshire'/>\n   <circle id='svg_be8c2f440082a37d_e191' cx='217.59' cy='285.8' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Kesteven' data-id='North Kesteven'/>\n   <circle id='svg_be8c2f440082a37d_e192' cx='238.44' cy='278.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Lincolnshire' data-id='North Lincolnshire'/>\n   <circle id='svg_be8c2f440082a37d_e193' cx='220.67' cy='264.36' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Norfolk' data-id='North Norfolk'/>\n   <circle id='svg_be8c2f440082a37d_e194' cx='222.2' cy='287.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Northamptonshire' data-id='North Northamptonshire'/>\n   <circle id='svg_be8c2f440082a37d_e195' cx='230.15' cy='288.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Somerset' data-id='North Somerset'/>\n   <circle id='svg_be8c2f440082a37d_e196' cx='222.9' cy='273.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Tyneside' data-id='North Tyneside'/>\n   <circle id='svg_be8c2f440082a37d_e197' cx='188.8' cy='267.12' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Warwickshire' data-id='North Warwickshire'/>\n   <circle id='svg_be8c2f440082a37d_e198' cx='214.08' cy='261.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North West Leicestershire' data-id='North West Leicestershire'/>\n   <circle id='svg_be8c2f440082a37d_e199' cx='230.02' cy='271.34' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Northumberland' data-id='Northumberland'/>\n   <circle id='svg_be8c2f440082a37d_e200' cx='231.18' cy='276.5' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Norwich' data-id='Norwich'/>\n   <circle id='svg_be8c2f440082a37d_e201' cx='230.87' cy='289.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Nottingham' data-id='Nottingham'/>\n   <circle id='svg_be8c2f440082a37d_e202' cx='248.29' cy='272.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Nuneaton and Bedworth' data-id='Nuneaton and Bedworth'/>\n   <circle id='svg_be8c2f440082a37d_e203' cx='199.73' cy='274.13' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Oadby and Wigston' data-id='Oadby and Wigston'/>\n   <circle id='svg_be8c2f440082a37d_e204' cx='242.23' cy='274.12' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Oldham' data-id='Oldham'/>\n   <circle id='svg_be8c2f440082a37d_e205' cx='184.11' cy='280.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Oxford' data-id='Oxford'/>\n   <circle id='svg_be8c2f440082a37d_e206' cx='267.52' cy='281.11' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Pembrokeshire' data-id='Pembrokeshire'/>\n   <circle id='svg_be8c2f440082a37d_e207' cx='263.89' cy='280.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Pendle' data-id='Pendle'/>\n   <circle id='svg_be8c2f440082a37d_e208' cx='234.08' cy='290.13' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Peterborough' data-id='Peterborough'/>\n   <circle id='svg_be8c2f440082a37d_e209' cx='229.18' cy='292.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Plymouth' data-id='Plymouth'/>\n   <circle id='svg_be8c2f440082a37d_e210' cx='211.94' cy='292.36' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Portsmouth' data-id='Portsmouth'/>\n   <circle id='svg_be8c2f440082a37d_e211' cx='252.42' cy='273.74' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Powys' data-id='Powys'/>\n   <circle id='svg_be8c2f440082a37d_e212' cx='239.27' cy='270.79' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Preston' data-id='Preston'/>\n   <circle id='svg_be8c2f440082a37d_e213' cx='207.48' cy='280.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Reading' data-id='Reading'/>\n   <circle id='svg_be8c2f440082a37d_e214' cx='201.28' cy='277.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Redbridge' data-id='Redbridge'/>\n   <circle id='svg_be8c2f440082a37d_e215' cx='253.85' cy='276.43' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Redcar and Cleveland' data-id='Redcar and Cleveland'/>\n   <circle id='svg_be8c2f440082a37d_e216' cx='213.01' cy='277.3' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Redditch' data-id='Redditch'/>\n   <circle id='svg_be8c2f440082a37d_e217' cx='191.98' cy='283.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Reigate and Banstead' data-id='Reigate and Banstead'/>\n   <circle id='svg_be8c2f440082a37d_e218' cx='277.86' cy='278.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rhondda Cynon Taf' data-id='Rhondda Cynon Taf'/>\n   <circle id='svg_be8c2f440082a37d_e219' cx='211.6' cy='275.91' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ribble Valley' data-id='Ribble Valley'/>\n   <circle id='svg_be8c2f440082a37d_e220' cx='199.38' cy='291.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Richmond upon Thames' data-id='Richmond upon Thames'/>\n   <circle id='svg_be8c2f440082a37d_e221' cx='195.85' cy='281.11' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Richmondshire' data-id='Richmondshire'/>\n   <circle id='svg_be8c2f440082a37d_e222' cx='239.53' cy='290.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rochdale' data-id='Rochdale'/>\n   <circle id='svg_be8c2f440082a37d_e223' cx='198.38' cy='286.93' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rochford' data-id='Rochford'/>\n   <circle id='svg_be8c2f440082a37d_e224' cx='228.28' cy='272.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rossendale' data-id='Rossendale'/>\n   <circle id='svg_be8c2f440082a37d_e225' cx='223.55' cy='266.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rother' data-id='Rother'/>\n   <circle id='svg_be8c2f440082a37d_e226' cx='248.98' cy='275.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rotherham' data-id='Rotherham'/>\n   <circle id='svg_be8c2f440082a37d_e227' cx='201.74' cy='286.73' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rugby' data-id='Rugby'/>\n   <circle id='svg_be8c2f440082a37d_e228' cx='177.65' cy='279.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Runnymede' data-id='Runnymede'/>\n   <circle id='svg_be8c2f440082a37d_e229' cx='202.49' cy='282.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rushcliffe' data-id='Rushcliffe'/>\n   <circle id='svg_be8c2f440082a37d_e230' cx='197.64' cy='263.22' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rushmoor' data-id='Rushmoor'/>\n   <circle id='svg_be8c2f440082a37d_e231' cx='212.64' cy='281.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rutland' data-id='Rutland'/>\n   <circle id='svg_be8c2f440082a37d_e232' cx='208.95' cy='281.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ryedale' data-id='Ryedale'/>\n   <circle id='svg_be8c2f440082a37d_e233' cx='219.17' cy='276.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Salford' data-id='Salford'/>\n   <circle id='svg_be8c2f440082a37d_e234' cx='245.53' cy='285.82' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sandwell' data-id='Sandwell'/>\n   <circle id='svg_be8c2f440082a37d_e235' cx='243.23' cy='267.36' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Scarborough' data-id='Scarborough'/>\n   <circle id='svg_be8c2f440082a37d_e236' cx='215.53' cy='290.53' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sedgemoor' data-id='Sedgemoor'/>\n   <circle id='svg_be8c2f440082a37d_e237' cx='254.61' cy='279.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sefton' data-id='Sefton'/>\n   <circle id='svg_be8c2f440082a37d_e238' cx='201.22' cy='295.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Selby' data-id='Selby'/>\n   <circle id='svg_be8c2f440082a37d_e239' cx='211.87' cy='264.94' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sevenoaks' data-id='Sevenoaks'/>\n   <circle id='svg_be8c2f440082a37d_e240' cx='227.82' cy='286.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sheffield' data-id='Sheffield'/>\n   <circle id='svg_be8c2f440082a37d_e241' cx='210.48' cy='278.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Shropshire' data-id='Shropshire'/>\n   <circle id='svg_be8c2f440082a37d_e242' cx='235.44' cy='287.37' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Slough' data-id='Slough'/>\n   <circle id='svg_be8c2f440082a37d_e243' cx='211.3' cy='262.14' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Solihull' data-id='Solihull'/>\n   <circle id='svg_be8c2f440082a37d_e244' cx='215.83' cy='269.46' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Somerset West and Taunton' data-id='Somerset West and Taunton'/>\n   <circle id='svg_be8c2f440082a37d_e245' cx='206.79' cy='285.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Cambridgeshire' data-id='South Cambridgeshire'/>\n   <circle id='svg_be8c2f440082a37d_e246' cx='216.02' cy='299.02' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Derbyshire' data-id='South Derbyshire'/>\n   <circle id='svg_be8c2f440082a37d_e247' cx='206.99' cy='264.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Gloucestershire' data-id='South Gloucestershire'/>\n   <circle id='svg_be8c2f440082a37d_e248' cx='217.13' cy='262.39' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Hams' data-id='South Hams'/>\n   <circle id='svg_be8c2f440082a37d_e249' cx='241.62' cy='277.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Holland' data-id='South Holland'/>\n   <circle id='svg_be8c2f440082a37d_e250' cx='207.97' cy='287.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Kesteven' data-id='South Kesteven'/>\n   <circle id='svg_be8c2f440082a37d_e251' cx='200.16' cy='294.27' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Lakeland' data-id='South Lakeland'/>\n   <circle id='svg_be8c2f440082a37d_e252' cx='214.98' cy='274.69' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Norfolk' data-id='South Norfolk'/>\n   <circle id='svg_be8c2f440082a37d_e253' cx='179.11' cy='275.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Oxfordshire' data-id='South Oxfordshire'/>\n   <circle id='svg_be8c2f440082a37d_e254' cx='226.01' cy='289.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Ribble' data-id='South Ribble'/>\n   <circle id='svg_be8c2f440082a37d_e255' cx='216.77' cy='272.79' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Somerset' data-id='South Somerset'/>\n   <circle id='svg_be8c2f440082a37d_e256' cx='220.28' cy='281.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Staffordshire' data-id='South Staffordshire'/>\n   <circle id='svg_be8c2f440082a37d_e257' cx='230.67' cy='281.4' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Tyneside' data-id='South Tyneside'/>\n   <circle id='svg_be8c2f440082a37d_e258' cx='222.07' cy='278.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Southampton' data-id='Southampton'/>\n   <circle id='svg_be8c2f440082a37d_e259' cx='229.98' cy='284.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Southend-on-Sea' data-id='Southend-on-Sea'/>\n   <circle id='svg_be8c2f440082a37d_e260' cx='187.75' cy='273.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Southwark' data-id='Southwark'/>\n   <circle id='svg_be8c2f440082a37d_e261' cx='197.31' cy='287.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Spelthorne' data-id='Spelthorne'/>\n   <circle id='svg_be8c2f440082a37d_e262' cx='189.74' cy='272.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='St Albans' data-id='St Albans'/>\n   <circle id='svg_be8c2f440082a37d_e263' cx='232' cy='270.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='St. Helens' data-id='St. Helens'/>\n   <circle id='svg_be8c2f440082a37d_e264' cx='223.07' cy='276.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stafford' data-id='Stafford'/>\n   <circle id='svg_be8c2f440082a37d_e265' cx='250.72' cy='269.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Staffordshire Moorlands' data-id='Staffordshire Moorlands'/>\n   <circle id='svg_be8c2f440082a37d_e266' cx='216.05' cy='288.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stevenage' data-id='Stevenage'/>\n   <circle id='svg_be8c2f440082a37d_e267' cx='212.84' cy='299.03' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stockport' data-id='Stockport'/>\n   <circle id='svg_be8c2f440082a37d_e268' cx='241.1' cy='272.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stockton-on-Tees' data-id='Stockton-on-Tees'/>\n   <circle id='svg_be8c2f440082a37d_e269' cx='250.01' cy='285.31' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stoke-on-Trent' data-id='Stoke-on-Trent'/>\n   <circle id='svg_be8c2f440082a37d_e270' cx='200.3' cy='285.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stratford-on-Avon' data-id='Stratford-on-Avon'/>\n   <circle id='svg_be8c2f440082a37d_e271' cx='220.84' cy='289.21' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stroud' data-id='Stroud'/>\n   <circle id='svg_be8c2f440082a37d_e272' cx='239.05' cy='286.72' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sunderland' data-id='Sunderland'/>\n   <circle id='svg_be8c2f440082a37d_e273' cx='182.54' cy='273.72' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Surrey Heath' data-id='Surrey Heath'/>\n   <circle id='svg_be8c2f440082a37d_e274' cx='206.31' cy='295.86' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sutton' data-id='Sutton'/>\n   <circle id='svg_be8c2f440082a37d_e275' cx='226.45' cy='265.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Swale' data-id='Swale'/>\n   <circle id='svg_be8c2f440082a37d_e276' cx='250.12' cy='274.36' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Swansea' data-id='Swansea'/>\n   <circle id='svg_be8c2f440082a37d_e277' cx='209.01' cy='260.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Swindon' data-id='Swindon'/>\n   <circle id='svg_be8c2f440082a37d_e278' cx='234.44' cy='277.31' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tameside' data-id='Tameside'/>\n   <circle id='svg_be8c2f440082a37d_e279' cx='225.12' cy='263.5' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tamworth' data-id='Tamworth'/>\n   <circle id='svg_be8c2f440082a37d_e280' cx='193.33' cy='266.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tandridge' data-id='Tandridge'/>\n   <circle id='svg_be8c2f440082a37d_e281' cx='216.9' cy='283.23' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Teignbridge' data-id='Teignbridge'/>\n   <circle id='svg_be8c2f440082a37d_e282' cx='244.79' cy='282.8' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Telford and Wrekin' data-id='Telford and Wrekin'/>\n   <circle id='svg_be8c2f440082a37d_e283' cx='272.09' cy='277.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tendring' data-id='Tendring'/>\n   <circle id='svg_be8c2f440082a37d_e284' cx='201.21' cy='262.34' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Test Valley' data-id='Test Valley'/>\n   <circle id='svg_be8c2f440082a37d_e285' cx='165.57' cy='278.83' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tewkesbury' data-id='Tewkesbury'/>\n   <circle id='svg_be8c2f440082a37d_e286' cx='255.73' cy='274.3' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Thanet' data-id='Thanet'/>\n   <circle id='svg_be8c2f440082a37d_e287' cx='190.92' cy='268.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Three Rivers' data-id='Three Rivers'/>\n   <circle id='svg_be8c2f440082a37d_e288' cx='217.89' cy='270.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Thurrock' data-id='Thurrock'/>\n   <circle id='svg_be8c2f440082a37d_e289' cx='186.29' cy='281.03' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tonbridge and Malling' data-id='Tonbridge and Malling'/>\n   <circle id='svg_be8c2f440082a37d_e290' cx='261.97' cy='278.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Torbay' data-id='Torbay'/>\n   <circle id='svg_be8c2f440082a37d_e291' cx='261.67' cy='276.56' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Torfaen' data-id='Torfaen'/>\n   <circle id='svg_be8c2f440082a37d_e292' cx='241.05' cy='288.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Torridge' data-id='Torridge'/>\n   <circle id='svg_be8c2f440082a37d_e293' cx='171.93' cy='278.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tower Hamlets' data-id='Tower Hamlets'/>\n   <circle id='svg_be8c2f440082a37d_e294' cx='197.62' cy='271.28' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Trafford' data-id='Trafford'/>\n   <circle id='svg_be8c2f440082a37d_e295' cx='212.64' cy='259.6' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tunbridge Wells' data-id='Tunbridge Wells'/>\n   <circle id='svg_be8c2f440082a37d_e296' cx='199.31' cy='269.84' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Uttlesford' data-id='Uttlesford'/>\n   <circle id='svg_be8c2f440082a37d_e297' cx='209.17' cy='273.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Vale of Glamorgan' data-id='Vale of Glamorgan'/>\n   <circle id='svg_be8c2f440082a37d_e298' cx='187.69' cy='285.74' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Vale of White Horse' data-id='Vale of White Horse'/>\n   <circle id='svg_be8c2f440082a37d_e299' cx='237.3' cy='267.76' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wakefield' data-id='Wakefield'/>\n   <circle id='svg_be8c2f440082a37d_e300' cx='268.38' cy='278.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Walsall' data-id='Walsall'/>\n   <circle id='svg_be8c2f440082a37d_e301' cx='180.92' cy='278.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Waltham Forest' data-id='Waltham Forest'/>\n   <circle id='svg_be8c2f440082a37d_e302' cx='176.03' cy='280.8' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wandsworth' data-id='Wandsworth'/>\n   <circle id='svg_be8c2f440082a37d_e303' cx='211.7' cy='286.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Warrington' data-id='Warrington'/>\n   <circle id='svg_be8c2f440082a37d_e304' cx='200.41' cy='271.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Warwick' data-id='Warwick'/>\n   <circle id='svg_be8c2f440082a37d_e305' cx='196.45' cy='275.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Watford' data-id='Watford'/>\n   <circle id='svg_be8c2f440082a37d_e306' cx='192.85' cy='273.58' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Waverley' data-id='Waverley'/>\n   <circle id='svg_be8c2f440082a37d_e307' cx='209.24' cy='284.64' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wealden' data-id='Wealden'/>\n   <circle id='svg_be8c2f440082a37d_e308' cx='193.17' cy='280.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Welwyn Hatfield' data-id='Welwyn Hatfield'/>\n   <circle id='svg_be8c2f440082a37d_e309' cx='190.27' cy='275.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Berkshire' data-id='West Berkshire'/>\n   <circle id='svg_be8c2f440082a37d_e310' cx='226.41' cy='281.46' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Devon' data-id='West Devon'/>\n   <circle id='svg_be8c2f440082a37d_e311' cx='193.33' cy='290.69' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Lancashire' data-id='West Lancashire'/>\n   <circle id='svg_be8c2f440082a37d_e312' cx='241.45' cy='265.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Lindsey' data-id='West Lindsey'/>\n   <circle id='svg_be8c2f440082a37d_e313' cx='215.85' cy='258.94' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Northamptonshire' data-id='West Northamptonshire'/>\n   <circle id='svg_be8c2f440082a37d_e314' cx='208.89' cy='271.01' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Oxfordshire' data-id='West Oxfordshire'/>\n   <circle id='svg_be8c2f440082a37d_e315' cx='210.24' cy='257.13' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Suffolk' data-id='West Suffolk'/>\n   <circle id='svg_be8c2f440082a37d_e316' cx='207.56' cy='276.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Westminster' data-id='Westminster'/>\n   <circle id='svg_be8c2f440082a37d_e317' cx='230.77' cy='268.27' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wigan' data-id='Wigan'/>\n   <circle id='svg_be8c2f440082a37d_e318' cx='210.76' cy='295.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wiltshire' data-id='Wiltshire'/>\n   <circle id='svg_be8c2f440082a37d_e319' cx='182.33' cy='281.8' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Winchester' data-id='Winchester'/>\n   <circle id='svg_be8c2f440082a37d_e320' cx='185.06' cy='286.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Windsor and Maidenhead' data-id='Windsor and Maidenhead'/>\n   <circle id='svg_be8c2f440082a37d_e321' cx='249.22' cy='288.47' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wirral' data-id='Wirral'/>\n   <circle id='svg_be8c2f440082a37d_e322' cx='184.66' cy='283.42' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Woking' data-id='Woking'/>\n   <circle id='svg_be8c2f440082a37d_e323' cx='179.58' cy='283.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wokingham' data-id='Wokingham'/>\n   <circle id='svg_be8c2f440082a37d_e324' cx='253.81' cy='283.35' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wolverhampton' data-id='Wolverhampton'/>\n   <circle id='svg_be8c2f440082a37d_e325' cx='200.2' cy='276.3' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Worcester' data-id='Worcester'/>\n   <circle id='svg_be8c2f440082a37d_e326' cx='222.97' cy='283.06' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Worthing' data-id='Worthing'/>\n   <circle id='svg_be8c2f440082a37d_e327' cx='245.59' cy='273.31' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wrexham' data-id='Wrexham'/>\n   <circle id='svg_be8c2f440082a37d_e328' cx='223.69' cy='289.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wychavon' data-id='Wychavon'/>\n   <circle id='svg_be8c2f440082a37d_e329' cx='248.57' cy='287.23' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wyre' data-id='Wyre'/>\n   <circle id='svg_be8c2f440082a37d_e330' cx='236.58' cy='280.73' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wyre Forest' data-id='Wyre Forest'/>\n   <circle id='svg_be8c2f440082a37d_e331' cx='200.38' cy='289.86' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='York' data-id='York'/>\n   <circle id='svg_be8c2f440082a37d_e332' cx='225.57' cy='238.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Adur' data-id='Adur'/>\n   <circle id='svg_be8c2f440082a37d_e333' cx='230.55' cy='211.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Allerdale' data-id='Allerdale'/>\n   <circle id='svg_be8c2f440082a37d_e334' cx='224.72' cy='212.28' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Amber Valley' data-id='Amber Valley'/>\n   <circle id='svg_be8c2f440082a37d_e335' cx='221.78' cy='224.14' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Arun' data-id='Arun'/>\n   <circle id='svg_be8c2f440082a37d_e336' cx='250.43' cy='226.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ashfield' data-id='Ashfield'/>\n   <circle id='svg_be8c2f440082a37d_e337' cx='211.29' cy='223.54' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ashford' data-id='Ashford'/>\n   <circle id='svg_be8c2f440082a37d_e338' cx='205.51' cy='233.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Babergh' data-id='Babergh'/>\n   <circle id='svg_be8c2f440082a37d_e339' cx='223.89' cy='230.59' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barking and Dagenham' data-id='Barking and Dagenham'/>\n   <circle id='svg_be8c2f440082a37d_e340' cx='204.11' cy='227.46' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barnet' data-id='Barnet'/>\n   <circle id='svg_be8c2f440082a37d_e341' cx='257.59' cy='219.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barnsley' data-id='Barnsley'/>\n   <circle id='svg_be8c2f440082a37d_e342' cx='249.34' cy='221.36' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barrow-in-Furness' data-id='Barrow-in-Furness'/>\n   <circle id='svg_be8c2f440082a37d_e343' cx='219.67' cy='226.6' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Basildon' data-id='Basildon'/>\n   <circle id='svg_be8c2f440082a37d_e344' cx='196.14' cy='221.13' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Basingstoke and Deane' data-id='Basingstoke and Deane'/>\n   <circle id='svg_be8c2f440082a37d_e345' cx='234.66' cy='223.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bassetlaw' data-id='Bassetlaw'/>\n   <circle id='svg_be8c2f440082a37d_e346' cx='201.54' cy='241.97' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bath and North East Somerset' data-id='Bath and North East Somerset'/>\n   <circle id='svg_be8c2f440082a37d_e347' cx='208.24' cy='212.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bedford' data-id='Bedford'/>\n   <circle id='svg_be8c2f440082a37d_e348' cx='209.15' cy='226.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bexley' data-id='Bexley'/>\n   <circle id='svg_be8c2f440082a37d_e349' cx='237.28' cy='234.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Birmingham' data-id='Birmingham'/>\n   <circle id='svg_be8c2f440082a37d_e350' cx='204.36' cy='208.23' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blaby' data-id='Blaby'/>\n   <circle id='svg_be8c2f440082a37d_e351' cx='249.75' cy='217.23' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blackburn with Darwen' data-id='Blackburn with Darwen'/>\n   <circle id='svg_be8c2f440082a37d_e352' cx='278.75' cy='223.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blackpool' data-id='Blackpool'/>\n   <circle id='svg_be8c2f440082a37d_e353' cx='286' cy='224.01' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blaenau Gwent' data-id='Blaenau Gwent'/>\n   <circle id='svg_be8c2f440082a37d_e354' cx='260.57' cy='223.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bolsover' data-id='Bolsover'/>\n   <circle id='svg_be8c2f440082a37d_e355' cx='238.37' cy='234.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bolton' data-id='Bolton'/>\n   <circle id='svg_be8c2f440082a37d_e356' cx='229.9' cy='217.61' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Boston' data-id='Boston'/>\n   <circle id='svg_be8c2f440082a37d_e357' cx='219.03' cy='231.58' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bournemouth, Christchurch and Poole' data-id='Bournemouth, Christchurch and Poole'/>\n   <circle id='svg_be8c2f440082a37d_e358' cx='190.04' cy='214.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bracknell Forest' data-id='Bracknell Forest'/>\n   <circle id='svg_be8c2f440082a37d_e359' cx='235.96' cy='217.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bradford' data-id='Bradford'/>\n   <circle id='svg_be8c2f440082a37d_e360' cx='206.74' cy='235.43' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Braintree' data-id='Braintree'/>\n   <circle id='svg_be8c2f440082a37d_e361' cx='221.26' cy='233.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Breckland' data-id='Breckland'/>\n   <circle id='svg_be8c2f440082a37d_e362' cx='209' cy='217.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Brent' data-id='Brent'/>\n   <circle id='svg_be8c2f440082a37d_e363' cx='196.82' cy='229.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Brentwood' data-id='Brentwood'/>\n   <circle id='svg_be8c2f440082a37d_e364' cx='255.87' cy='221.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bridgend' data-id='Bridgend'/>\n   <circle id='svg_be8c2f440082a37d_e365' cx='214.2' cy='231.97' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Brighton and Hove' data-id='Brighton and Hove'/>\n   <circle id='svg_be8c2f440082a37d_e366' cx='216.11' cy='204.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bristol' data-id='Bristol'/>\n   <circle id='svg_be8c2f440082a37d_e367' cx='208.36' cy='235.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Broadland' data-id='Broadland'/>\n   <circle id='svg_be8c2f440082a37d_e368' cx='199.27' cy='219.43' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bromley' data-id='Bromley'/>\n   <circle id='svg_be8c2f440082a37d_e369' cx='206.75' cy='215.11' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bromsgrove' data-id='Bromsgrove'/>\n   <circle id='svg_be8c2f440082a37d_e370' cx='209.3' cy='219.43' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Broxbourne' data-id='Broxbourne'/>\n   <circle id='svg_be8c2f440082a37d_e371' cx='218.98' cy='221.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Broxtowe' data-id='Broxtowe'/>\n   <circle id='svg_be8c2f440082a37d_e372' cx='191.24' cy='228.76' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Buckinghamshire' data-id='Buckinghamshire'/>\n   <circle id='svg_be8c2f440082a37d_e373' cx='252.11' cy='216.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Burnley' data-id='Burnley'/>\n   <circle id='svg_be8c2f440082a37d_e374' cx='227.61' cy='214.35' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bury' data-id='Bury'/>\n   <circle id='svg_be8c2f440082a37d_e375' cx='271.71' cy='223.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Caerphilly' data-id='Caerphilly'/>\n   <circle id='svg_be8c2f440082a37d_e376' cx='228.2' cy='236.86' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Calderdale' data-id='Calderdale'/>\n   <circle id='svg_be8c2f440082a37d_e377' cx='188.48' cy='218.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cambridge' data-id='Cambridge'/>\n   <circle id='svg_be8c2f440082a37d_e378' cx='216.77' cy='222.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Camden' data-id='Camden'/>\n   <circle id='svg_be8c2f440082a37d_e379' cx='240.34' cy='218.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cannock Chase' data-id='Cannock Chase'/>\n   <circle id='svg_be8c2f440082a37d_e380' cx='218.29' cy='210.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Canterbury' data-id='Canterbury'/>\n   <circle id='svg_be8c2f440082a37d_e381' cx='231.48' cy='228.69' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cardiff' data-id='Cardiff'/>\n   <circle id='svg_be8c2f440082a37d_e382' cx='226.76' cy='206.53' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Carlisle' data-id='Carlisle'/>\n   <circle id='svg_be8c2f440082a37d_e383' cx='253.52' cy='226.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Carmarthenshire' data-id='Carmarthenshire'/>\n   <circle id='svg_be8c2f440082a37d_e384' cx='224.03' cy='210.94' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Castle Point' data-id='Castle Point'/>\n   <circle id='svg_be8c2f440082a37d_e385' cx='198.69' cy='212.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Central Bedfordshire' data-id='Central Bedfordshire'/>\n   <circle id='svg_be8c2f440082a37d_e386' cx='230.16' cy='224.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ceredigion' data-id='Ceredigion'/>\n   <circle id='svg_be8c2f440082a37d_e387' cx='204.11' cy='205.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Charnwood' data-id='Charnwood'/>\n   <circle id='svg_be8c2f440082a37d_e388' cx='194.82' cy='230.73' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chelmsford' data-id='Chelmsford'/>\n   <circle id='svg_be8c2f440082a37d_e389' cx='200.09' cy='224.31' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cheltenham' data-id='Cheltenham'/>\n   <circle id='svg_be8c2f440082a37d_e390' cx='197.18' cy='216.64' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cherwell' data-id='Cherwell'/>\n   <circle id='svg_be8c2f440082a37d_e391' cx='211.34' cy='232.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cheshire East' data-id='Cheshire East'/>\n   <circle id='svg_be8c2f440082a37d_e392' cx='219.6' cy='216.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cheshire West and Chester' data-id='Cheshire West and Chester'/>\n   <circle id='svg_be8c2f440082a37d_e393' cx='250.34' cy='222.36' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chesterfield' data-id='Chesterfield'/>\n   <circle id='svg_be8c2f440082a37d_e394' cx='204.13' cy='241.23' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chichester' data-id='Chichester'/>\n   <circle id='svg_be8c2f440082a37d_e395' cx='218.81' cy='205.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chorley' data-id='Chorley'/>\n   <circle id='svg_be8c2f440082a37d_e396' cx='179.07' cy='223.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='City of London' data-id='City of London'/>\n   <circle id='svg_be8c2f440082a37d_e397' cx='204.74' cy='224.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Colchester' data-id='Colchester'/>\n   <circle id='svg_be8c2f440082a37d_e398' cx='237.92' cy='216.37' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Conwy' data-id='Conwy'/>\n   <circle id='svg_be8c2f440082a37d_e399' cx='244.39' cy='218.53' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Copeland' data-id='Copeland'/>\n   <circle id='svg_be8c2f440082a37d_e400' cx='232.78' cy='225.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cornwall' data-id='Cornwall'/>\n   <circle id='svg_be8c2f440082a37d_e401' cx='197.9' cy='207.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cotswold' data-id='Cotswold'/>\n   <circle id='svg_be8c2f440082a37d_e402' cx='256.24' cy='224.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='County Durham' data-id='County Durham'/>\n   <circle id='svg_be8c2f440082a37d_e403' cx='224.86' cy='236.56' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Coventry' data-id='Coventry'/>\n   <circle id='svg_be8c2f440082a37d_e404' cx='202.06' cy='209.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Craven' data-id='Craven'/>\n   <circle id='svg_be8c2f440082a37d_e405' cx='209.26' cy='237.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Crawley' data-id='Crawley'/>\n   <circle id='svg_be8c2f440082a37d_e406' cx='207.13' cy='221.5' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Croydon' data-id='Croydon'/>\n   <circle id='svg_be8c2f440082a37d_e407' cx='201.22' cy='228.62' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dacorum' data-id='Dacorum'/>\n   <circle id='svg_be8c2f440082a37d_e408' cx='231.27' cy='222.14' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Darlington' data-id='Darlington'/>\n   <circle id='svg_be8c2f440082a37d_e409' cx='200.58' cy='243.94' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dartford' data-id='Dartford'/>\n   <circle id='svg_be8c2f440082a37d_e410' cx='248.8' cy='219.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Denbighshire' data-id='Denbighshire'/>\n   <circle id='svg_be8c2f440082a37d_e411' cx='230.74' cy='235.56' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Derby' data-id='Derby'/>\n   <circle id='svg_be8c2f440082a37d_e412' cx='206.25' cy='220.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Derbyshire Dales' data-id='Derbyshire Dales'/>\n   <circle id='svg_be8c2f440082a37d_e413' cx='245.85' cy='216.69' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Doncaster' data-id='Doncaster'/>\n   <circle id='svg_be8c2f440082a37d_e414' cx='215.67' cy='229.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dorset' data-id='Dorset'/>\n   <circle id='svg_be8c2f440082a37d_e415' cx='235.55' cy='223.63' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dover' data-id='Dover'/>\n   <circle id='svg_be8c2f440082a37d_e416' cx='234.64' cy='217.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dudley' data-id='Dudley'/>\n   <circle id='svg_be8c2f440082a37d_e417' cx='205.75' cy='238.6' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ealing' data-id='Ealing'/>\n   <circle id='svg_be8c2f440082a37d_e418' cx='203.55' cy='232.98' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Cambridgeshire' data-id='East Cambridgeshire'/>\n   <circle id='svg_be8c2f440082a37d_e419' cx='212.73' cy='221.22' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Devon' data-id='East Devon'/>\n   <circle id='svg_be8c2f440082a37d_e420' cx='193.31' cy='231.37' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Hampshire' data-id='East Hampshire'/>\n   <circle id='svg_be8c2f440082a37d_e421' cx='191.35' cy='217.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Hertfordshire' data-id='East Hertfordshire'/>\n   <circle id='svg_be8c2f440082a37d_e422' cx='260.83' cy='219.22' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Lindsey' data-id='East Lindsey'/>\n   <circle id='svg_be8c2f440082a37d_e423' cx='219.9' cy='238.88' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Riding of Yorkshire' data-id='East Riding of Yorkshire'/>\n   <circle id='svg_be8c2f440082a37d_e424' cx='215.04' cy='207.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Staffordshire' data-id='East Staffordshire'/>\n   <circle id='svg_be8c2f440082a37d_e425' cx='224.45' cy='206.11' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Suffolk' data-id='East Suffolk'/>\n   <circle id='svg_be8c2f440082a37d_e426' cx='235.71' cy='230.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Eastbourne' data-id='Eastbourne'/>\n   <circle id='svg_be8c2f440082a37d_e427' cx='198.04' cy='240.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Eastleigh' data-id='Eastleigh'/>\n   <circle id='svg_be8c2f440082a37d_e428' cx='205.76' cy='217.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Eden' data-id='Eden'/>\n   <circle id='svg_be8c2f440082a37d_e429' cx='185.05' cy='227.03' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Elmbridge' data-id='Elmbridge'/>\n   <circle id='svg_be8c2f440082a37d_e430' cx='219.69' cy='206.91' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Enfield' data-id='Enfield'/>\n   <circle id='svg_be8c2f440082a37d_e431' cx='203.04' cy='243.94' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Epping Forest' data-id='Epping Forest'/>\n   <circle id='svg_be8c2f440082a37d_e432' cx='187.54' cy='222.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Epsom and Ewell' data-id='Epsom and Ewell'/>\n   <circle id='svg_be8c2f440082a37d_e433' cx='224.67' cy='231.74' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Erewash' data-id='Erewash'/>\n   <circle id='svg_be8c2f440082a37d_e434' cx='207.02' cy='241.53' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Exeter' data-id='Exeter'/>\n   <circle id='svg_be8c2f440082a37d_e435' cx='200.86' cy='223.35' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Fareham' data-id='Fareham'/>\n   <circle id='svg_be8c2f440082a37d_e436' cx='238.28' cy='219.4' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Fenland' data-id='Fenland'/>\n   <circle id='svg_be8c2f440082a37d_e437' cx='226.04' cy='229.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Flintshire' data-id='Flintshire'/>\n   <circle id='svg_be8c2f440082a37d_e438' cx='238.31' cy='225.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Folkestone and Hythe' data-id='Folkestone and Hythe'/>\n   <circle id='svg_be8c2f440082a37d_e439' cx='222.43' cy='233.03' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Forest of Dean' data-id='Forest of Dean'/>\n   <circle id='svg_be8c2f440082a37d_e440' cx='226.37' cy='233.53' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Fylde' data-id='Fylde'/>\n   <circle id='svg_be8c2f440082a37d_e441' cx='255.63' cy='228.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gateshead' data-id='Gateshead'/>\n   <circle id='svg_be8c2f440082a37d_e442' cx='222.05' cy='223.22' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gedling' data-id='Gedling'/>\n   <circle id='svg_be8c2f440082a37d_e443' cx='216.98' cy='232.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gloucester' data-id='Gloucester'/>\n   <circle id='svg_be8c2f440082a37d_e444' cx='223.75' cy='240.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gosport' data-id='Gosport'/>\n   <circle id='svg_be8c2f440082a37d_e445' cx='217.26' cy='237.98' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gravesham' data-id='Gravesham'/>\n   <circle id='svg_be8c2f440082a37d_e446' cx='251.16' cy='220.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Great Yarmouth' data-id='Great Yarmouth'/>\n   <circle id='svg_be8c2f440082a37d_e447' cx='213.71' cy='225.91' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Greenwich' data-id='Greenwich'/>\n   <circle id='svg_be8c2f440082a37d_e448' cx='188.34' cy='226.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Guildford' data-id='Guildford'/>\n   <circle id='svg_be8c2f440082a37d_e449' cx='218.44' cy='215.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gwynedd' data-id='Gwynedd'/>\n   <circle id='svg_be8c2f440082a37d_e450' cx='223.07' cy='237.98' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hackney' data-id='Hackney'/>\n   <circle id='svg_be8c2f440082a37d_e451' cx='261.21' cy='223.59' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Halton' data-id='Halton'/>\n   <circle id='svg_be8c2f440082a37d_e452' cx='205.98' cy='206.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hambleton' data-id='Hambleton'/>\n   <circle id='svg_be8c2f440082a37d_e453' cx='201.06' cy='239.06' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hammersmith and Fulham' data-id='Hammersmith and Fulham'/>\n   <circle id='svg_be8c2f440082a37d_e454' cx='195.28' cy='234.79' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harborough' data-id='Harborough'/>\n   <circle id='svg_be8c2f440082a37d_e455' cx='217.44' cy='217.87' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Haringey' data-id='Haringey'/>\n   <circle id='svg_be8c2f440082a37d_e456' cx='221.65' cy='214.36' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harlow' data-id='Harlow'/>\n   <circle id='svg_be8c2f440082a37d_e457' cx='197.19' cy='225.3' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harrogate' data-id='Harrogate'/>\n   <circle id='svg_be8c2f440082a37d_e458' cx='201.02' cy='212.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harrow' data-id='Harrow'/>\n   <circle id='svg_be8c2f440082a37d_e459' cx='183.18' cy='222.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hart' data-id='Hart'/>\n   <circle id='svg_be8c2f440082a37d_e460' cx='263.82' cy='225.11' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hartlepool' data-id='Hartlepool'/>\n   <circle id='svg_be8c2f440082a37d_e461' cx='251.08' cy='228.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hastings' data-id='Hastings'/>\n   <circle id='svg_be8c2f440082a37d_e462' cx='225.16' cy='226.84' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Havant' data-id='Havant'/>\n   <circle id='svg_be8c2f440082a37d_e463' cx='210.22' cy='215.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Havering' data-id='Havering'/>\n   <circle id='svg_be8c2f440082a37d_e464' cx='217.86' cy='207.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Herefordshire' data-id='Herefordshire'/>\n   <circle id='svg_be8c2f440082a37d_e465' cx='201.09' cy='218.11' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hertsmere' data-id='Hertsmere'/>\n   <circle id='svg_be8c2f440082a37d_e466' cx='215.39' cy='239.64' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='High Peak' data-id='High Peak'/>\n   <circle id='svg_be8c2f440082a37d_e467' cx='203.54' cy='221.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hillingdon' data-id='Hillingdon'/>\n   <circle id='svg_be8c2f440082a37d_e468' cx='211.84' cy='214.5' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hinckley and Bosworth' data-id='Hinckley and Bosworth'/>\n   <circle id='svg_be8c2f440082a37d_e469' cx='193.67' cy='217.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Horsham' data-id='Horsham'/>\n   <circle id='svg_be8c2f440082a37d_e470' cx='206.44' cy='209.83' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hounslow' data-id='Hounslow'/>\n   <circle id='svg_be8c2f440082a37d_e471' cx='204.03' cy='238.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Huntingdonshire' data-id='Huntingdonshire'/>\n   <circle id='svg_be8c2f440082a37d_e472' cx='251.38' cy='224.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hyndburn' data-id='Hyndburn'/>\n   <circle id='svg_be8c2f440082a37d_e473' cx='218.88' cy='241.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ipswich' data-id='Ipswich'/>\n   <circle id='svg_be8c2f440082a37d_e474' cx='226.69' cy='224.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Isle of Anglesey' data-id='Isle of Anglesey'/>\n   <circle id='svg_be8c2f440082a37d_e475' cx='238.77' cy='222.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Isle of Wight' data-id='Isle of Wight'/>\n   <circle id='svg_be8c2f440082a37d_e476' cx='194.94' cy='215.63' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Isles of Scilly' data-id='Isles of Scilly'/>\n   <circle id='svg_be8c2f440082a37d_e477' cx='224.19' cy='215.86' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Islington' data-id='Islington'/>\n   <circle id='svg_be8c2f440082a37d_e478' cx='204.3' cy='219.21' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kensington and Chelsea' data-id='Kensington and Chelsea'/>\n   <circle id='svg_be8c2f440082a37d_e479' cx='229.1' cy='220.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='King&amp;#39;s Lynn and West Norfolk' data-id='King’s Lynn and West Norfolk'/>\n   <circle id='svg_be8c2f440082a37d_e480' cx='247.61' cy='227.27' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kingston upon Hull' data-id='Kingston upon Hull'/>\n   <circle id='svg_be8c2f440082a37d_e481' cx='192.18' cy='213.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kingston upon Thames' data-id='Kingston upon Thames'/>\n   <circle id='svg_be8c2f440082a37d_e482' cx='227.9' cy='218.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kirklees' data-id='Kirklees'/>\n   <circle id='svg_be8c2f440082a37d_e483' cx='278.04' cy='224.82' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Knowsley' data-id='Knowsley'/>\n   <circle id='svg_be8c2f440082a37d_e484' cx='199.1' cy='207.43' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lambeth' data-id='Lambeth'/>\n   <circle id='svg_be8c2f440082a37d_e485' cx='225.78' cy='219.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lancaster' data-id='Lancaster'/>\n   <circle id='svg_be8c2f440082a37d_e486' cx='218.64' cy='225.39' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Leeds' data-id='Leeds'/>\n   <circle id='svg_be8c2f440082a37d_e487' cx='224.61' cy='222' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Leicester' data-id='Leicester'/>\n   <circle id='svg_be8c2f440082a37d_e488' cx='223.39' cy='228.14' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lewes' data-id='Lewes'/>\n   <circle id='svg_be8c2f440082a37d_e489' cx='208.19' cy='231.06' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lewisham' data-id='Lewisham'/>\n   <circle id='svg_be8c2f440082a37d_e490' cx='216.04' cy='214.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lichfield' data-id='Lichfield'/>\n   <circle id='svg_be8c2f440082a37d_e491' cx='223.08' cy='218.3' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lincoln' data-id='Lincoln'/>\n   <circle id='svg_be8c2f440082a37d_e492' cx='266.41' cy='225.13' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Liverpool' data-id='Liverpool'/>\n   <circle id='svg_be8c2f440082a37d_e493' cx='217.95' cy='220.39' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Luton' data-id='Luton'/>\n   <circle id='svg_be8c2f440082a37d_e494' cx='206' cy='241.08' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Maidstone' data-id='Maidstone'/>\n   <circle id='svg_be8c2f440082a37d_e495' cx='211.9' cy='237.11' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Maldon' data-id='Maldon'/>\n   <circle id='svg_be8c2f440082a37d_e496' cx='214.48' cy='236.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Malvern Hills' data-id='Malvern Hills'/>\n   <circle id='svg_be8c2f440082a37d_e497' cx='237.83' cy='228.02' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Manchester' data-id='Manchester'/>\n   <circle id='svg_be8c2f440082a37d_e498' cx='254.38' cy='219.36' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mansfield' data-id='Mansfield'/>\n   <circle id='svg_be8c2f440082a37d_e499' cx='220.97' cy='229.02' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Medway' data-id='Medway'/>\n   <circle id='svg_be8c2f440082a37d_e500' cx='199.92' cy='214.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Melton' data-id='Melton'/>\n   <circle id='svg_be8c2f440082a37d_e501' cx='209.38' cy='228.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mendip' data-id='Mendip'/>\n   <circle id='svg_be8c2f440082a37d_e502' cx='286.03' cy='223.08' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Merthyr Tydfil' data-id='Merthyr Tydfil'/>\n   <circle id='svg_be8c2f440082a37d_e503' cx='193.24' cy='214.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Merton' data-id='Merton'/>\n   <circle id='svg_be8c2f440082a37d_e504' cx='212.97' cy='230.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mid Devon' data-id='Mid Devon'/>\n   <circle id='svg_be8c2f440082a37d_e505' cx='202.21' cy='215.21' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mid Suffolk' data-id='Mid Suffolk'/>\n   <circle id='svg_be8c2f440082a37d_e506' cx='194.46' cy='223.22' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mid Sussex' data-id='Mid Sussex'/>\n   <circle id='svg_be8c2f440082a37d_e507' cx='257.55' cy='225.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Middlesbrough' data-id='Middlesbrough'/>\n   <circle id='svg_be8c2f440082a37d_e508' cx='206.44' cy='230.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Milton Keynes' data-id='Milton Keynes'/>\n   <circle id='svg_be8c2f440082a37d_e509' cx='195.9' cy='211.13' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mole Valley' data-id='Mole Valley'/>\n   <circle id='svg_be8c2f440082a37d_e510' cx='223.78' cy='220.76' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Monmouthshire' data-id='Monmouthshire'/>\n   <circle id='svg_be8c2f440082a37d_e511' cx='276.27' cy='222.69' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Neath Port Talbot' data-id='Neath Port Talbot'/>\n   <circle id='svg_be8c2f440082a37d_e512' cx='210.68' cy='223.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='New Forest' data-id='New Forest'/>\n   <circle id='svg_be8c2f440082a37d_e513' cx='227.98' cy='226.87' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newark and Sherwood' data-id='Newark and Sherwood'/>\n   <circle id='svg_be8c2f440082a37d_e514' cx='238.33' cy='213.79' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newcastle upon Tyne' data-id='Newcastle upon Tyne'/>\n   <circle id='svg_be8c2f440082a37d_e515' cx='235.46' cy='236.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newcastle-under-Lyme' data-id='Newcastle-under-Lyme'/>\n   <circle id='svg_be8c2f440082a37d_e516' cx='213.75' cy='206.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newham' data-id='Newham'/>\n   <circle id='svg_be8c2f440082a37d_e517' cx='244.52' cy='220.4' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newport' data-id='Newport'/>\n   <circle id='svg_be8c2f440082a37d_e518' cx='225.52' cy='207.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Devon' data-id='North Devon'/>\n   <circle id='svg_be8c2f440082a37d_e519' cx='238' cy='230.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North East Derbyshire' data-id='North East Derbyshire'/>\n   <circle id='svg_be8c2f440082a37d_e520' cx='241.49' cy='229.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North East Lincolnshire' data-id='North East Lincolnshire'/>\n   <circle id='svg_be8c2f440082a37d_e521' cx='198.73' cy='217.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Hertfordshire' data-id='North Hertfordshire'/>\n   <circle id='svg_be8c2f440082a37d_e522' cx='213.34' cy='235.3' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Kesteven' data-id='North Kesteven'/>\n   <circle id='svg_be8c2f440082a37d_e523' cx='232.95' cy='212.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Lincolnshire' data-id='North Lincolnshire'/>\n   <circle id='svg_be8c2f440082a37d_e524' cx='227.89' cy='235.12' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Norfolk' data-id='North Norfolk'/>\n   <circle id='svg_be8c2f440082a37d_e525' cx='216.07' cy='224.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Northamptonshire' data-id='North Northamptonshire'/>\n   <circle id='svg_be8c2f440082a37d_e526' cx='219.1' cy='211.76' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Somerset' data-id='North Somerset'/>\n   <circle id='svg_be8c2f440082a37d_e527' cx='237.03' cy='214.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Tyneside' data-id='North Tyneside'/>\n   <circle id='svg_be8c2f440082a37d_e528' cx='227.11' cy='240.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Warwickshire' data-id='North Warwickshire'/>\n   <circle id='svg_be8c2f440082a37d_e529' cx='213.36' cy='216.46' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North West Leicestershire' data-id='North West Leicestershire'/>\n   <circle id='svg_be8c2f440082a37d_e530' cx='234.02' cy='227' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Northumberland' data-id='Northumberland'/>\n   <circle id='svg_be8c2f440082a37d_e531' cx='224.14' cy='235.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Norwich' data-id='Norwich'/>\n   <circle id='svg_be8c2f440082a37d_e532' cx='234.57' cy='230.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Nottingham' data-id='Nottingham'/>\n   <circle id='svg_be8c2f440082a37d_e533' cx='231.96' cy='215.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Nuneaton and Bedworth' data-id='Nuneaton and Bedworth'/>\n   <circle id='svg_be8c2f440082a37d_e534' cx='214.66' cy='227.19' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Oadby and Wigston' data-id='Oadby and Wigston'/>\n   <circle id='svg_be8c2f440082a37d_e535' cx='243.66' cy='222.23' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Oldham' data-id='Oldham'/>\n   <circle id='svg_be8c2f440082a37d_e536' cx='192.23' cy='233.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Oxford' data-id='Oxford'/>\n   <circle id='svg_be8c2f440082a37d_e537' cx='242.16' cy='217.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Pembrokeshire' data-id='Pembrokeshire'/>\n   <circle id='svg_be8c2f440082a37d_e538' cx='233.52' cy='220.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Pendle' data-id='Pendle'/>\n   <circle id='svg_be8c2f440082a37d_e539' cx='221.88' cy='204.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Peterborough' data-id='Peterborough'/>\n   <circle id='svg_be8c2f440082a37d_e540' cx='238.86' cy='228.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Plymouth' data-id='Plymouth'/>\n   <circle id='svg_be8c2f440082a37d_e541' cx='215.8' cy='209.8' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Portsmouth' data-id='Portsmouth'/>\n   <circle id='svg_be8c2f440082a37d_e542' cx='226.06' cy='210.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Powys' data-id='Powys'/>\n   <circle id='svg_be8c2f440082a37d_e543' cx='227.3' cy='222.74' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Preston' data-id='Preston'/>\n   <circle id='svg_be8c2f440082a37d_e544' cx='195.99' cy='237.3' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Reading' data-id='Reading'/>\n   <circle id='svg_be8c2f440082a37d_e545' cx='205.35' cy='222.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Redbridge' data-id='Redbridge'/>\n   <circle id='svg_be8c2f440082a37d_e546' cx='256.89' cy='228.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Redcar and Cleveland' data-id='Redcar and Cleveland'/>\n   <circle id='svg_be8c2f440082a37d_e547' cx='222.02' cy='242.8' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Redditch' data-id='Redditch'/>\n   <circle id='svg_be8c2f440082a37d_e548' cx='193.02' cy='227.87' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Reigate and Banstead' data-id='Reigate and Banstead'/>\n   <circle id='svg_be8c2f440082a37d_e549' cx='267.64' cy='223.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rhondda Cynon Taf' data-id='Rhondda Cynon Taf'/>\n   <circle id='svg_be8c2f440082a37d_e550' cx='195.75' cy='219.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ribble Valley' data-id='Ribble Valley'/>\n   <circle id='svg_be8c2f440082a37d_e551' cx='187.21' cy='229.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Richmond upon Thames' data-id='Richmond upon Thames'/>\n   <circle id='svg_be8c2f440082a37d_e552' cx='199.62' cy='234.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Richmondshire' data-id='Richmondshire'/>\n   <circle id='svg_be8c2f440082a37d_e553' cx='243.86' cy='226' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rochdale' data-id='Rochdale'/>\n   <circle id='svg_be8c2f440082a37d_e554' cx='205.16' cy='244.3' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rochford' data-id='Rochford'/>\n   <circle id='svg_be8c2f440082a37d_e555' cx='235.24' cy='210.87' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rossendale' data-id='Rossendale'/>\n   <circle id='svg_be8c2f440082a37d_e556' cx='229.74' cy='231.82' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rother' data-id='Rother'/>\n   <circle id='svg_be8c2f440082a37d_e557' cx='249.88' cy='230.59' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rotherham' data-id='Rotherham'/>\n   <circle id='svg_be8c2f440082a37d_e558' cx='206.82' cy='225.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rugby' data-id='Rugby'/>\n   <circle id='svg_be8c2f440082a37d_e559' cx='194.06' cy='224.58' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Runnymede' data-id='Runnymede'/>\n   <circle id='svg_be8c2f440082a37d_e560' cx='198.3' cy='231.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rushcliffe' data-id='Rushcliffe'/>\n   <circle id='svg_be8c2f440082a37d_e561' cx='198.08' cy='221.97' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rushmoor' data-id='Rushmoor'/>\n   <circle id='svg_be8c2f440082a37d_e562' cx='194.13' cy='210.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rutland' data-id='Rutland'/>\n   <circle id='svg_be8c2f440082a37d_e563' cx='209.23' cy='208.08' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ryedale' data-id='Ryedale'/>\n   <circle id='svg_be8c2f440082a37d_e564' cx='236.14' cy='233.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Salford' data-id='Salford'/>\n   <circle id='svg_be8c2f440082a37d_e565' cx='249.24' cy='229.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sandwell' data-id='Sandwell'/>\n   <circle id='svg_be8c2f440082a37d_e566' cx='241.9' cy='221.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Scarborough' data-id='Scarborough'/>\n   <circle id='svg_be8c2f440082a37d_e567' cx='224.27' cy='225.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sedgemoor' data-id='Sedgemoor'/>\n   <circle id='svg_be8c2f440082a37d_e568' cx='246.5' cy='223.42' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sefton' data-id='Sefton'/>\n   <circle id='svg_be8c2f440082a37d_e569' cx='206.91' cy='205.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Selby' data-id='Selby'/>\n   <circle id='svg_be8c2f440082a37d_e570' cx='201.44' cy='207.43' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sevenoaks' data-id='Sevenoaks'/>\n   <circle id='svg_be8c2f440082a37d_e571' cx='233.11' cy='233.4' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sheffield' data-id='Sheffield'/>\n   <circle id='svg_be8c2f440082a37d_e572' cx='215.46' cy='219.8' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Shropshire' data-id='Shropshire'/>\n   <circle id='svg_be8c2f440082a37d_e573' cx='202.88' cy='204.14' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Slough' data-id='Slough'/>\n   <circle id='svg_be8c2f440082a37d_e574' cx='216.21' cy='242.94' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Solihull' data-id='Solihull'/>\n   <circle id='svg_be8c2f440082a37d_e575' cx='217.94' cy='240.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Somerset West and Taunton' data-id='Somerset West and Taunton'/>\n   <circle id='svg_be8c2f440082a37d_e576' cx='192.09' cy='226.02' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Cambridgeshire' data-id='South Cambridgeshire'/>\n   <circle id='svg_be8c2f440082a37d_e577' cx='212.17' cy='228.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Derbyshire' data-id='South Derbyshire'/>\n   <circle id='svg_be8c2f440082a37d_e578' cx='204.45' cy='235.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Gloucestershire' data-id='South Gloucestershire'/>\n   <circle id='svg_be8c2f440082a37d_e579' cx='213.1' cy='211.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Hams' data-id='South Hams'/>\n   <circle id='svg_be8c2f440082a37d_e580' cx='224.99' cy='217.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Holland' data-id='South Holland'/>\n   <circle id='svg_be8c2f440082a37d_e581' cx='212.16' cy='218.98' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Kesteven' data-id='South Kesteven'/>\n   <circle id='svg_be8c2f440082a37d_e582' cx='204.07' cy='216.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Lakeland' data-id='South Lakeland'/>\n   <circle id='svg_be8c2f440082a37d_e583' cx='204.75' cy='202.86' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Norfolk' data-id='South Norfolk'/>\n   <circle id='svg_be8c2f440082a37d_e584' cx='189.47' cy='220.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Oxfordshire' data-id='South Oxfordshire'/>\n   <circle id='svg_be8c2f440082a37d_e585' cx='215.92' cy='234.76' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Ribble' data-id='South Ribble'/>\n   <circle id='svg_be8c2f440082a37d_e586' cx='214.49' cy='217.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Somerset' data-id='South Somerset'/>\n   <circle id='svg_be8c2f440082a37d_e587' cx='220.33' cy='219.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Staffordshire' data-id='South Staffordshire'/>\n   <circle id='svg_be8c2f440082a37d_e588' cx='259.66' cy='221.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Tyneside' data-id='South Tyneside'/>\n   <circle id='svg_be8c2f440082a37d_e589' cx='217.01' cy='212.83' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Southampton' data-id='Southampton'/>\n   <circle id='svg_be8c2f440082a37d_e590' cx='226.66' cy='215.4' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Southend-on-Sea' data-id='Southend-on-Sea'/>\n   <circle id='svg_be8c2f440082a37d_e591' cx='204.64' cy='213.76' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Southwark' data-id='Southwark'/>\n   <circle id='svg_be8c2f440082a37d_e592' cx='200.31' cy='203.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Spelthorne' data-id='Spelthorne'/>\n   <circle id='svg_be8c2f440082a37d_e593' cx='187.16' cy='218.56' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='St Albans' data-id='St Albans'/>\n   <circle id='svg_be8c2f440082a37d_e594' cx='257.98' cy='226.88' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='St. Helens' data-id='St. Helens'/>\n   <circle id='svg_be8c2f440082a37d_e595' cx='213.89' cy='241.47' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stafford' data-id='Stafford'/>\n   <circle id='svg_be8c2f440082a37d_e596' cx='223.45' cy='208.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Staffordshire Moorlands' data-id='Staffordshire Moorlands'/>\n   <circle id='svg_be8c2f440082a37d_e597' cx='212.5' cy='239.61' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stevenage' data-id='Stevenage'/>\n   <circle id='svg_be8c2f440082a37d_e598' cx='222.79' cy='213.39' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stockport' data-id='Stockport'/>\n   <circle id='svg_be8c2f440082a37d_e599' cx='236.73' cy='226.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stockton-on-Tees' data-id='Stockton-on-Tees'/>\n   <circle id='svg_be8c2f440082a37d_e600' cx='256.97' cy='222.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stoke-on-Trent' data-id='Stoke-on-Trent'/>\n   <circle id='svg_be8c2f440082a37d_e601' cx='200.97' cy='233.79' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stratford-on-Avon' data-id='Stratford-on-Avon'/>\n   <circle id='svg_be8c2f440082a37d_e602' cx='202.8' cy='226.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stroud' data-id='Stroud'/>\n   <circle id='svg_be8c2f440082a37d_e603' cx='264.19' cy='222.21' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sunderland' data-id='Sunderland'/>\n   <circle id='svg_be8c2f440082a37d_e604' cx='190.6' cy='223' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Surrey Heath' data-id='Surrey Heath'/>\n   <circle id='svg_be8c2f440082a37d_e605' cx='201.87' cy='220.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sutton' data-id='Sutton'/>\n   <circle id='svg_be8c2f440082a37d_e606' cx='229.57' cy='228.31' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Swale' data-id='Swale'/>\n   <circle id='svg_be8c2f440082a37d_e607' cx='252.93' cy='222.93' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Swansea' data-id='Swansea'/>\n   <circle id='svg_be8c2f440082a37d_e608' cx='209.69' cy='232.93' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Swindon' data-id='Swindon'/>\n   <circle id='svg_be8c2f440082a37d_e609' cx='245.28' cy='224.11' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tameside' data-id='Tameside'/>\n   <circle id='svg_be8c2f440082a37d_e610' cx='229.62' cy='213.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tamworth' data-id='Tamworth'/>\n   <circle id='svg_be8c2f440082a37d_e611' cx='197.04' cy='212.4' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tandridge' data-id='Tandridge'/>\n   <circle id='svg_be8c2f440082a37d_e612' cx='221.16' cy='209.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Teignbridge' data-id='Teignbridge'/>\n   <circle id='svg_be8c2f440082a37d_e613' cx='236.31' cy='220.46' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Telford and Wrekin' data-id='Telford and Wrekin'/>\n   <circle id='svg_be8c2f440082a37d_e614' cx='256.57' cy='218.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tendring' data-id='Tendring'/>\n   <circle id='svg_be8c2f440082a37d_e615' cx='198.89' cy='226.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Test Valley' data-id='Test Valley'/>\n   <circle id='svg_be8c2f440082a37d_e616' cx='199.61' cy='209.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tewkesbury' data-id='Tewkesbury'/>\n   <circle id='svg_be8c2f440082a37d_e617' cx='250.85' cy='218.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Thanet' data-id='Thanet'/>\n   <circle id='svg_be8c2f440082a37d_e618' cx='195.89' cy='227.19' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Three Rivers' data-id='Three Rivers'/>\n   <circle id='svg_be8c2f440082a37d_e619' cx='210.77' cy='206.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Thurrock' data-id='Thurrock'/>\n   <circle id='svg_be8c2f440082a37d_e620' cx='202.11' cy='236.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tonbridge and Malling' data-id='Tonbridge and Malling'/>\n   <circle id='svg_be8c2f440082a37d_e621' cx='249.66' cy='225.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Torbay' data-id='Torbay'/>\n   <circle id='svg_be8c2f440082a37d_e622' cx='261.07' cy='228.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Torfaen' data-id='Torfaen'/>\n   <circle id='svg_be8c2f440082a37d_e623' cx='228.07' cy='210.62' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Torridge' data-id='Torridge'/>\n   <circle id='svg_be8c2f440082a37d_e624' cx='218.2' cy='230.4' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tower Hamlets' data-id='Tower Hamlets'/>\n   <circle id='svg_be8c2f440082a37d_e625' cx='214.21' cy='212.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Trafford' data-id='Trafford'/>\n   <circle id='svg_be8c2f440082a37d_e626' cx='198.72' cy='236.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tunbridge Wells' data-id='Tunbridge Wells'/>\n   <circle id='svg_be8c2f440082a37d_e627' cx='189.21' cy='229.5' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Uttlesford' data-id='Uttlesford'/>\n   <circle id='svg_be8c2f440082a37d_e628' cx='231.98' cy='231.86' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Vale of Glamorgan' data-id='Vale of Glamorgan'/>\n   <circle id='svg_be8c2f440082a37d_e629' cx='190.3' cy='233.6' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Vale of White Horse' data-id='Vale of White Horse'/>\n   <circle id='svg_be8c2f440082a37d_e630' cx='242.09' cy='225.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wakefield' data-id='Wakefield'/>\n   <circle id='svg_be8c2f440082a37d_e631' cx='245.96' cy='230.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Walsall' data-id='Walsall'/>\n   <circle id='svg_be8c2f440082a37d_e632' cx='211.05' cy='241.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Waltham Forest' data-id='Waltham Forest'/>\n   <circle id='svg_be8c2f440082a37d_e633' cx='186.23' cy='222.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wandsworth' data-id='Wandsworth'/>\n   <circle id='svg_be8c2f440082a37d_e634' cx='217.82' cy='227.91' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Warrington' data-id='Warrington'/>\n   <circle id='svg_be8c2f440082a37d_e635' cx='197.16' cy='233.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Warwick' data-id='Warwick'/>\n   <circle id='svg_be8c2f440082a37d_e636' cx='199.26' cy='238.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Watford' data-id='Watford'/>\n   <circle id='svg_be8c2f440082a37d_e637' cx='189.59' cy='224.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Waverley' data-id='Waverley'/>\n   <circle id='svg_be8c2f440082a37d_e638' cx='205.78' cy='227.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wealden' data-id='Wealden'/>\n   <circle id='svg_be8c2f440082a37d_e639' cx='199.35' cy='229.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Welwyn Hatfield' data-id='Welwyn Hatfield'/>\n   <circle id='svg_be8c2f440082a37d_e640' cx='191.72' cy='232.02' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Berkshire' data-id='West Berkshire'/>\n   <circle id='svg_be8c2f440082a37d_e641' cx='218.39' cy='235.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Devon' data-id='West Devon'/>\n   <circle id='svg_be8c2f440082a37d_e642' cx='227.39' cy='231.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Lancashire' data-id='West Lancashire'/>\n   <circle id='svg_be8c2f440082a37d_e643' cx='224.52' cy='241.53' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Lindsey' data-id='West Lindsey'/>\n   <circle id='svg_be8c2f440082a37d_e644' cx='203.83' cy='210.93' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Northamptonshire' data-id='West Northamptonshire'/>\n   <circle id='svg_be8c2f440082a37d_e645' cx='194.33' cy='237.82' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Oxfordshire' data-id='West Oxfordshire'/>\n   <circle id='svg_be8c2f440082a37d_e646' cx='205.7' cy='212.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Suffolk' data-id='West Suffolk'/>\n   <circle id='svg_be8c2f440082a37d_e647' cx='214.16' cy='222.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Westminster' data-id='Westminster'/>\n   <circle id='svg_be8c2f440082a37d_e648' cx='237.37' cy='222.12' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wigan' data-id='Wigan'/>\n   <circle id='svg_be8c2f440082a37d_e649' cx='204.33' cy='230.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wiltshire' data-id='Wiltshire'/>\n   <circle id='svg_be8c2f440082a37d_e650' cx='191.98' cy='219.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Winchester' data-id='Winchester'/>\n   <circle id='svg_be8c2f440082a37d_e651' cx='186.58' cy='225.21' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Windsor and Maidenhead' data-id='Windsor and Maidenhead'/>\n   <circle id='svg_be8c2f440082a37d_e652' cx='252.72' cy='230.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wirral' data-id='Wirral'/>\n   <circle id='svg_be8c2f440082a37d_e653' cx='192.95' cy='221.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Woking' data-id='Woking'/>\n   <circle id='svg_be8c2f440082a37d_e654' cx='181.74' cy='224.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wokingham' data-id='Wokingham'/>\n   <circle id='svg_be8c2f440082a37d_e655' cx='242.55' cy='230.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wolverhampton' data-id='Wolverhampton'/>\n   <circle id='svg_be8c2f440082a37d_e656' cx='212.28' cy='209.84' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Worcester' data-id='Worcester'/>\n   <circle id='svg_be8c2f440082a37d_e657' cx='219.59' cy='236.46' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Worthing' data-id='Worthing'/>\n   <circle id='svg_be8c2f440082a37d_e658' cx='234.19' cy='214.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wrexham' data-id='Wrexham'/>\n   <circle id='svg_be8c2f440082a37d_e659' cx='209.58' cy='210.47' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wychavon' data-id='Wychavon'/>\n   <circle id='svg_be8c2f440082a37d_e660' cx='244.4' cy='227.84' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wyre' data-id='Wyre'/>\n   <circle id='svg_be8c2f440082a37d_e661' cx='232.75' cy='218.97' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wyre Forest' data-id='Wyre Forest'/>\n   <circle id='svg_be8c2f440082a37d_e662' cx='202.05' cy='231.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='York' data-id='York'/>\n   <circle id='svg_be8c2f440082a37d_e663' cx='246.48' cy='175.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Adur' data-id='Adur'/>\n   <circle id='svg_be8c2f440082a37d_e664' cx='275.09' cy='159.19' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Allerdale' data-id='Allerdale'/>\n   <circle id='svg_be8c2f440082a37d_e665' cx='261.63' cy='162.61' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Amber Valley' data-id='Amber Valley'/>\n   <circle id='svg_be8c2f440082a37d_e666' cx='241.29' cy='171.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Arun' data-id='Arun'/>\n   <circle id='svg_be8c2f440082a37d_e667' cx='273.03' cy='159.5' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ashfield' data-id='Ashfield'/>\n   <circle id='svg_be8c2f440082a37d_e668' cx='246.76' cy='181.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ashford' data-id='Ashford'/>\n   <circle id='svg_be8c2f440082a37d_e669' cx='237.2' cy='181.73' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Babergh' data-id='Babergh'/>\n   <circle id='svg_be8c2f440082a37d_e670' cx='224.27' cy='152.56' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barking and Dagenham' data-id='Barking and Dagenham'/>\n   <circle id='svg_be8c2f440082a37d_e671' cx='221.02' cy='150.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barnet' data-id='Barnet'/>\n   <circle id='svg_be8c2f440082a37d_e672' cx='283.24' cy='169.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barnsley' data-id='Barnsley'/>\n   <circle id='svg_be8c2f440082a37d_e673' cx='268.31' cy='166.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barrow-in-Furness' data-id='Barrow-in-Furness'/>\n   <circle id='svg_be8c2f440082a37d_e674' cx='256.25' cy='153.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Basildon' data-id='Basildon'/>\n   <circle id='svg_be8c2f440082a37d_e675' cx='230.91' cy='163.73' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Basingstoke and Deane' data-id='Basingstoke and Deane'/>\n   <circle id='svg_be8c2f440082a37d_e676' cx='265.93' cy='172.82' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bassetlaw' data-id='Bassetlaw'/>\n   <circle id='svg_be8c2f440082a37d_e677' cx='204.95' cy='178.02' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bath and North East Somerset' data-id='Bath and North East Somerset'/>\n   <circle id='svg_be8c2f440082a37d_e678' cx='230.82' cy='159.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bedford' data-id='Bedford'/>\n   <circle id='svg_be8c2f440082a37d_e679' cx='220.43' cy='155.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bexley' data-id='Bexley'/>\n   <circle id='svg_be8c2f440082a37d_e680' cx='224.3' cy='183.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Birmingham' data-id='Birmingham'/>\n   <circle id='svg_be8c2f440082a37d_e681' cx='268.53' cy='172.03' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blaby' data-id='Blaby'/>\n   <circle id='svg_be8c2f440082a37d_e682' cx='290.26' cy='169.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blackburn with Darwen' data-id='Blackburn with Darwen'/>\n   <circle id='svg_be8c2f440082a37d_e683' cx='319.27' cy='169.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blackpool' data-id='Blackpool'/>\n   <circle id='svg_be8c2f440082a37d_e684' cx='321.54' cy='168.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blaenau Gwent' data-id='Blaenau Gwent'/>\n   <circle id='svg_be8c2f440082a37d_e685' cx='260.25' cy='167.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bolsover' data-id='Bolsover'/>\n   <circle id='svg_be8c2f440082a37d_e686' cx='268.23' cy='177.58' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bolton' data-id='Bolton'/>\n   <circle id='svg_be8c2f440082a37d_e687' cx='267.33' cy='165.14' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Boston' data-id='Boston'/>\n   <circle id='svg_be8c2f440082a37d_e688' cx='231.82' cy='180.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bournemouth, Christchurch and Poole' data-id='Bournemouth, Christchurch and Poole'/>\n   <circle id='svg_be8c2f440082a37d_e689' cx='219.7' cy='183.23' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bracknell Forest' data-id='Bracknell Forest'/>\n   <circle id='svg_be8c2f440082a37d_e690' cx='252.71' cy='186.5' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bradford' data-id='Bradford'/>\n   <circle id='svg_be8c2f440082a37d_e691' cx='224.07' cy='169.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Braintree' data-id='Braintree'/>\n   <circle id='svg_be8c2f440082a37d_e692' cx='251.5' cy='164.69' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Breckland' data-id='Breckland'/>\n   <circle id='svg_be8c2f440082a37d_e693' cx='208.06' cy='167.31' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Brent' data-id='Brent'/>\n   <circle id='svg_be8c2f440082a37d_e694' cx='234.48' cy='152.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Brentwood' data-id='Brentwood'/>\n   <circle id='svg_be8c2f440082a37d_e695' cx='277.47' cy='173.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bridgend' data-id='Bridgend'/>\n   <circle id='svg_be8c2f440082a37d_e696' cx='222.35' cy='163.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Brighton and Hove' data-id='Brighton and Hove'/>\n   <circle id='svg_be8c2f440082a37d_e697' cx='199.56' cy='175.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bristol' data-id='Bristol'/>\n   <circle id='svg_be8c2f440082a37d_e698' cx='250.23' cy='178.3' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Broadland' data-id='Broadland'/>\n   <circle id='svg_be8c2f440082a37d_e699' cx='217.17' cy='157.62' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bromley' data-id='Bromley'/>\n   <circle id='svg_be8c2f440082a37d_e700' cx='228.83' cy='155.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bromsgrove' data-id='Bromsgrove'/>\n   <circle id='svg_be8c2f440082a37d_e701' cx='236.03' cy='150.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Broxbourne' data-id='Broxbourne'/>\n   <circle id='svg_be8c2f440082a37d_e702' cx='228.52' cy='164.5' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Broxtowe' data-id='Broxtowe'/>\n   <circle id='svg_be8c2f440082a37d_e703' cx='203.58' cy='181.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Buckinghamshire' data-id='Buckinghamshire'/>\n   <circle id='svg_be8c2f440082a37d_e704' cx='249.23' cy='163.88' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Burnley' data-id='Burnley'/>\n   <circle id='svg_be8c2f440082a37d_e705' cx='254.87' cy='164.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bury' data-id='Bury'/>\n   <circle id='svg_be8c2f440082a37d_e706' cx='269.75' cy='179.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Caerphilly' data-id='Caerphilly'/>\n   <circle id='svg_be8c2f440082a37d_e707' cx='246.52' cy='154.83' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Calderdale' data-id='Calderdale'/>\n   <circle id='svg_be8c2f440082a37d_e708' cx='191.87' cy='172.6' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cambridge' data-id='Cambridge'/>\n   <circle id='svg_be8c2f440082a37d_e709' cx='200.73' cy='166.4' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Camden' data-id='Camden'/>\n   <circle id='svg_be8c2f440082a37d_e710' cx='255.55' cy='168.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cannock Chase' data-id='Cannock Chase'/>\n   <circle id='svg_be8c2f440082a37d_e711' cx='203.38' cy='169.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Canterbury' data-id='Canterbury'/>\n   <circle id='svg_be8c2f440082a37d_e712' cx='206.9' cy='169.76' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cardiff' data-id='Cardiff'/>\n   <circle id='svg_be8c2f440082a37d_e713' cx='251.44' cy='172.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Carlisle' data-id='Carlisle'/>\n   <circle id='svg_be8c2f440082a37d_e714' cx='301.26' cy='168.87' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Carmarthenshire' data-id='Carmarthenshire'/>\n   <circle id='svg_be8c2f440082a37d_e715' cx='223.03' cy='165.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Castle Point' data-id='Castle Point'/>\n   <circle id='svg_be8c2f440082a37d_e716' cx='219.31' cy='162.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Central Bedfordshire' data-id='Central Bedfordshire'/>\n   <circle id='svg_be8c2f440082a37d_e717' cx='224.49' cy='166.65' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ceredigion' data-id='Ceredigion'/>\n   <circle id='svg_be8c2f440082a37d_e718' cx='231.01' cy='154.37' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Charnwood' data-id='Charnwood'/>\n   <circle id='svg_be8c2f440082a37d_e719' cx='219.15' cy='157.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chelmsford' data-id='Chelmsford'/>\n   <circle id='svg_be8c2f440082a37d_e720' cx='213.85' cy='168.3' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cheltenham' data-id='Cheltenham'/>\n   <circle id='svg_be8c2f440082a37d_e721' cx='232.95' cy='167.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cherwell' data-id='Cherwell'/>\n   <circle id='svg_be8c2f440082a37d_e722' cx='234.7' cy='164.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cheshire East' data-id='Cheshire East'/>\n   <circle id='svg_be8c2f440082a37d_e723' cx='234.2' cy='172' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cheshire West and Chester' data-id='Cheshire West and Chester'/>\n   <circle id='svg_be8c2f440082a37d_e724' cx='273.42' cy='172.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chesterfield' data-id='Chesterfield'/>\n   <circle id='svg_be8c2f440082a37d_e725' cx='221.06' cy='186.27' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chichester' data-id='Chichester'/>\n   <circle id='svg_be8c2f440082a37d_e726' cx='267.59' cy='159.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chorley' data-id='Chorley'/>\n   <circle id='svg_be8c2f440082a37d_e727' cx='154.04' cy='168.53' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='City of London' data-id='City of London'/>\n   <circle id='svg_be8c2f440082a37d_e728' cx='234.73' cy='174.39' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Colchester' data-id='Colchester'/>\n   <circle id='svg_be8c2f440082a37d_e729' cx='273.98' cy='161.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Conwy' data-id='Conwy'/>\n   <circle id='svg_be8c2f440082a37d_e730' cx='284.86' cy='166.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Copeland' data-id='Copeland'/>\n   <circle id='svg_be8c2f440082a37d_e731' cx='251.4' cy='162' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cornwall' data-id='Cornwall'/>\n   <circle id='svg_be8c2f440082a37d_e732' cx='229.9' cy='150.79' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cotswold' data-id='Cotswold'/>\n   <circle id='svg_be8c2f440082a37d_e733' cx='239.6' cy='161' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='County Durham' data-id='County Durham'/>\n   <circle id='svg_be8c2f440082a37d_e734' cx='220.75' cy='160.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Coventry' data-id='Coventry'/>\n   <circle id='svg_be8c2f440082a37d_e735' cx='251.67' cy='175.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Craven' data-id='Craven'/>\n   <circle id='svg_be8c2f440082a37d_e736' cx='254.49' cy='152.79' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Crawley' data-id='Crawley'/>\n   <circle id='svg_be8c2f440082a37d_e737' cx='211.24' cy='163.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Croydon' data-id='Croydon'/>\n   <circle id='svg_be8c2f440082a37d_e738' cx='222.78' cy='154.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dacorum' data-id='Dacorum'/>\n   <circle id='svg_be8c2f440082a37d_e739' cx='241.84' cy='182.87' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Darlington' data-id='Darlington'/>\n   <circle id='svg_be8c2f440082a37d_e740' cx='219' cy='176.19' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dartford' data-id='Dartford'/>\n   <circle id='svg_be8c2f440082a37d_e741' cx='248.2' cy='172.12' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Denbighshire' data-id='Denbighshire'/>\n   <circle id='svg_be8c2f440082a37d_e742' cx='241.24' cy='157.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Derby' data-id='Derby'/>\n   <circle id='svg_be8c2f440082a37d_e743' cx='218.62' cy='185.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Derbyshire Dales' data-id='Derbyshire Dales'/>\n   <circle id='svg_be8c2f440082a37d_e744' cx='278.46' cy='162.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Doncaster' data-id='Doncaster'/>\n   <circle id='svg_be8c2f440082a37d_e745' cx='241.02' cy='175.83' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dorset' data-id='Dorset'/>\n   <circle id='svg_be8c2f440082a37d_e746' cx='301.26' cy='168.13' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dover' data-id='Dover'/>\n   <circle id='svg_be8c2f440082a37d_e747' cx='254.2' cy='170.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dudley' data-id='Dudley'/>\n   <circle id='svg_be8c2f440082a37d_e748' cx='199.53' cy='162.69' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ealing' data-id='Ealing'/>\n   <circle id='svg_be8c2f440082a37d_e749' cx='230.16' cy='168.39' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Cambridgeshire' data-id='East Cambridgeshire'/>\n   <circle id='svg_be8c2f440082a37d_e750' cx='236.31' cy='177.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Devon' data-id='East Devon'/>\n   <circle id='svg_be8c2f440082a37d_e751' cx='211.9' cy='179.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Hampshire' data-id='East Hampshire'/>\n   <circle id='svg_be8c2f440082a37d_e752' cx='211.9' cy='157.06' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Hertfordshire' data-id='East Hertfordshire'/>\n   <circle id='svg_be8c2f440082a37d_e753' cx='299.02' cy='169.56' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Lindsey' data-id='East Lindsey'/>\n   <circle id='svg_be8c2f440082a37d_e754' cx='244.42' cy='168.06' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Riding of Yorkshire' data-id='East Riding of Yorkshire'/>\n   <circle id='svg_be8c2f440082a37d_e755' cx='243.68' cy='168.98' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Staffordshire' data-id='East Staffordshire'/>\n   <circle id='svg_be8c2f440082a37d_e756' cx='274.88' cy='169.46' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Suffolk' data-id='East Suffolk'/>\n   <circle id='svg_be8c2f440082a37d_e757' cx='252.26' cy='180.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Eastbourne' data-id='Eastbourne'/>\n   <circle id='svg_be8c2f440082a37d_e758' cx='213.72' cy='182.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Eastleigh' data-id='Eastleigh'/>\n   <circle id='svg_be8c2f440082a37d_e759' cx='260.66' cy='172.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Eden' data-id='Eden'/>\n   <circle id='svg_be8c2f440082a37d_e760' cx='225.22' cy='175.13' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Elmbridge' data-id='Elmbridge'/>\n   <circle id='svg_be8c2f440082a37d_e761' cx='219.24' cy='180.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Enfield' data-id='Enfield'/>\n   <circle id='svg_be8c2f440082a37d_e762' cx='218.26' cy='161.59' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Epping Forest' data-id='Epping Forest'/>\n   <circle id='svg_be8c2f440082a37d_e763' cx='214.78' cy='179.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Epsom and Ewell' data-id='Epsom and Ewell'/>\n   <circle id='svg_be8c2f440082a37d_e764' cx='262.28' cy='160.47' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Erewash' data-id='Erewash'/>\n   <circle id='svg_be8c2f440082a37d_e765' cx='206.6' cy='176.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Exeter' data-id='Exeter'/>\n   <circle id='svg_be8c2f440082a37d_e766' cx='222.94' cy='183.46' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Fareham' data-id='Fareham'/>\n   <circle id='svg_be8c2f440082a37d_e767' cx='245.17' cy='162.98' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Fenland' data-id='Fenland'/>\n   <circle id='svg_be8c2f440082a37d_e768' cx='249.3' cy='180.42' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Flintshire' data-id='Flintshire'/>\n   <circle id='svg_be8c2f440082a37d_e769' cx='274.12' cy='164.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Folkestone and Hythe' data-id='Folkestone and Hythe'/>\n   <circle id='svg_be8c2f440082a37d_e770' cx='269.56' cy='157.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Forest of Dean' data-id='Forest of Dean'/>\n   <circle id='svg_be8c2f440082a37d_e771' cx='218.66' cy='167.12' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Fylde' data-id='Fylde'/>\n   <circle id='svg_be8c2f440082a37d_e772' cx='253.55' cy='156.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gateshead' data-id='Gateshead'/>\n   <circle id='svg_be8c2f440082a37d_e773' cx='228.03' cy='153.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gedling' data-id='Gedling'/>\n   <circle id='svg_be8c2f440082a37d_e774' cx='220.44' cy='178.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gloucester' data-id='Gloucester'/>\n   <circle id='svg_be8c2f440082a37d_e775' cx='236.04' cy='186.69' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gosport' data-id='Gosport'/>\n   <circle id='svg_be8c2f440082a37d_e776' cx='206.21' cy='173.06' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gravesham' data-id='Gravesham'/>\n   <circle id='svg_be8c2f440082a37d_e777' cx='271.4' cy='177.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Great Yarmouth' data-id='Great Yarmouth'/>\n   <circle id='svg_be8c2f440082a37d_e778' cx='212.35' cy='175.86' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Greenwich' data-id='Greenwich'/>\n   <circle id='svg_be8c2f440082a37d_e779' cx='189.15' cy='167.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Guildford' data-id='Guildford'/>\n   <circle id='svg_be8c2f440082a37d_e780' cx='225.66' cy='179.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gwynedd' data-id='Gwynedd'/>\n   <circle id='svg_be8c2f440082a37d_e781' cx='193.4' cy='167.83' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hackney' data-id='Hackney'/>\n   <circle id='svg_be8c2f440082a37d_e782' cx='276.83' cy='172.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Halton' data-id='Halton'/>\n   <circle id='svg_be8c2f440082a37d_e783' cx='214.68' cy='160.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hambleton' data-id='Hambleton'/>\n   <circle id='svg_be8c2f440082a37d_e784' cx='197.06' cy='169.56' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hammersmith and Fulham' data-id='Hammersmith and Fulham'/>\n   <circle id='svg_be8c2f440082a37d_e785' cx='229.82' cy='159.82' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harborough' data-id='Harborough'/>\n   <circle id='svg_be8c2f440082a37d_e786' cx='194.04' cy='170.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Haringey' data-id='Haringey'/>\n   <circle id='svg_be8c2f440082a37d_e787' cx='257.38' cy='178.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harlow' data-id='Harlow'/>\n   <circle id='svg_be8c2f440082a37d_e788' cx='237.53' cy='163.19' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harrogate' data-id='Harrogate'/>\n   <circle id='svg_be8c2f440082a37d_e789' cx='199.29' cy='172.98' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harrow' data-id='Harrow'/>\n   <circle id='svg_be8c2f440082a37d_e790' cx='214.92' cy='172.14' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hart' data-id='Hart'/>\n   <circle id='svg_be8c2f440082a37d_e791' cx='277' cy='163.36' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hartlepool' data-id='Hartlepool'/>\n   <circle id='svg_be8c2f440082a37d_e792' cx='252.89' cy='166.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hastings' data-id='Hastings'/>\n   <circle id='svg_be8c2f440082a37d_e793' cx='261.89' cy='165' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Havant' data-id='Havant'/>\n   <circle id='svg_be8c2f440082a37d_e794' cx='238.19' cy='174.69' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Havering' data-id='Havering'/>\n   <circle id='svg_be8c2f440082a37d_e795' cx='249.25' cy='174.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Herefordshire' data-id='Herefordshire'/>\n   <circle id='svg_be8c2f440082a37d_e796' cx='222.73' cy='172.21' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hertsmere' data-id='Hertsmere'/>\n   <circle id='svg_be8c2f440082a37d_e797' cx='247.7' cy='155.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='High Peak' data-id='High Peak'/>\n   <circle id='svg_be8c2f440082a37d_e798' cx='216.74' cy='174.53' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hillingdon' data-id='Hillingdon'/>\n   <circle id='svg_be8c2f440082a37d_e799' cx='259.68' cy='160.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hinckley and Bosworth' data-id='Hinckley and Bosworth'/>\n   <circle id='svg_be8c2f440082a37d_e800' cx='211.49' cy='170.62' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Horsham' data-id='Horsham'/>\n   <circle id='svg_be8c2f440082a37d_e801' cx='205.07' cy='164.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hounslow' data-id='Hounslow'/>\n   <circle id='svg_be8c2f440082a37d_e802' cx='232.63' cy='186.46' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Huntingdonshire' data-id='Huntingdonshire'/>\n   <circle id='svg_be8c2f440082a37d_e803' cx='281.75' cy='167.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hyndburn' data-id='Hyndburn'/>\n   <circle id='svg_be8c2f440082a37d_e804' cx='247.54' cy='177.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ipswich' data-id='Ipswich'/>\n   <circle id='svg_be8c2f440082a37d_e805' cx='255.52' cy='160.35' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Isle of Anglesey' data-id='Isle of Anglesey'/>\n   <circle id='svg_be8c2f440082a37d_e806' cx='273.23' cy='178.11' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Isle of Wight' data-id='Isle of Wight'/>\n   <circle id='svg_be8c2f440082a37d_e807' cx='389.23' cy='168.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Isles of Scilly' data-id='Isles of Scilly'/>\n   <circle id='svg_be8c2f440082a37d_e808' cx='200.41' cy='159.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Islington' data-id='Islington'/>\n   <circle id='svg_be8c2f440082a37d_e809' cx='203.28' cy='162.91' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kensington and Chelsea' data-id='Kensington and Chelsea'/>\n   <circle id='svg_be8c2f440082a37d_e810' cx='272.65' cy='165.21' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='King&amp;#39;s Lynn and West Norfolk' data-id='King’s Lynn and West Norfolk'/>\n   <circle id='svg_be8c2f440082a37d_e811' cx='235.27' cy='155.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kingston upon Hull' data-id='Kingston upon Hull'/>\n   <circle id='svg_be8c2f440082a37d_e812' cx='204.1' cy='174.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kingston upon Thames' data-id='Kingston upon Thames'/>\n   <circle id='svg_be8c2f440082a37d_e813' cx='242.71' cy='178.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kirklees' data-id='Kirklees'/>\n   <circle id='svg_be8c2f440082a37d_e814' cx='256.44' cy='168.47' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Knowsley' data-id='Knowsley'/>\n   <circle id='svg_be8c2f440082a37d_e815' cx='187.95' cy='170.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lambeth' data-id='Lambeth'/>\n   <circle id='svg_be8c2f440082a37d_e816' cx='230.99' cy='173.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lancaster' data-id='Lancaster'/>\n   <circle id='svg_be8c2f440082a37d_e817' cx='215.48' cy='182.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Leeds' data-id='Leeds'/>\n   <circle id='svg_be8c2f440082a37d_e818' cx='212.68' cy='161.98' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Leicester' data-id='Leicester'/>\n   <circle id='svg_be8c2f440082a37d_e819' cx='243.79' cy='149.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lewes' data-id='Lewes'/>\n   <circle id='svg_be8c2f440082a37d_e820' cx='198.7' cy='167.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lewisham' data-id='Lewisham'/>\n   <circle id='svg_be8c2f440082a37d_e821' cx='247.78' cy='161.23' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lichfield' data-id='Lichfield'/>\n   <circle id='svg_be8c2f440082a37d_e822' cx='210.39' cy='177.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lincoln' data-id='Lincoln'/>\n   <circle id='svg_be8c2f440082a37d_e823' cx='219.4' cy='153.34' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Liverpool' data-id='Liverpool'/>\n   <circle id='svg_be8c2f440082a37d_e824' cx='221.61' cy='167.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Luton' data-id='Luton'/>\n   <circle id='svg_be8c2f440082a37d_e825' cx='240.55' cy='184.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Maidstone' data-id='Maidstone'/>\n   <circle id='svg_be8c2f440082a37d_e826' cx='232.22' cy='170.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Maldon' data-id='Maldon'/>\n   <circle id='svg_be8c2f440082a37d_e827' cx='270.5' cy='168.11' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Malvern Hills' data-id='Malvern Hills'/>\n   <circle id='svg_be8c2f440082a37d_e828' cx='206.87' cy='163.21' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Manchester' data-id='Manchester'/>\n   <circle id='svg_be8c2f440082a37d_e829' cx='275.5' cy='167.56' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mansfield' data-id='Mansfield'/>\n   <circle id='svg_be8c2f440082a37d_e830' cx='256.54' cy='175.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Medway' data-id='Medway'/>\n   <circle id='svg_be8c2f440082a37d_e831' cx='245.08' cy='183.23' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Melton' data-id='Melton'/>\n   <circle id='svg_be8c2f440082a37d_e832' cx='275.45' cy='177.54' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mendip' data-id='Mendip'/>\n   <circle id='svg_be8c2f440082a37d_e833' cx='330.86' cy='168.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Merthyr Tydfil' data-id='Merthyr Tydfil'/>\n   <circle id='svg_be8c2f440082a37d_e834' cx='194.75' cy='164.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Merton' data-id='Merton'/>\n   <circle id='svg_be8c2f440082a37d_e835' cx='252.27' cy='159.6' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mid Devon' data-id='Mid Devon'/>\n   <circle id='svg_be8c2f440082a37d_e836' cx='250.87' cy='183.63' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mid Suffolk' data-id='Mid Suffolk'/>\n   <circle id='svg_be8c2f440082a37d_e837' cx='218.49' cy='152.59' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mid Sussex' data-id='Mid Sussex'/>\n   <circle id='svg_be8c2f440082a37d_e838' cx='247.06' cy='149.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Middlesbrough' data-id='Middlesbrough'/>\n   <circle id='svg_be8c2f440082a37d_e839' cx='235.95' cy='169.56' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Milton Keynes' data-id='Milton Keynes'/>\n   <circle id='svg_be8c2f440082a37d_e840' cx='233.14' cy='181.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mole Valley' data-id='Mole Valley'/>\n   <circle id='svg_be8c2f440082a37d_e841' cx='245.79' cy='152.53' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Monmouthshire' data-id='Monmouthshire'/>\n   <circle id='svg_be8c2f440082a37d_e842' cx='289.6' cy='171.54' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Neath Port Talbot' data-id='Neath Port Talbot'/>\n   <circle id='svg_be8c2f440082a37d_e843' cx='228.92' cy='177.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='New Forest' data-id='New Forest'/>\n   <circle id='svg_be8c2f440082a37d_e844' cx='242.24' cy='173.64' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newark and Sherwood' data-id='Newark and Sherwood'/>\n   <circle id='svg_be8c2f440082a37d_e845' cx='207.37' cy='180.34' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newcastle upon Tyne' data-id='Newcastle upon Tyne'/>\n   <circle id='svg_be8c2f440082a37d_e846' cx='220.27' cy='174.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newcastle-under-Lyme' data-id='Newcastle-under-Lyme'/>\n   <circle id='svg_be8c2f440082a37d_e847' cx='197.46' cy='176.6' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newham' data-id='Newham'/>\n   <circle id='svg_be8c2f440082a37d_e848' cx='257.97' cy='165.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newport' data-id='Newport'/>\n   <circle id='svg_be8c2f440082a37d_e849' cx='256.62' cy='161' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Devon' data-id='North Devon'/>\n   <circle id='svg_be8c2f440082a37d_e850' cx='267.06' cy='175.74' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North East Derbyshire' data-id='North East Derbyshire'/>\n   <circle id='svg_be8c2f440082a37d_e851' cx='280.37' cy='173.13' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North East Lincolnshire' data-id='North East Lincolnshire'/>\n   <circle id='svg_be8c2f440082a37d_e852' cx='215' cy='156.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Hertfordshire' data-id='North Hertfordshire'/>\n   <circle id='svg_be8c2f440082a37d_e853' cx='233.11' cy='176.84' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Kesteven' data-id='North Kesteven'/>\n   <circle id='svg_be8c2f440082a37d_e854' cx='254.04' cy='161.64' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Lincolnshire' data-id='North Lincolnshire'/>\n   <circle id='svg_be8c2f440082a37d_e855' cx='268.57' cy='160.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Norfolk' data-id='North Norfolk'/>\n   <circle id='svg_be8c2f440082a37d_e856' cx='247.76' cy='182.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Northamptonshire' data-id='North Northamptonshire'/>\n   <circle id='svg_be8c2f440082a37d_e857' cx='268.66' cy='174.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Somerset' data-id='North Somerset'/>\n   <circle id='svg_be8c2f440082a37d_e858' cx='247.23' cy='166.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Tyneside' data-id='North Tyneside'/>\n   <circle id='svg_be8c2f440082a37d_e859' cx='259.33' cy='171.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Warwickshire' data-id='North Warwickshire'/>\n   <circle id='svg_be8c2f440082a37d_e860' cx='231.66' cy='156.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North West Leicestershire' data-id='North West Leicestershire'/>\n   <circle id='svg_be8c2f440082a37d_e861' cx='252.7' cy='149.6' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Northumberland' data-id='Northumberland'/>\n   <circle id='svg_be8c2f440082a37d_e862' cx='233.11' cy='157.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Norwich' data-id='Norwich'/>\n   <circle id='svg_be8c2f440082a37d_e863' cx='228.65' cy='173.11' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Nottingham' data-id='Nottingham'/>\n   <circle id='svg_be8c2f440082a37d_e864' cx='241.29' cy='162.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Nuneaton and Bedworth' data-id='Nuneaton and Bedworth'/>\n   <circle id='svg_be8c2f440082a37d_e865' cx='236.29' cy='167.79' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Oadby and Wigston' data-id='Oadby and Wigston'/>\n   <circle id='svg_be8c2f440082a37d_e866' cx='240.65' cy='166.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Oldham' data-id='Oldham'/>\n   <circle id='svg_be8c2f440082a37d_e867' cx='178.34' cy='168.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Oxford' data-id='Oxford'/>\n   <circle id='svg_be8c2f440082a37d_e868' cx='266.42' cy='162.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Pembrokeshire' data-id='Pembrokeshire'/>\n   <circle id='svg_be8c2f440082a37d_e869' cx='253.49' cy='175.98' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Pendle' data-id='Pendle'/>\n   <circle id='svg_be8c2f440082a37d_e870' cx='254.02' cy='180.43' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Peterborough' data-id='Peterborough'/>\n   <circle id='svg_be8c2f440082a37d_e871' cx='240.32' cy='151.88' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Plymouth' data-id='Plymouth'/>\n   <circle id='svg_be8c2f440082a37d_e872' cx='223.12' cy='174.42' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Portsmouth' data-id='Portsmouth'/>\n   <circle id='svg_be8c2f440082a37d_e873' cx='250.16' cy='189.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Powys' data-id='Powys'/>\n   <circle id='svg_be8c2f440082a37d_e874' cx='234.55' cy='184.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Preston' data-id='Preston'/>\n   <circle id='svg_be8c2f440082a37d_e875' cx='203.08' cy='175.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Reading' data-id='Reading'/>\n   <circle id='svg_be8c2f440082a37d_e876' cx='204.07' cy='168.12' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Redbridge' data-id='Redbridge'/>\n   <circle id='svg_be8c2f440082a37d_e877' cx='270.75' cy='162.14' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Redcar and Cleveland' data-id='Redcar and Cleveland'/>\n   <circle id='svg_be8c2f440082a37d_e878' cx='235.77' cy='179.06' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Redditch' data-id='Redditch'/>\n   <circle id='svg_be8c2f440082a37d_e879' cx='212.99' cy='168.97' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Reigate and Banstead' data-id='Reigate and Banstead'/>\n   <circle id='svg_be8c2f440082a37d_e880' cx='287.69' cy='165.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rhondda Cynon Taf' data-id='Rhondda Cynon Taf'/>\n   <circle id='svg_be8c2f440082a37d_e881' cx='207' cy='156.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ribble Valley' data-id='Ribble Valley'/>\n   <circle id='svg_be8c2f440082a37d_e882' cx='205.96' cy='166.47' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Richmond upon Thames' data-id='Richmond upon Thames'/>\n   <circle id='svg_be8c2f440082a37d_e883' cx='230.08' cy='186.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Richmondshire' data-id='Richmondshire'/>\n   <circle id='svg_be8c2f440082a37d_e884' cx='261.86' cy='174.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rochdale' data-id='Rochdale'/>\n   <circle id='svg_be8c2f440082a37d_e885' cx='244.9' cy='158' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rochford' data-id='Rochford'/>\n   <circle id='svg_be8c2f440082a37d_e886' cx='250.16' cy='167.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rossendale' data-id='Rossendale'/>\n   <circle id='svg_be8c2f440082a37d_e887' cx='243.2' cy='159.42' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rother' data-id='Rother'/>\n   <circle id='svg_be8c2f440082a37d_e888' cx='277.74' cy='165.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rotherham' data-id='Rotherham'/>\n   <circle id='svg_be8c2f440082a37d_e889' cx='231.31' cy='166.03' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rugby' data-id='Rugby'/>\n   <circle id='svg_be8c2f440082a37d_e890' cx='190.39' cy='169.5' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Runnymede' data-id='Runnymede'/>\n   <circle id='svg_be8c2f440082a37d_e891' cx='212.15' cy='172.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rushcliffe' data-id='Rushcliffe'/>\n   <circle id='svg_be8c2f440082a37d_e892' cx='214.27' cy='175.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rushmoor' data-id='Rushmoor'/>\n   <circle id='svg_be8c2f440082a37d_e893' cx='212.34' cy='158.61' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rutland' data-id='Rutland'/>\n   <circle id='svg_be8c2f440082a37d_e894' cx='223.94' cy='161.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ryedale' data-id='Ryedale'/>\n   <circle id='svg_be8c2f440082a37d_e895' cx='218.41' cy='170.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Salford' data-id='Salford'/>\n   <circle id='svg_be8c2f440082a37d_e896' cx='238.76' cy='179.22' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sandwell' data-id='Sandwell'/>\n   <circle id='svg_be8c2f440082a37d_e897' cx='290' cy='168.47' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Scarborough' data-id='Scarborough'/>\n   <circle id='svg_be8c2f440082a37d_e898' cx='231.04' cy='184.74' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sedgemoor' data-id='Sedgemoor'/>\n   <circle id='svg_be8c2f440082a37d_e899' cx='277.89' cy='169.73' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sefton' data-id='Sefton'/>\n   <circle id='svg_be8c2f440082a37d_e900' cx='226.46' cy='170.87' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Selby' data-id='Selby'/>\n   <circle id='svg_be8c2f440082a37d_e901' cx='222.03' cy='158.46' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sevenoaks' data-id='Sevenoaks'/>\n   <circle id='svg_be8c2f440082a37d_e902' cx='225.7' cy='162.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sheffield' data-id='Sheffield'/>\n   <circle id='svg_be8c2f440082a37d_e903' cx='244.51' cy='178' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Shropshire' data-id='Shropshire'/>\n   <circle id='svg_be8c2f440082a37d_e904' cx='206.51' cy='159.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Slough' data-id='Slough'/>\n   <circle id='svg_be8c2f440082a37d_e905' cx='251.46' cy='151.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Solihull' data-id='Solihull'/>\n   <circle id='svg_be8c2f440082a37d_e906' cx='249.27' cy='152.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Somerset West and Taunton' data-id='Somerset West and Taunton'/>\n   <circle id='svg_be8c2f440082a37d_e907' cx='222.07' cy='181.47' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Cambridgeshire' data-id='South Cambridgeshire'/>\n   <circle id='svg_be8c2f440082a37d_e908' cx='237.79' cy='172.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Derbyshire' data-id='South Derbyshire'/>\n   <circle id='svg_be8c2f440082a37d_e909' cx='225.56' cy='158.3' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Gloucestershire' data-id='South Gloucestershire'/>\n   <circle id='svg_be8c2f440082a37d_e910' cx='250' cy='147.39' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Hams' data-id='South Hams'/>\n   <circle id='svg_be8c2f440082a37d_e911' cx='246.38' cy='165.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Holland' data-id='South Holland'/>\n   <circle id='svg_be8c2f440082a37d_e912' cx='245.44' cy='173.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Kesteven' data-id='South Kesteven'/>\n   <circle id='svg_be8c2f440082a37d_e913' cx='214.91' cy='164.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Lakeland' data-id='South Lakeland'/>\n   <circle id='svg_be8c2f440082a37d_e914' cx='246.23' cy='186.37' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Norfolk' data-id='South Norfolk'/>\n   <circle id='svg_be8c2f440082a37d_e915' cx='208.29' cy='173.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Oxfordshire' data-id='South Oxfordshire'/>\n   <circle id='svg_be8c2f440082a37d_e916' cx='235.93' cy='160.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Ribble' data-id='South Ribble'/>\n   <circle id='svg_be8c2f440082a37d_e917' cx='267.34' cy='170.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Somerset' data-id='South Somerset'/>\n   <circle id='svg_be8c2f440082a37d_e918' cx='242.39' cy='154.91' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Staffordshire' data-id='South Staffordshire'/>\n   <circle id='svg_be8c2f440082a37d_e919' cx='250.48' cy='156.4' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Tyneside' data-id='South Tyneside'/>\n   <circle id='svg_be8c2f440082a37d_e920' cx='217.64' cy='179.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Southampton' data-id='Southampton'/>\n   <circle id='svg_be8c2f440082a37d_e921' cx='259.78' cy='177.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Southend-on-Sea' data-id='Southend-on-Sea'/>\n   <circle id='svg_be8c2f440082a37d_e922' cx='185.34' cy='167.69' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Southwark' data-id='Southwark'/>\n   <circle id='svg_be8c2f440082a37d_e923' cx='234.19' cy='162.34' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Spelthorne' data-id='Spelthorne'/>\n   <circle id='svg_be8c2f440082a37d_e924' cx='209.85' cy='160.83' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='St Albans' data-id='St Albans'/>\n   <circle id='svg_be8c2f440082a37d_e925' cx='269.27' cy='163.39' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='St. Helens' data-id='St. Helens'/>\n   <circle id='svg_be8c2f440082a37d_e926' cx='221.99' cy='176.88' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stafford' data-id='Stafford'/>\n   <circle id='svg_be8c2f440082a37d_e927' cx='254.98' cy='155.58' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Staffordshire Moorlands' data-id='Staffordshire Moorlands'/>\n   <circle id='svg_be8c2f440082a37d_e928' cx='252.32' cy='169.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stevenage' data-id='Stevenage'/>\n   <circle id='svg_be8c2f440082a37d_e929' cx='241.27' cy='180.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stockport' data-id='Stockport'/>\n   <circle id='svg_be8c2f440082a37d_e930' cx='256.38' cy='183.76' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stockton-on-Tees' data-id='Stockton-on-Tees'/>\n   <circle id='svg_be8c2f440082a37d_e931' cx='269.32' cy='169.21' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stoke-on-Trent' data-id='Stoke-on-Trent'/>\n   <circle id='svg_be8c2f440082a37d_e932' cx='232.32' cy='151.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stratford-on-Avon' data-id='Stratford-on-Avon'/>\n   <circle id='svg_be8c2f440082a37d_e933' cx='232.01' cy='161.21' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stroud' data-id='Stroud'/>\n   <circle id='svg_be8c2f440082a37d_e934' cx='265.25' cy='167.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sunderland' data-id='Sunderland'/>\n   <circle id='svg_be8c2f440082a37d_e935' cx='223.55' cy='178.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Surrey Heath' data-id='Surrey Heath'/>\n   <circle id='svg_be8c2f440082a37d_e936' cx='203.51' cy='156.42' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sutton' data-id='Sutton'/>\n   <circle id='svg_be8c2f440082a37d_e937' cx='261.95' cy='169.65' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Swale' data-id='Swale'/>\n   <circle id='svg_be8c2f440082a37d_e938' cx='247.18' cy='188.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Swansea' data-id='Swansea'/>\n   <circle id='svg_be8c2f440082a37d_e939' cx='230.69' cy='177.64' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Swindon' data-id='Swindon'/>\n   <circle id='svg_be8c2f440082a37d_e940' cx='249.67' cy='169.39' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tameside' data-id='Tameside'/>\n   <circle id='svg_be8c2f440082a37d_e941' cx='283.85' cy='170.86' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tamworth' data-id='Tamworth'/>\n   <circle id='svg_be8c2f440082a37d_e942' cx='248.99' cy='185.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tandridge' data-id='Tandridge'/>\n   <circle id='svg_be8c2f440082a37d_e943' cx='254.52' cy='182.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Teignbridge' data-id='Teignbridge'/>\n   <circle id='svg_be8c2f440082a37d_e944' cx='251.48' cy='186.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Telford and Wrekin' data-id='Telford and Wrekin'/>\n   <circle id='svg_be8c2f440082a37d_e945' cx='270.56' cy='174.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tendring' data-id='Tendring'/>\n   <circle id='svg_be8c2f440082a37d_e946' cx='219.34' cy='171.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Test Valley' data-id='Test Valley'/>\n   <circle id='svg_be8c2f440082a37d_e947' cx='242.04' cy='164.31' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tewkesbury' data-id='Tewkesbury'/>\n   <circle id='svg_be8c2f440082a37d_e948' cx='262.87' cy='176.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Thanet' data-id='Thanet'/>\n   <circle id='svg_be8c2f440082a37d_e949' cx='215.91' cy='166.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Three Rivers' data-id='Three Rivers'/>\n   <circle id='svg_be8c2f440082a37d_e950' cx='228.07' cy='181.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Thurrock' data-id='Thurrock'/>\n   <circle id='svg_be8c2f440082a37d_e951' cx='254.91' cy='173.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tonbridge and Malling' data-id='Tonbridge and Malling'/>\n   <circle id='svg_be8c2f440082a37d_e952' cx='283.36' cy='165.23' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Torbay' data-id='Torbay'/>\n   <circle id='svg_be8c2f440082a37d_e953' cx='306.48' cy='167.87' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Torfaen' data-id='Torfaen'/>\n   <circle id='svg_be8c2f440082a37d_e954' cx='291.55' cy='167.27' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Torridge' data-id='Torridge'/>\n   <circle id='svg_be8c2f440082a37d_e955' cx='191.43' cy='165.22' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tower Hamlets' data-id='Tower Hamlets'/>\n   <circle id='svg_be8c2f440082a37d_e956' cx='231.45' cy='175.47' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Trafford' data-id='Trafford'/>\n   <circle id='svg_be8c2f440082a37d_e957' cx='236.72' cy='158.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tunbridge Wells' data-id='Tunbridge Wells'/>\n   <circle id='svg_be8c2f440082a37d_e958' cx='241.52' cy='152.82' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Uttlesford' data-id='Uttlesford'/>\n   <circle id='svg_be8c2f440082a37d_e959' cx='238.17' cy='165.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Vale of Glamorgan' data-id='Vale of Glamorgan'/>\n   <circle id='svg_be8c2f440082a37d_e960' cx='201.04' cy='172.14' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Vale of White Horse' data-id='Vale of White Horse'/>\n   <circle id='svg_be8c2f440082a37d_e961' cx='249.53' cy='158.36' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wakefield' data-id='Wakefield'/>\n   <circle id='svg_be8c2f440082a37d_e962' cx='246.79' cy='160.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Walsall' data-id='Walsall'/>\n   <circle id='svg_be8c2f440082a37d_e963' cx='205.65' cy='158.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Waltham Forest' data-id='Waltham Forest'/>\n   <circle id='svg_be8c2f440082a37d_e964' cx='195.56' cy='172.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wandsworth' data-id='Wandsworth'/>\n   <circle id='svg_be8c2f440082a37d_e965' cx='252.07' cy='154.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Warrington' data-id='Warrington'/>\n   <circle id='svg_be8c2f440082a37d_e966' cx='204.18' cy='161.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Warwick' data-id='Warwick'/>\n   <circle id='svg_be8c2f440082a37d_e967' cx='202.05' cy='160.12' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Watford' data-id='Watford'/>\n   <circle id='svg_be8c2f440082a37d_e968' cx='196.16' cy='165.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Waverley' data-id='Waverley'/>\n   <circle id='svg_be8c2f440082a37d_e969' cx='238.69' cy='156.4' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wealden' data-id='Wealden'/>\n   <circle id='svg_be8c2f440082a37d_e970' cx='205.24' cy='171.42' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Welwyn Hatfield' data-id='Welwyn Hatfield'/>\n   <circle id='svg_be8c2f440082a37d_e971' cx='220.98' cy='169.4' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Berkshire' data-id='West Berkshire'/>\n   <circle id='svg_be8c2f440082a37d_e972' cx='272.76' cy='171.02' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Devon' data-id='West Devon'/>\n   <circle id='svg_be8c2f440082a37d_e973' cx='219.77' cy='164.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Lancashire' data-id='West Lancashire'/>\n   <circle id='svg_be8c2f440082a37d_e974' cx='274.09' cy='174.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Lindsey' data-id='West Lindsey'/>\n   <circle id='svg_be8c2f440082a37d_e975' cx='230.89' cy='182.35' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Northamptonshire' data-id='West Northamptonshire'/>\n   <circle id='svg_be8c2f440082a37d_e976' cx='205.74' cy='179.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Oxfordshire' data-id='West Oxfordshire'/>\n   <circle id='svg_be8c2f440082a37d_e977' cx='213.51' cy='154.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Suffolk' data-id='West Suffolk'/>\n   <circle id='svg_be8c2f440082a37d_e978' cx='212.01' cy='165.54' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Westminster' data-id='Westminster'/>\n   <circle id='svg_be8c2f440082a37d_e979' cx='255.42' cy='177.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wigan' data-id='Wigan'/>\n   <circle id='svg_be8c2f440082a37d_e980' cx='238.15' cy='183.87' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wiltshire' data-id='Wiltshire'/>\n   <circle id='svg_be8c2f440082a37d_e981' cx='197.07' cy='161.28' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Winchester' data-id='Winchester'/>\n   <circle id='svg_be8c2f440082a37d_e982' cx='200.34' cy='170.6' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Windsor and Maidenhead' data-id='Windsor and Maidenhead'/>\n   <circle id='svg_be8c2f440082a37d_e983' cx='273.3' cy='166.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wirral' data-id='Wirral'/>\n   <circle id='svg_be8c2f440082a37d_e984' cx='229.87' cy='168.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Woking' data-id='Woking'/>\n   <circle id='svg_be8c2f440082a37d_e985' cx='200.57' cy='177.64' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wokingham' data-id='Wokingham'/>\n   <circle id='svg_be8c2f440082a37d_e986' cx='246.83' cy='170.69' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wolverhampton' data-id='Wolverhampton'/>\n   <circle id='svg_be8c2f440082a37d_e987' cx='223.39' cy='156.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Worcester' data-id='Worcester'/>\n   <circle id='svg_be8c2f440082a37d_e988' cx='237.89' cy='154.01' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Worthing' data-id='Worthing'/>\n   <circle id='svg_be8c2f440082a37d_e989' cx='243.8' cy='187.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wrexham' data-id='Wrexham'/>\n   <circle id='svg_be8c2f440082a37d_e990' cx='248.22' cy='150.23' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wychavon' data-id='Wychavon'/>\n   <circle id='svg_be8c2f440082a37d_e991' cx='285.68' cy='168.64' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wyre' data-id='Wyre'/>\n   <circle id='svg_be8c2f440082a37d_e992' cx='239.9' cy='170.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wyre Forest' data-id='Wyre Forest'/>\n   <circle id='svg_be8c2f440082a37d_e993' cx='199.63' cy='165.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='York' data-id='York'/>\n   <circle id='svg_be8c2f440082a37d_e994' cx='270.58' cy='100.59' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Adur' data-id='Adur'/>\n   <circle id='svg_be8c2f440082a37d_e995' cx='271.1' cy='109.84' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Allerdale' data-id='Allerdale'/>\n   <circle id='svg_be8c2f440082a37d_e996' cx='273.92' cy='120.06' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Amber Valley' data-id='Amber Valley'/>\n   <circle id='svg_be8c2f440082a37d_e997' cx='246.55' cy='101.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Arun' data-id='Arun'/>\n   <circle id='svg_be8c2f440082a37d_e998' cx='293.73' cy='114.12' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ashfield' data-id='Ashfield'/>\n   <circle id='svg_be8c2f440082a37d_e999' cx='244.97' cy='109.08' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ashford' data-id='Ashford'/>\n   <circle id='svg_be8c2f440082a37d_e1000' cx='244.69' cy='95.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Babergh' data-id='Babergh'/>\n   <circle id='svg_be8c2f440082a37d_e1001' cx='226.74' cy='128.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barking and Dagenham' data-id='Barking and Dagenham'/>\n   <circle id='svg_be8c2f440082a37d_e1002' cx='215.05' cy='121.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barnet' data-id='Barnet'/>\n   <circle id='svg_be8c2f440082a37d_e1003' cx='293.48' cy='118.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barnsley' data-id='Barnsley'/>\n   <circle id='svg_be8c2f440082a37d_e1004' cx='291.4' cy='116.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barrow-in-Furness' data-id='Barrow-in-Furness'/>\n   <circle id='svg_be8c2f440082a37d_e1005' cx='252.45' cy='104.27' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Basildon' data-id='Basildon'/>\n   <circle id='svg_be8c2f440082a37d_e1006' cx='229.94' cy='98.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Basingstoke and Deane' data-id='Basingstoke and Deane'/>\n   <circle id='svg_be8c2f440082a37d_e1007' cx='281.95' cy='115.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bassetlaw' data-id='Bassetlaw'/>\n   <circle id='svg_be8c2f440082a37d_e1008' cx='219.24' cy='123.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bath and North East Somerset' data-id='Bath and North East Somerset'/>\n   <circle id='svg_be8c2f440082a37d_e1009' cx='231.09' cy='123.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bedford' data-id='Bedford'/>\n   <circle id='svg_be8c2f440082a37d_e1010' cx='228.94' cy='130.12' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bexley' data-id='Bexley'/>\n   <circle id='svg_be8c2f440082a37d_e1011' cx='258.1' cy='127.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Birmingham' data-id='Birmingham'/>\n   <circle id='svg_be8c2f440082a37d_e1012' cx='236.4' cy='101.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blaby' data-id='Blaby'/>\n   <circle id='svg_be8c2f440082a37d_e1013' cx='263.31' cy='127.8' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blackburn with Darwen' data-id='Blackburn with Darwen'/>\n   <circle id='svg_be8c2f440082a37d_e1014' cx='336.68' cy='112.27' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blackpool' data-id='Blackpool'/>\n   <circle id='svg_be8c2f440082a37d_e1015' cx='357.3' cy='113.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blaenau Gwent' data-id='Blaenau Gwent'/>\n   <circle id='svg_be8c2f440082a37d_e1016' cx='320.78' cy='112.19' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bolsover' data-id='Bolsover'/>\n   <circle id='svg_be8c2f440082a37d_e1017' cx='276.34' cy='108.84' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bolton' data-id='Bolton'/>\n   <circle id='svg_be8c2f440082a37d_e1018' cx='248.89' cy='99.22' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Boston' data-id='Boston'/>\n   <circle id='svg_be8c2f440082a37d_e1019' cx='246.17' cy='114.58' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bournemouth, Christchurch and Poole' data-id='Bournemouth, Christchurch and Poole'/>\n   <circle id='svg_be8c2f440082a37d_e1020' cx='210.91' cy='123.74' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bracknell Forest' data-id='Bracknell Forest'/>\n   <circle id='svg_be8c2f440082a37d_e1021' cx='265.84' cy='110.63' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bradford' data-id='Bradford'/>\n   <circle id='svg_be8c2f440082a37d_e1022' cx='261.87' cy='102.62' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Braintree' data-id='Braintree'/>\n   <circle id='svg_be8c2f440082a37d_e1023' cx='266.22' cy='118.28' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Breckland' data-id='Breckland'/>\n   <circle id='svg_be8c2f440082a37d_e1024' cx='217.11' cy='108.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Brent' data-id='Brent'/>\n   <circle id='svg_be8c2f440082a37d_e1025' cx='236.39' cy='121.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Brentwood' data-id='Brentwood'/>\n   <circle id='svg_be8c2f440082a37d_e1026' cx='322.72' cy='114.8' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bridgend' data-id='Bridgend'/>\n   <circle id='svg_be8c2f440082a37d_e1027' cx='236.54' cy='116.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Brighton and Hove' data-id='Brighton and Hove'/>\n   <circle id='svg_be8c2f440082a37d_e1028' cx='243.44' cy='94.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bristol' data-id='Bristol'/>\n   <circle id='svg_be8c2f440082a37d_e1029' cx='244.65' cy='117.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Broadland' data-id='Broadland'/>\n   <circle id='svg_be8c2f440082a37d_e1030' cx='223.2' cy='105.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bromley' data-id='Bromley'/>\n   <circle id='svg_be8c2f440082a37d_e1031' cx='264.01' cy='104.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bromsgrove' data-id='Bromsgrove'/>\n   <circle id='svg_be8c2f440082a37d_e1032' cx='226.04' cy='117.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Broxbourne' data-id='Broxbourne'/>\n   <circle id='svg_be8c2f440082a37d_e1033' cx='241.36' cy='107.94' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Broxtowe' data-id='Broxtowe'/>\n   <circle id='svg_be8c2f440082a37d_e1034' cx='220.84' cy='124.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Buckinghamshire' data-id='Buckinghamshire'/>\n   <circle id='svg_be8c2f440082a37d_e1035' cx='285.81' cy='104.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Burnley' data-id='Burnley'/>\n   <circle id='svg_be8c2f440082a37d_e1036' cx='262.56' cy='106.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bury' data-id='Bury'/>\n   <circle id='svg_be8c2f440082a37d_e1037' cx='337.12' cy='114.59' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Caerphilly' data-id='Caerphilly'/>\n   <circle id='svg_be8c2f440082a37d_e1038' cx='267.22' cy='106.84' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Calderdale' data-id='Calderdale'/>\n   <circle id='svg_be8c2f440082a37d_e1039' cx='188.57' cy='112.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cambridge' data-id='Cambridge'/>\n   <circle id='svg_be8c2f440082a37d_e1040' cx='236.15' cy='95.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Camden' data-id='Camden'/>\n   <circle id='svg_be8c2f440082a37d_e1041' cx='281.59' cy='120.13' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cannock Chase' data-id='Cannock Chase'/>\n   <circle id='svg_be8c2f440082a37d_e1042' cx='229.64' cy='107.35' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Canterbury' data-id='Canterbury'/>\n   <circle id='svg_be8c2f440082a37d_e1043' cx='271.18' cy='117.14' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cardiff' data-id='Cardiff'/>\n   <circle id='svg_be8c2f440082a37d_e1044' cx='292.95' cy='107.76' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Carlisle' data-id='Carlisle'/>\n   <circle id='svg_be8c2f440082a37d_e1045' cx='306.86' cy='111.79' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Carmarthenshire' data-id='Carmarthenshire'/>\n   <circle id='svg_be8c2f440082a37d_e1046' cx='251.96' cy='108.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Castle Point' data-id='Castle Point'/>\n   <circle id='svg_be8c2f440082a37d_e1047' cx='235.13' cy='100.12' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Central Bedfordshire' data-id='Central Bedfordshire'/>\n   <circle id='svg_be8c2f440082a37d_e1048' cx='256.65' cy='106.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ceredigion' data-id='Ceredigion'/>\n   <circle id='svg_be8c2f440082a37d_e1049' cx='219.36' cy='106.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Charnwood' data-id='Charnwood'/>\n   <circle id='svg_be8c2f440082a37d_e1050' cx='227.82' cy='106.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chelmsford' data-id='Chelmsford'/>\n   <circle id='svg_be8c2f440082a37d_e1051' cx='234.65' cy='129.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cheltenham' data-id='Cheltenham'/>\n   <circle id='svg_be8c2f440082a37d_e1052' cx='220.46' cy='111.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cherwell' data-id='Cherwell'/>\n   <circle id='svg_be8c2f440082a37d_e1053' cx='254.83' cy='100.03' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cheshire East' data-id='Cheshire East'/>\n   <circle id='svg_be8c2f440082a37d_e1054' cx='263.25' cy='98.73' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cheshire West and Chester' data-id='Cheshire West and Chester'/>\n   <circle id='svg_be8c2f440082a37d_e1055' cx='305.65' cy='113.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chesterfield' data-id='Chesterfield'/>\n   <circle id='svg_be8c2f440082a37d_e1056' cx='236.51' cy='106.22' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chichester' data-id='Chichester'/>\n   <circle id='svg_be8c2f440082a37d_e1057' cx='274.39' cy='116.63' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chorley' data-id='Chorley'/>\n   <circle id='svg_be8c2f440082a37d_e1058' cx='179.75' cy='113.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='City of London' data-id='City of London'/>\n   <circle id='svg_be8c2f440082a37d_e1059' cx='223.99' cy='130.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Colchester' data-id='Colchester'/>\n   <circle id='svg_be8c2f440082a37d_e1060' cx='283.33' cy='116.36' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Conwy' data-id='Conwy'/>\n   <circle id='svg_be8c2f440082a37d_e1061' cx='289.04' cy='115.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Copeland' data-id='Copeland'/>\n   <circle id='svg_be8c2f440082a37d_e1062' cx='274.52' cy='103.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cornwall' data-id='Cornwall'/>\n   <circle id='svg_be8c2f440082a37d_e1063' cx='212.47' cy='103.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cotswold' data-id='Cotswold'/>\n   <circle id='svg_be8c2f440082a37d_e1064' cx='288.36' cy='108.47' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='County Durham' data-id='County Durham'/>\n   <circle id='svg_be8c2f440082a37d_e1065' cx='240.91' cy='128.93' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Coventry' data-id='Coventry'/>\n   <circle id='svg_be8c2f440082a37d_e1066' cx='240.82' cy='123.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Craven' data-id='Craven'/>\n   <circle id='svg_be8c2f440082a37d_e1067' cx='220.07' cy='128.91' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Crawley' data-id='Crawley'/>\n   <circle id='svg_be8c2f440082a37d_e1068' cx='227.42' cy='102.01' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Croydon' data-id='Croydon'/>\n   <circle id='svg_be8c2f440082a37d_e1069' cx='219.87' cy='97.88' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dacorum' data-id='Dacorum'/>\n   <circle id='svg_be8c2f440082a37d_e1070' cx='268.56' cy='119.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Darlington' data-id='Darlington'/>\n   <circle id='svg_be8c2f440082a37d_e1071' cx='216.82' cy='104.91' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dartford' data-id='Dartford'/>\n   <circle id='svg_be8c2f440082a37d_e1072' cx='290.94' cy='120.84' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Denbighshire' data-id='Denbighshire'/>\n   <circle id='svg_be8c2f440082a37d_e1073' cx='259.88' cy='104.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Derby' data-id='Derby'/>\n   <circle id='svg_be8c2f440082a37d_e1074' cx='252.09' cy='118.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Derbyshire Dales' data-id='Derbyshire Dales'/>\n   <circle id='svg_be8c2f440082a37d_e1075' cx='295.51' cy='112.64' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Doncaster' data-id='Doncaster'/>\n   <circle id='svg_be8c2f440082a37d_e1076' cx='250.1' cy='121.63' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dorset' data-id='Dorset'/>\n   <circle id='svg_be8c2f440082a37d_e1077' cx='257.17' cy='99.21' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dover' data-id='Dover'/>\n   <circle id='svg_be8c2f440082a37d_e1078' cx='270.59' cy='124.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dudley' data-id='Dudley'/>\n   <circle id='svg_be8c2f440082a37d_e1079' cx='217.56' cy='127.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ealing' data-id='Ealing'/>\n   <circle id='svg_be8c2f440082a37d_e1080' cx='232.02' cy='114.27' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Cambridgeshire' data-id='East Cambridgeshire'/>\n   <circle id='svg_be8c2f440082a37d_e1081' cx='239.27' cy='103.47' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Devon' data-id='East Devon'/>\n   <circle id='svg_be8c2f440082a37d_e1082' cx='233.51' cy='102.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Hampshire' data-id='East Hampshire'/>\n   <circle id='svg_be8c2f440082a37d_e1083' cx='213.05' cy='124.03' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Hertfordshire' data-id='East Hertfordshire'/>\n   <circle id='svg_be8c2f440082a37d_e1084' cx='314.29' cy='110.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Lindsey' data-id='East Lindsey'/>\n   <circle id='svg_be8c2f440082a37d_e1085' cx='268.91' cy='104.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Riding of Yorkshire' data-id='East Riding of Yorkshire'/>\n   <circle id='svg_be8c2f440082a37d_e1086' cx='245.98' cy='125.61' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Staffordshire' data-id='East Staffordshire'/>\n   <circle id='svg_be8c2f440082a37d_e1087' cx='273.27' cy='127.13' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Suffolk' data-id='East Suffolk'/>\n   <circle id='svg_be8c2f440082a37d_e1088' cx='262.69' cy='113.97' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Eastbourne' data-id='Eastbourne'/>\n   <circle id='svg_be8c2f440082a37d_e1089' cx='236.48' cy='126.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Eastleigh' data-id='Eastleigh'/>\n   <circle id='svg_be8c2f440082a37d_e1090' cx='229.48' cy='102.79' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Eden' data-id='Eden'/>\n   <circle id='svg_be8c2f440082a37d_e1091' cx='209.92' cy='114.63' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Elmbridge' data-id='Elmbridge'/>\n   <circle id='svg_be8c2f440082a37d_e1092' cx='232.24' cy='131.62' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Enfield' data-id='Enfield'/>\n   <circle id='svg_be8c2f440082a37d_e1093' cx='230.89' cy='109.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Epping Forest' data-id='Epping Forest'/>\n   <circle id='svg_be8c2f440082a37d_e1094' cx='209.57' cy='109.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Epsom and Ewell' data-id='Epsom and Ewell'/>\n   <circle id='svg_be8c2f440082a37d_e1095' cx='284.36' cy='109.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Erewash' data-id='Erewash'/>\n   <circle id='svg_be8c2f440082a37d_e1096' cx='241.38' cy='118.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Exeter' data-id='Exeter'/>\n   <circle id='svg_be8c2f440082a37d_e1097' cx='232.95' cy='122.13' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Fareham' data-id='Fareham'/>\n   <circle id='svg_be8c2f440082a37d_e1098' cx='261.44' cy='117.74' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Fenland' data-id='Fenland'/>\n   <circle id='svg_be8c2f440082a37d_e1099' cx='271.23' cy='102.56' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Flintshire' data-id='Flintshire'/>\n   <circle id='svg_be8c2f440082a37d_e1100' cx='272.61' cy='99.39' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Folkestone and Hythe' data-id='Folkestone and Hythe'/>\n   <circle id='svg_be8c2f440082a37d_e1101' cx='246.48' cy='112.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Forest of Dean' data-id='Forest of Dean'/>\n   <circle id='svg_be8c2f440082a37d_e1102' cx='266.69' cy='122.08' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Fylde' data-id='Fylde'/>\n   <circle id='svg_be8c2f440082a37d_e1103' cx='283.17' cy='111.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gateshead' data-id='Gateshead'/>\n   <circle id='svg_be8c2f440082a37d_e1104' cx='256.06' cy='102.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gedling' data-id='Gedling'/>\n   <circle id='svg_be8c2f440082a37d_e1105' cx='246.09' cy='103.56' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gloucester' data-id='Gloucester'/>\n   <circle id='svg_be8c2f440082a37d_e1106' cx='261.36' cy='110.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gosport' data-id='Gosport'/>\n   <circle id='svg_be8c2f440082a37d_e1107' cx='246.69' cy='129' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gravesham' data-id='Gravesham'/>\n   <circle id='svg_be8c2f440082a37d_e1108' cx='281.61' cy='110.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Great Yarmouth' data-id='Great Yarmouth'/>\n   <circle id='svg_be8c2f440082a37d_e1109' cx='222.6' cy='118.25' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Greenwich' data-id='Greenwich'/>\n   <circle id='svg_be8c2f440082a37d_e1110' cx='202.15' cy='114.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Guildford' data-id='Guildford'/>\n   <circle id='svg_be8c2f440082a37d_e1111' cx='246.52' cy='123.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gwynedd' data-id='Gwynedd'/>\n   <circle id='svg_be8c2f440082a37d_e1112' cx='217.44' cy='100.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hackney' data-id='Hackney'/>\n   <circle id='svg_be8c2f440082a37d_e1113' cx='311.78' cy='112.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Halton' data-id='Halton'/>\n   <circle id='svg_be8c2f440082a37d_e1114' cx='237.88' cy='118.73' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hambleton' data-id='Hambleton'/>\n   <circle id='svg_be8c2f440082a37d_e1115' cx='223.87' cy='96.59' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hammersmith and Fulham' data-id='Hammersmith and Fulham'/>\n   <circle id='svg_be8c2f440082a37d_e1116' cx='234.44' cy='97.74' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harborough' data-id='Harborough'/>\n   <circle id='svg_be8c2f440082a37d_e1117' cx='223.5' cy='113.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Haringey' data-id='Haringey'/>\n   <circle id='svg_be8c2f440082a37d_e1118' cx='240.24' cy='92.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harlow' data-id='Harlow'/>\n   <circle id='svg_be8c2f440082a37d_e1119' cx='235.91' cy='114.93' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harrogate' data-id='Harrogate'/>\n   <circle id='svg_be8c2f440082a37d_e1120' cx='213.26' cy='117.53' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harrow' data-id='Harrow'/>\n   <circle id='svg_be8c2f440082a37d_e1121' cx='217.03' cy='124.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hart' data-id='Hart'/>\n   <circle id='svg_be8c2f440082a37d_e1122' cx='330.51' cy='113.62' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hartlepool' data-id='Hartlepool'/>\n   <circle id='svg_be8c2f440082a37d_e1123' cx='297.23' cy='114.36' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hastings' data-id='Hastings'/>\n   <circle id='svg_be8c2f440082a37d_e1124' cx='266.25' cy='102.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Havant' data-id='Havant'/>\n   <circle id='svg_be8c2f440082a37d_e1125' cx='227.91' cy='115.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Havering' data-id='Havering'/>\n   <circle id='svg_be8c2f440082a37d_e1126' cx='254.64' cy='108.62' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Herefordshire' data-id='Herefordshire'/>\n   <circle id='svg_be8c2f440082a37d_e1127' cx='221.22' cy='98.8' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hertsmere' data-id='Hertsmere'/>\n   <circle id='svg_be8c2f440082a37d_e1128' cx='256.03' cy='119.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='High Peak' data-id='High Peak'/>\n   <circle id='svg_be8c2f440082a37d_e1129' cx='207.23' cy='116.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hillingdon' data-id='Hillingdon'/>\n   <circle id='svg_be8c2f440082a37d_e1130' cx='247.19' cy='107.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hinckley and Bosworth' data-id='Hinckley and Bosworth'/>\n   <circle id='svg_be8c2f440082a37d_e1131' cx='220.79' cy='103.14' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Horsham' data-id='Horsham'/>\n   <circle id='svg_be8c2f440082a37d_e1132' cx='211.6' cy='106.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hounslow' data-id='Hounslow'/>\n   <circle id='svg_be8c2f440082a37d_e1133' cx='244.43' cy='128.31' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Huntingdonshire' data-id='Huntingdonshire'/>\n   <circle id='svg_be8c2f440082a37d_e1134' cx='275.53' cy='105.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hyndburn' data-id='Hyndburn'/>\n   <circle id='svg_be8c2f440082a37d_e1135' cx='241.39' cy='97.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ipswich' data-id='Ipswich'/>\n   <circle id='svg_be8c2f440082a37d_e1136' cx='263.66' cy='112.54' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Isle of Anglesey' data-id='Isle of Anglesey'/>\n   <circle id='svg_be8c2f440082a37d_e1137' cx='293.56' cy='109.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Isle of Wight' data-id='Isle of Wight'/>\n   <circle id='svg_be8c2f440082a37d_e1138' cx='252.46' cy='113.83' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Isles of Scilly' data-id='Isles of Scilly'/>\n   <circle id='svg_be8c2f440082a37d_e1139' cx='250.09' cy='111.28' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Islington' data-id='Islington'/>\n   <circle id='svg_be8c2f440082a37d_e1140' cx='226.18' cy='99.97' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kensington and Chelsea' data-id='Kensington and Chelsea'/>\n   <circle id='svg_be8c2f440082a37d_e1141' cx='269.47' cy='122.84' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='King&amp;#39;s Lynn and West Norfolk' data-id='King’s Lynn and West Norfolk'/>\n   <circle id='svg_be8c2f440082a37d_e1142' cx='291.28' cy='111.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kingston upon Hull' data-id='Kingston upon Hull'/>\n   <circle id='svg_be8c2f440082a37d_e1143' cx='212.45' cy='115.73' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kingston upon Thames' data-id='Kingston upon Thames'/>\n   <circle id='svg_be8c2f440082a37d_e1144' cx='253.57' cy='122.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kirklees' data-id='Kirklees'/>\n   <circle id='svg_be8c2f440082a37d_e1145' cx='315.01' cy='116.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Knowsley' data-id='Knowsley'/>\n   <circle id='svg_be8c2f440082a37d_e1146' cx='228.8' cy='97.25' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lambeth' data-id='Lambeth'/>\n   <circle id='svg_be8c2f440082a37d_e1147' cx='242.02' cy='121.21' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lancaster' data-id='Lancaster'/>\n   <circle id='svg_be8c2f440082a37d_e1148' cx='240.9' cy='102.74' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Leeds' data-id='Leeds'/>\n   <circle id='svg_be8c2f440082a37d_e1149' cx='235.66' cy='105.02' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Leicester' data-id='Leicester'/>\n   <circle id='svg_be8c2f440082a37d_e1150' cx='253.89' cy='126.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lewes' data-id='Lewes'/>\n   <circle id='svg_be8c2f440082a37d_e1151' cx='225.92' cy='108.74' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lewisham' data-id='Lewisham'/>\n   <circle id='svg_be8c2f440082a37d_e1152' cx='249.22' cy='125.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lichfield' data-id='Lichfield'/>\n   <circle id='svg_be8c2f440082a37d_e1153' cx='241.85' cy='131.83' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lincoln' data-id='Lincoln'/>\n   <circle id='svg_be8c2f440082a37d_e1154' cx='274.88' cy='111.72' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Liverpool' data-id='Liverpool'/>\n   <circle id='svg_be8c2f440082a37d_e1155' cx='229.45' cy='121.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Luton' data-id='Luton'/>\n   <circle id='svg_be8c2f440082a37d_e1156' cx='236.22' cy='131.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Maidstone' data-id='Maidstone'/>\n   <circle id='svg_be8c2f440082a37d_e1157' cx='238.53' cy='123.84' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Maldon' data-id='Maldon'/>\n   <circle id='svg_be8c2f440082a37d_e1158' cx='248.86' cy='120.54' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Malvern Hills' data-id='Malvern Hills'/>\n   <circle id='svg_be8c2f440082a37d_e1159' cx='247.92' cy='131.5' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Manchester' data-id='Manchester'/>\n   <circle id='svg_be8c2f440082a37d_e1160' cx='282.78' cy='121.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mansfield' data-id='Mansfield'/>\n   <circle id='svg_be8c2f440082a37d_e1161' cx='241.98' cy='110.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Medway' data-id='Medway'/>\n   <circle id='svg_be8c2f440082a37d_e1162' cx='235.34' cy='124.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Melton' data-id='Melton'/>\n   <circle id='svg_be8c2f440082a37d_e1163' cx='252.16' cy='123.5' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mendip' data-id='Mendip'/>\n   <circle id='svg_be8c2f440082a37d_e1164' cx='364.7' cy='113.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Merthyr Tydfil' data-id='Merthyr Tydfil'/>\n   <circle id='svg_be8c2f440082a37d_e1165' cx='206.2' cy='118.86' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Merton' data-id='Merton'/>\n   <circle id='svg_be8c2f440082a37d_e1166' cx='243.29' cy='115.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mid Devon' data-id='Mid Devon'/>\n   <circle id='svg_be8c2f440082a37d_e1167' cx='240.75' cy='113.22' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mid Suffolk' data-id='Mid Suffolk'/>\n   <circle id='svg_be8c2f440082a37d_e1168' cx='211.4' cy='118.43' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mid Sussex' data-id='Mid Sussex'/>\n   <circle id='svg_be8c2f440082a37d_e1169' cx='289.47' cy='106.27' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Middlesbrough' data-id='Middlesbrough'/>\n   <circle id='svg_be8c2f440082a37d_e1170' cx='218.83' cy='119.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Milton Keynes' data-id='Milton Keynes'/>\n   <circle id='svg_be8c2f440082a37d_e1171' cx='216.17' cy='98.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mole Valley' data-id='Mole Valley'/>\n   <circle id='svg_be8c2f440082a37d_e1172' cx='271.7' cy='120.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Monmouthshire' data-id='Monmouthshire'/>\n   <circle id='svg_be8c2f440082a37d_e1173' cx='323.03' cy='112.87' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Neath Port Talbot' data-id='Neath Port Talbot'/>\n   <circle id='svg_be8c2f440082a37d_e1174' cx='253.64' cy='103.86' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='New Forest' data-id='New Forest'/>\n   <circle id='svg_be8c2f440082a37d_e1175' cx='270.27' cy='115.35' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newark and Sherwood' data-id='Newark and Sherwood'/>\n   <circle id='svg_be8c2f440082a37d_e1176' cx='259.96' cy='123.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newcastle upon Tyne' data-id='Newcastle upon Tyne'/>\n   <circle id='svg_be8c2f440082a37d_e1177' cx='269.71' cy='107.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newcastle-under-Lyme' data-id='Newcastle-under-Lyme'/>\n   <circle id='svg_be8c2f440082a37d_e1178' cx='219.17' cy='102.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newham' data-id='Newham'/>\n   <circle id='svg_be8c2f440082a37d_e1179' cx='300.05' cy='116.8' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newport' data-id='Newport'/>\n   <circle id='svg_be8c2f440082a37d_e1180' cx='272.52' cy='113.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Devon' data-id='North Devon'/>\n   <circle id='svg_be8c2f440082a37d_e1181' cx='288.43' cy='119.93' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North East Derbyshire' data-id='North East Derbyshire'/>\n   <circle id='svg_be8c2f440082a37d_e1182' cx='267.3' cy='99.23' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North East Lincolnshire' data-id='North East Lincolnshire'/>\n   <circle id='svg_be8c2f440082a37d_e1183' cx='243.23' cy='105.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Hertfordshire' data-id='North Hertfordshire'/>\n   <circle id='svg_be8c2f440082a37d_e1184' cx='249.91' cy='132.08' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Kesteven' data-id='North Kesteven'/>\n   <circle id='svg_be8c2f440082a37d_e1185' cx='267.25' cy='114.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Lincolnshire' data-id='North Lincolnshire'/>\n   <circle id='svg_be8c2f440082a37d_e1186' cx='262.41' cy='121.56' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Norfolk' data-id='North Norfolk'/>\n   <circle id='svg_be8c2f440082a37d_e1187' cx='247.34' cy='117.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Northamptonshire' data-id='North Northamptonshire'/>\n   <circle id='svg_be8c2f440082a37d_e1188' cx='264.95' cy='101.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Somerset' data-id='North Somerset'/>\n   <circle id='svg_be8c2f440082a37d_e1189' cx='273.99' cy='106.61' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Tyneside' data-id='North Tyneside'/>\n   <circle id='svg_be8c2f440082a37d_e1190' cx='260.43' cy='115.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Warwickshire' data-id='North Warwickshire'/>\n   <circle id='svg_be8c2f440082a37d_e1191' cx='248.51' cy='109.86' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North West Leicestershire' data-id='North West Leicestershire'/>\n   <circle id='svg_be8c2f440082a37d_e1192' cx='274.8' cy='124.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Northumberland' data-id='Northumberland'/>\n   <circle id='svg_be8c2f440082a37d_e1193' cx='249.53' cy='115.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Norwich' data-id='Norwich'/>\n   <circle id='svg_be8c2f440082a37d_e1194' cx='243.86' cy='122.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Nottingham' data-id='Nottingham'/>\n   <circle id='svg_be8c2f440082a37d_e1195' cx='264.51' cy='108.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Nuneaton and Bedworth' data-id='Nuneaton and Bedworth'/>\n   <circle id='svg_be8c2f440082a37d_e1196' cx='234.73' cy='110' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Oadby and Wigston' data-id='Oadby and Wigston'/>\n   <circle id='svg_be8c2f440082a37d_e1197' cx='260.58' cy='100.79' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Oldham' data-id='Oldham'/>\n   <circle id='svg_be8c2f440082a37d_e1198' cx='187.05' cy='113.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Oxford' data-id='Oxford'/>\n   <circle id='svg_be8c2f440082a37d_e1199' cx='284.04' cy='118.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Pembrokeshire' data-id='Pembrokeshire'/>\n   <circle id='svg_be8c2f440082a37d_e1200' cx='253.4' cy='112.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Pendle' data-id='Pendle'/>\n   <circle id='svg_be8c2f440082a37d_e1201' cx='243.18' cy='126.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Peterborough' data-id='Peterborough'/>\n   <circle id='svg_be8c2f440082a37d_e1202' cx='273.42' cy='113.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Plymouth' data-id='Plymouth'/>\n   <circle id='svg_be8c2f440082a37d_e1203' cx='244.5' cy='106.34' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Portsmouth' data-id='Portsmouth'/>\n   <circle id='svg_be8c2f440082a37d_e1204' cx='274.09' cy='123.36' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Powys' data-id='Powys'/>\n   <circle id='svg_be8c2f440082a37d_e1205' cx='256.25' cy='123.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Preston' data-id='Preston'/>\n   <circle id='svg_be8c2f440082a37d_e1206' cx='214.26' cy='103.65' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Reading' data-id='Reading'/>\n   <circle id='svg_be8c2f440082a37d_e1207' cx='216.23' cy='112.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Redbridge' data-id='Redbridge'/>\n   <circle id='svg_be8c2f440082a37d_e1208' cx='310.83' cy='114.8' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Redcar and Cleveland' data-id='Redcar and Cleveland'/>\n   <circle id='svg_be8c2f440082a37d_e1209' cx='243.5' cy='133.63' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Redditch' data-id='Redditch'/>\n   <circle id='svg_be8c2f440082a37d_e1210' cx='221' cy='116.08' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Reigate and Banstead' data-id='Reigate and Banstead'/>\n   <circle id='svg_be8c2f440082a37d_e1211' cx='318.85' cy='114.63' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rhondda Cynon Taf' data-id='Rhondda Cynon Taf'/>\n   <circle id='svg_be8c2f440082a37d_e1212' cx='245.03' cy='120.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ribble Valley' data-id='Ribble Valley'/>\n   <circle id='svg_be8c2f440082a37d_e1213' cx='206.52' cy='112.56' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Richmond upon Thames' data-id='Richmond upon Thames'/>\n   <circle id='svg_be8c2f440082a37d_e1214' cx='237.54' cy='96.11' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Richmondshire' data-id='Richmondshire'/>\n   <circle id='svg_be8c2f440082a37d_e1215' cx='276.01' cy='120.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rochdale' data-id='Rochdale'/>\n   <circle id='svg_be8c2f440082a37d_e1216' cx='230.91' cy='118.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rochford' data-id='Rochford'/>\n   <circle id='svg_be8c2f440082a37d_e1217' cx='287.92' cy='117.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rossendale' data-id='Rossendale'/>\n   <circle id='svg_be8c2f440082a37d_e1218' cx='252.14' cy='99.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rother' data-id='Rother'/>\n   <circle id='svg_be8c2f440082a37d_e1219' cx='296.15' cy='118.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rotherham' data-id='Rotherham'/>\n   <circle id='svg_be8c2f440082a37d_e1220' cx='227.6' cy='124.22' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rugby' data-id='Rugby'/>\n   <circle id='svg_be8c2f440082a37d_e1221' cx='224.38' cy='121.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Runnymede' data-id='Runnymede'/>\n   <circle id='svg_be8c2f440082a37d_e1222' cx='242.85' cy='99.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rushcliffe' data-id='Rushcliffe'/>\n   <circle id='svg_be8c2f440082a37d_e1223' cx='223.11' cy='122.58' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rushmoor' data-id='Rushmoor'/>\n   <circle id='svg_be8c2f440082a37d_e1224' cx='208.09' cy='118.46' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rutland' data-id='Rutland'/>\n   <circle id='svg_be8c2f440082a37d_e1225' cx='239.42' cy='113.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ryedale' data-id='Ryedale'/>\n   <circle id='svg_be8c2f440082a37d_e1226' cx='245.41' cy='98.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Salford' data-id='Salford'/>\n   <circle id='svg_be8c2f440082a37d_e1227' cx='267.56' cy='111.6' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sandwell' data-id='Sandwell'/>\n   <circle id='svg_be8c2f440082a37d_e1228' cx='282.52' cy='105.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Scarborough' data-id='Scarborough'/>\n   <circle id='svg_be8c2f440082a37d_e1229' cx='278.39' cy='103.86' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sedgemoor' data-id='Sedgemoor'/>\n   <circle id='svg_be8c2f440082a37d_e1230' cx='294.01' cy='105.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sefton' data-id='Sefton'/>\n   <circle id='svg_be8c2f440082a37d_e1231' cx='233.52' cy='127.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Selby' data-id='Selby'/>\n   <circle id='svg_be8c2f440082a37d_e1232' cx='232.11' cy='95.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sevenoaks' data-id='Sevenoaks'/>\n   <circle id='svg_be8c2f440082a37d_e1233' cx='263.68' cy='120.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sheffield' data-id='Sheffield'/>\n   <circle id='svg_be8c2f440082a37d_e1234' cx='259.38' cy='112.08' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Shropshire' data-id='Shropshire'/>\n   <circle id='svg_be8c2f440082a37d_e1235' cx='207.82' cy='108.47' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Slough' data-id='Slough'/>\n   <circle id='svg_be8c2f440082a37d_e1236' cx='264.66' cy='116.37' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Solihull' data-id='Solihull'/>\n   <circle id='svg_be8c2f440082a37d_e1237' cx='255.69' cy='127.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Somerset West and Taunton' data-id='Somerset West and Taunton'/>\n   <circle id='svg_be8c2f440082a37d_e1238' cx='224.01' cy='113.11' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Cambridgeshire' data-id='South Cambridgeshire'/>\n   <circle id='svg_be8c2f440082a37d_e1239' cx='237.76' cy='108.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Derbyshire' data-id='South Derbyshire'/>\n   <circle id='svg_be8c2f440082a37d_e1240' cx='231.65' cy='104.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Gloucestershire' data-id='South Gloucestershire'/>\n   <circle id='svg_be8c2f440082a37d_e1241' cx='261' cy='125.27' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Hams' data-id='South Hams'/>\n   <circle id='svg_be8c2f440082a37d_e1242' cx='265.81' cy='125.94' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Holland' data-id='South Holland'/>\n   <circle id='svg_be8c2f440082a37d_e1243' cx='250.71' cy='101.14' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Kesteven' data-id='South Kesteven'/>\n   <circle id='svg_be8c2f440082a37d_e1244' cx='246.4' cy='92.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Lakeland' data-id='South Lakeland'/>\n   <circle id='svg_be8c2f440082a37d_e1245' cx='249.26' cy='104.62' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Norfolk' data-id='South Norfolk'/>\n   <circle id='svg_be8c2f440082a37d_e1246' cx='220.89' cy='107.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Oxfordshire' data-id='South Oxfordshire'/>\n   <circle id='svg_be8c2f440082a37d_e1247' cx='252.95' cy='95.08' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Ribble' data-id='South Ribble'/>\n   <circle id='svg_be8c2f440082a37d_e1248' cx='244.7' cy='131.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Somerset' data-id='South Somerset'/>\n   <circle id='svg_be8c2f440082a37d_e1249' cx='254.75' cy='117.3' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Staffordshire' data-id='South Staffordshire'/>\n   <circle id='svg_be8c2f440082a37d_e1250' cx='315.91' cy='113.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Tyneside' data-id='South Tyneside'/>\n   <circle id='svg_be8c2f440082a37d_e1251' cx='229' cy='111.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Southampton' data-id='Southampton'/>\n   <circle id='svg_be8c2f440082a37d_e1252' cx='251.5' cy='116.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Southend-on-Sea' data-id='Southend-on-Sea'/>\n   <circle id='svg_be8c2f440082a37d_e1253' cx='215.09' cy='106.91' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Southwark' data-id='Southwark'/>\n   <circle id='svg_be8c2f440082a37d_e1254' cx='213.15' cy='110.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Spelthorne' data-id='Spelthorne'/>\n   <circle id='svg_be8c2f440082a37d_e1255' cx='216.18' cy='128.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='St Albans' data-id='St Albans'/>\n   <circle id='svg_be8c2f440082a37d_e1256' cx='285.77' cy='113.93' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='St. Helens' data-id='St. Helens'/>\n   <circle id='svg_be8c2f440082a37d_e1257' cx='251.91' cy='128.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stafford' data-id='Stafford'/>\n   <circle id='svg_be8c2f440082a37d_e1258' cx='274.2' cy='110' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Staffordshire Moorlands' data-id='Staffordshire Moorlands'/>\n   <circle id='svg_be8c2f440082a37d_e1259' cx='251.68' cy='96.62' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stevenage' data-id='Stevenage'/>\n   <circle id='svg_be8c2f440082a37d_e1260' cx='256.01' cy='110.94' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stockport' data-id='Stockport'/>\n   <circle id='svg_be8c2f440082a37d_e1261' cx='295.73' cy='108.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stockton-on-Tees' data-id='Stockton-on-Tees'/>\n   <circle id='svg_be8c2f440082a37d_e1262' cx='296.19' cy='110.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stoke-on-Trent' data-id='Stoke-on-Trent'/>\n   <circle id='svg_be8c2f440082a37d_e1263' cx='233.91' cy='107.58' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stratford-on-Avon' data-id='Stratford-on-Avon'/>\n   <circle id='svg_be8c2f440082a37d_e1264' cx='229.55' cy='125.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stroud' data-id='Stroud'/>\n   <circle id='svg_be8c2f440082a37d_e1265' cx='312.62' cy='113.46' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sunderland' data-id='Sunderland'/>\n   <circle id='svg_be8c2f440082a37d_e1266' cx='200.77' cy='112.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Surrey Heath' data-id='Surrey Heath'/>\n   <circle id='svg_be8c2f440082a37d_e1267' cx='225.22' cy='126.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sutton' data-id='Sutton'/>\n   <circle id='svg_be8c2f440082a37d_e1268' cx='257.07' cy='114.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Swale' data-id='Swale'/>\n   <circle id='svg_be8c2f440082a37d_e1269' cx='287.66' cy='113.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Swansea' data-id='Swansea'/>\n   <circle id='svg_be8c2f440082a37d_e1270' cx='234.34' cy='117.36' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Swindon' data-id='Swindon'/>\n   <circle id='svg_be8c2f440082a37d_e1271' cx='276.82' cy='114.79' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tameside' data-id='Tameside'/>\n   <circle id='svg_be8c2f440082a37d_e1272' cx='259.98' cy='108.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tamworth' data-id='Tamworth'/>\n   <circle id='svg_be8c2f440082a37d_e1273' cx='238.4' cy='98.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tandridge' data-id='Tandridge'/>\n   <circle id='svg_be8c2f440082a37d_e1274' cx='251.46' cy='106.4' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Teignbridge' data-id='Teignbridge'/>\n   <circle id='svg_be8c2f440082a37d_e1275' cx='271.78' cy='106.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Telford and Wrekin' data-id='Telford and Wrekin'/>\n   <circle id='svg_be8c2f440082a37d_e1276' cx='300.72' cy='112.5' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tendring' data-id='Tendring'/>\n   <circle id='svg_be8c2f440082a37d_e1277' cx='229.91' cy='116.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Test Valley' data-id='Test Valley'/>\n   <circle id='svg_be8c2f440082a37d_e1278' cx='240.53' cy='134.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tewkesbury' data-id='Tewkesbury'/>\n   <circle id='svg_be8c2f440082a37d_e1279' cx='295.64' cy='116.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Thanet' data-id='Thanet'/>\n   <circle id='svg_be8c2f440082a37d_e1280' cx='210.09' cy='104.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Three Rivers' data-id='Three Rivers'/>\n   <circle id='svg_be8c2f440082a37d_e1281' cx='226.92' cy='119.72' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Thurrock' data-id='Thurrock'/>\n   <circle id='svg_be8c2f440082a37d_e1282' cx='237.75' cy='128.79' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tonbridge and Malling' data-id='Tonbridge and Malling'/>\n   <circle id='svg_be8c2f440082a37d_e1283' cx='297.82' cy='108.27' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Torbay' data-id='Torbay'/>\n   <circle id='svg_be8c2f440082a37d_e1284' cx='337.54' cy='113.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Torfaen' data-id='Torfaen'/>\n   <circle id='svg_be8c2f440082a37d_e1285' cx='279.73' cy='112.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Torridge' data-id='Torridge'/>\n   <circle id='svg_be8c2f440082a37d_e1286' cx='220.53' cy='120.37' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tower Hamlets' data-id='Tower Hamlets'/>\n   <circle id='svg_be8c2f440082a37d_e1287' cx='249.66' cy='94.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Trafford' data-id='Trafford'/>\n   <circle id='svg_be8c2f440082a37d_e1288' cx='230.28' cy='128.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tunbridge Wells' data-id='Tunbridge Wells'/>\n   <circle id='svg_be8c2f440082a37d_e1289' cx='221.72' cy='109.59' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Uttlesford' data-id='Uttlesford'/>\n   <circle id='svg_be8c2f440082a37d_e1290' cx='280.29' cy='117.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Vale of Glamorgan' data-id='Vale of Glamorgan'/>\n   <circle id='svg_be8c2f440082a37d_e1291' cx='205.23' cy='109.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Vale of White Horse' data-id='Vale of White Horse'/>\n   <circle id='svg_be8c2f440082a37d_e1292' cx='283.55' cy='106.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wakefield' data-id='Wakefield'/>\n   <circle id='svg_be8c2f440082a37d_e1293' cx='279.63' cy='123.02' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Walsall' data-id='Walsall'/>\n   <circle id='svg_be8c2f440082a37d_e1294' cx='217.8' cy='110.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Waltham Forest' data-id='Waltham Forest'/>\n   <circle id='svg_be8c2f440082a37d_e1295' cx='212.04' cy='109.58' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wandsworth' data-id='Wandsworth'/>\n   <circle id='svg_be8c2f440082a37d_e1296' cx='251.08' cy='126.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Warrington' data-id='Warrington'/>\n   <circle id='svg_be8c2f440082a37d_e1297' cx='222.93' cy='100.93' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Warwick' data-id='Warwick'/>\n   <circle id='svg_be8c2f440082a37d_e1298' cx='217.25' cy='116.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Watford' data-id='Watford'/>\n   <circle id='svg_be8c2f440082a37d_e1299' cx='211.84' cy='121.61' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Waverley' data-id='Waverley'/>\n   <circle id='svg_be8c2f440082a37d_e1300' cx='246.44' cy='134.53' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wealden' data-id='Wealden'/>\n   <circle id='svg_be8c2f440082a37d_e1301' cx='219.42' cy='114.97' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Welwyn Hatfield' data-id='Welwyn Hatfield'/>\n   <circle id='svg_be8c2f440082a37d_e1302' cx='216.44' cy='120.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Berkshire' data-id='West Berkshire'/>\n   <circle id='svg_be8c2f440082a37d_e1303' cx='264.28' cy='124.02' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Devon' data-id='West Devon'/>\n   <circle id='svg_be8c2f440082a37d_e1304' cx='247.82' cy='96.25' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Lancashire' data-id='West Lancashire'/>\n   <circle id='svg_be8c2f440082a37d_e1305' cx='259.81' cy='119.62' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Lindsey' data-id='West Lindsey'/>\n   <circle id='svg_be8c2f440082a37d_e1306' cx='226.78' cy='110.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Northamptonshire' data-id='West Northamptonshire'/>\n   <circle id='svg_be8c2f440082a37d_e1307' cx='224.65' cy='104.43' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Oxfordshire' data-id='West Oxfordshire'/>\n   <circle id='svg_be8c2f440082a37d_e1308' cx='243.68' cy='111.84' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Suffolk' data-id='West Suffolk'/>\n   <circle id='svg_be8c2f440082a37d_e1309' cx='232.83' cy='112.47' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Westminster' data-id='Westminster'/>\n   <circle id='svg_be8c2f440082a37d_e1310' cx='281.34' cy='107.76' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wigan' data-id='Wigan'/>\n   <circle id='svg_be8c2f440082a37d_e1311' cx='235.03' cy='119.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wiltshire' data-id='Wiltshire'/>\n   <circle id='svg_be8c2f440082a37d_e1312' cx='221.49' cy='126.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Winchester' data-id='Winchester'/>\n   <circle id='svg_be8c2f440082a37d_e1313' cx='211.21' cy='112.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Windsor and Maidenhead' data-id='Windsor and Maidenhead'/>\n   <circle id='svg_be8c2f440082a37d_e1314' cx='288.47' cy='110.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wirral' data-id='Wirral'/>\n   <circle id='svg_be8c2f440082a37d_e1315' cx='215.77' cy='114.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Woking' data-id='Woking'/>\n   <circle id='svg_be8c2f440082a37d_e1316' cx='199.21' cy='114.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wokingham' data-id='Wokingham'/>\n   <circle id='svg_be8c2f440082a37d_e1317' cx='267.36' cy='126.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wolverhampton' data-id='Wolverhampton'/>\n   <circle id='svg_be8c2f440082a37d_e1318' cx='253.16' cy='131.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Worcester' data-id='Worcester'/>\n   <circle id='svg_be8c2f440082a37d_e1319' cx='244' cy='100.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Worthing' data-id='Worthing'/>\n   <circle id='svg_be8c2f440082a37d_e1320' cx='295.28' cy='120.28' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wrexham' data-id='Wrexham'/>\n   <circle id='svg_be8c2f440082a37d_e1321' cx='236.27' cy='111.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wychavon' data-id='Wychavon'/>\n   <circle id='svg_be8c2f440082a37d_e1322' cx='286.93' cy='122.37' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wyre' data-id='Wyre'/>\n   <circle id='svg_be8c2f440082a37d_e1323' cx='275.38' cy='118.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wyre Forest' data-id='Wyre Forest'/>\n   <circle id='svg_be8c2f440082a37d_e1324' cx='231' cy='100.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='York' data-id='York'/>\n   <circle id='svg_be8c2f440082a37d_e1325' cx='261.45' cy='68.27' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Adur' data-id='Adur'/>\n   <circle id='svg_be8c2f440082a37d_e1326' cx='358.19' cy='54.11' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Allerdale' data-id='Allerdale'/>\n   <circle id='svg_be8c2f440082a37d_e1327' cx='335.81' cy='55.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Amber Valley' data-id='Amber Valley'/>\n   <circle id='svg_be8c2f440082a37d_e1328' cx='306.04' cy='65.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Arun' data-id='Arun'/>\n   <circle id='svg_be8c2f440082a37d_e1329' cx='339.96' cy='65.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ashfield' data-id='Ashfield'/>\n   <circle id='svg_be8c2f440082a37d_e1330' cx='272.76' cy='54.59' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ashford' data-id='Ashford'/>\n   <circle id='svg_be8c2f440082a37d_e1331' cx='298.32' cy='37.13' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Babergh' data-id='Babergh'/>\n   <circle id='svg_be8c2f440082a37d_e1332' cx='224.44' cy='70.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barking and Dagenham' data-id='Barking and Dagenham'/>\n   <circle id='svg_be8c2f440082a37d_e1333' cx='244.81' cy='64.35' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barnet' data-id='Barnet'/>\n   <circle id='svg_be8c2f440082a37d_e1334' cx='311.08' cy='66.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barnsley' data-id='Barnsley'/>\n   <circle id='svg_be8c2f440082a37d_e1335' cx='369.42' cy='58.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barrow-in-Furness' data-id='Barrow-in-Furness'/>\n   <circle id='svg_be8c2f440082a37d_e1336' cx='276.38' cy='71.36' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Basildon' data-id='Basildon'/>\n   <circle id='svg_be8c2f440082a37d_e1337' cx='269.23' cy='71.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Basingstoke and Deane' data-id='Basingstoke and Deane'/>\n   <circle id='svg_be8c2f440082a37d_e1338' cx='282.78' cy='70.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bassetlaw' data-id='Bassetlaw'/>\n   <circle id='svg_be8c2f440082a37d_e1339' cx='251.35' cy='62.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bath and North East Somerset' data-id='Bath and North East Somerset'/>\n   <circle id='svg_be8c2f440082a37d_e1340' cx='277.84' cy='64.43' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bedford' data-id='Bedford'/>\n   <circle id='svg_be8c2f440082a37d_e1341' cx='234.15' cy='43.37' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bexley' data-id='Bexley'/>\n   <circle id='svg_be8c2f440082a37d_e1342' cx='251.63' cy='43.08' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Birmingham' data-id='Birmingham'/>\n   <circle id='svg_be8c2f440082a37d_e1343' cx='310.53' cy='75.56' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blaby' data-id='Blaby'/>\n   <circle id='svg_be8c2f440082a37d_e1344' cx='256.85' cy='51.42' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blackburn with Darwen' data-id='Blackburn with Darwen'/>\n   <circle id='svg_be8c2f440082a37d_e1345' cx='343.8' cy='65.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blackpool' data-id='Blackpool'/>\n   <circle id='svg_be8c2f440082a37d_e1346' cx='289.63' cy='47.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blaenau Gwent' data-id='Blaenau Gwent'/>\n   <circle id='svg_be8c2f440082a37d_e1347' cx='422.63' cy='57.87' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bolsover' data-id='Bolsover'/>\n   <circle id='svg_be8c2f440082a37d_e1348' cx='307.79' cy='72.73' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bolton' data-id='Bolton'/>\n   <circle id='svg_be8c2f440082a37d_e1349' cx='260.02' cy='44.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Boston' data-id='Boston'/>\n   <circle id='svg_be8c2f440082a37d_e1350' cx='293.49' cy='38.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bournemouth, Christchurch and Poole' data-id='Bournemouth, Christchurch and Poole'/>\n   <circle id='svg_be8c2f440082a37d_e1351' cx='221.25' cy='57.79' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bracknell Forest' data-id='Bracknell Forest'/>\n   <circle id='svg_be8c2f440082a37d_e1352' cx='280.15' cy='50.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bradford' data-id='Bradford'/>\n   <circle id='svg_be8c2f440082a37d_e1353' cx='263.1' cy='67.86' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Braintree' data-id='Braintree'/>\n   <circle id='svg_be8c2f440082a37d_e1354' cx='327.63' cy='51.02' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Breckland' data-id='Breckland'/>\n   <circle id='svg_be8c2f440082a37d_e1355' cx='195.79' cy='56.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Brent' data-id='Brent'/>\n   <circle id='svg_be8c2f440082a37d_e1356' cx='287.55' cy='68.83' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Brentwood' data-id='Brentwood'/>\n   <circle id='svg_be8c2f440082a37d_e1357' cx='315.99' cy='63.34' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bridgend' data-id='Bridgend'/>\n   <circle id='svg_be8c2f440082a37d_e1358' cx='263.26' cy='48.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Brighton and Hove' data-id='Brighton and Hove'/>\n   <circle id='svg_be8c2f440082a37d_e1359' cx='249.23' cy='76.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bristol' data-id='Bristol'/>\n   <circle id='svg_be8c2f440082a37d_e1360' cx='359.4' cy='61.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Broadland' data-id='Broadland'/>\n   <circle id='svg_be8c2f440082a37d_e1361' cx='269.23' cy='52.13' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bromley' data-id='Bromley'/>\n   <circle id='svg_be8c2f440082a37d_e1362' cx='215.71' cy='48.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bromsgrove' data-id='Bromsgrove'/>\n   <circle id='svg_be8c2f440082a37d_e1363' cx='221.91' cy='64.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Broxbourne' data-id='Broxbourne'/>\n   <circle id='svg_be8c2f440082a37d_e1364' cx='302.29' cy='54.4' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Broxtowe' data-id='Broxtowe'/>\n   <circle id='svg_be8c2f440082a37d_e1365' cx='256.57' cy='46.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Buckinghamshire' data-id='Buckinghamshire'/>\n   <circle id='svg_be8c2f440082a37d_e1366' cx='291.29' cy='44.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Burnley' data-id='Burnley'/>\n   <circle id='svg_be8c2f440082a37d_e1367' cx='274.44' cy='76.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bury' data-id='Bury'/>\n   <circle id='svg_be8c2f440082a37d_e1368' cx='405.87' cy='59.83' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Caerphilly' data-id='Caerphilly'/>\n   <circle id='svg_be8c2f440082a37d_e1369' cx='322.92' cy='51.82' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Calderdale' data-id='Calderdale'/>\n   <circle id='svg_be8c2f440082a37d_e1370' cx='219.38' cy='65.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cambridge' data-id='Cambridge'/>\n   <circle id='svg_be8c2f440082a37d_e1371' cx='249.55' cy='57.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Camden' data-id='Camden'/>\n   <circle id='svg_be8c2f440082a37d_e1372' cx='292.17' cy='49.61' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cannock Chase' data-id='Cannock Chase'/>\n   <circle id='svg_be8c2f440082a37d_e1373' cx='283.03' cy='51.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Canterbury' data-id='Canterbury'/>\n   <circle id='svg_be8c2f440082a37d_e1374' cx='276.41' cy='52.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cardiff' data-id='Cardiff'/>\n   <circle id='svg_be8c2f440082a37d_e1375' cx='249.61' cy='67.02' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Carlisle' data-id='Carlisle'/>\n   <circle id='svg_be8c2f440082a37d_e1376' cx='333.94' cy='62.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Carmarthenshire' data-id='Carmarthenshire'/>\n   <circle id='svg_be8c2f440082a37d_e1377' cx='279.1' cy='45.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Castle Point' data-id='Castle Point'/>\n   <circle id='svg_be8c2f440082a37d_e1378' cx='288.42' cy='57.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Central Bedfordshire' data-id='Central Bedfordshire'/>\n   <circle id='svg_be8c2f440082a37d_e1379' cx='288.24' cy='58.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ceredigion' data-id='Ceredigion'/>\n   <circle id='svg_be8c2f440082a37d_e1380' cx='291.26' cy='65.76' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Charnwood' data-id='Charnwood'/>\n   <circle id='svg_be8c2f440082a37d_e1381' cx='210.96' cy='67.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chelmsford' data-id='Chelmsford'/>\n   <circle id='svg_be8c2f440082a37d_e1382' cx='265.57' cy='50.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cheltenham' data-id='Cheltenham'/>\n   <circle id='svg_be8c2f440082a37d_e1383' cx='208.8' cy='52.62' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cherwell' data-id='Cherwell'/>\n   <circle id='svg_be8c2f440082a37d_e1384' cx='264.91' cy='55.64' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cheshire East' data-id='Cheshire East'/>\n   <circle id='svg_be8c2f440082a37d_e1385' cx='290.98' cy='76.42' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cheshire West and Chester' data-id='Cheshire West and Chester'/>\n   <circle id='svg_be8c2f440082a37d_e1386' cx='377.09' cy='57.54' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chesterfield' data-id='Chesterfield'/>\n   <circle id='svg_be8c2f440082a37d_e1387' cx='252.75' cy='45.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chichester' data-id='Chichester'/>\n   <circle id='svg_be8c2f440082a37d_e1388' cx='341.33' cy='52.54' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chorley' data-id='Chorley'/>\n   <circle id='svg_be8c2f440082a37d_e1389' cx='217.95' cy='55.74' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='City of London' data-id='City of London'/>\n   <circle id='svg_be8c2f440082a37d_e1390' cx='256.45' cy='65.61' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Colchester' data-id='Colchester'/>\n   <circle id='svg_be8c2f440082a37d_e1391' cx='329.81' cy='63.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Conwy' data-id='Conwy'/>\n   <circle id='svg_be8c2f440082a37d_e1392' cx='382.97' cy='58.53' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Copeland' data-id='Copeland'/>\n   <circle id='svg_be8c2f440082a37d_e1393' cx='285.36' cy='53.8' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cornwall' data-id='Cornwall'/>\n   <circle id='svg_be8c2f440082a37d_e1394' cx='223.43' cy='54.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cotswold' data-id='Cotswold'/>\n   <circle id='svg_be8c2f440082a37d_e1395' cx='315.48' cy='56.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='County Durham' data-id='County Durham'/>\n   <circle id='svg_be8c2f440082a37d_e1396' cx='238.79' cy='73.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Coventry' data-id='Coventry'/>\n   <circle id='svg_be8c2f440082a37d_e1397' cx='304.32' cy='59.69' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Craven' data-id='Craven'/>\n   <circle id='svg_be8c2f440082a37d_e1398' cx='192.54' cy='59.47' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Crawley' data-id='Crawley'/>\n   <circle id='svg_be8c2f440082a37d_e1399' cx='235.94' cy='49.46' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Croydon' data-id='Croydon'/>\n   <circle id='svg_be8c2f440082a37d_e1400' cx='232.71' cy='69.23' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dacorum' data-id='Dacorum'/>\n   <circle id='svg_be8c2f440082a37d_e1401' cx='341.69' cy='63.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Darlington' data-id='Darlington'/>\n   <circle id='svg_be8c2f440082a37d_e1402' cx='282.54' cy='46.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dartford' data-id='Dartford'/>\n   <circle id='svg_be8c2f440082a37d_e1403' cx='320.75' cy='47.82' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Denbighshire' data-id='Denbighshire'/>\n   <circle id='svg_be8c2f440082a37d_e1404' cx='303.89' cy='49.27' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Derby' data-id='Derby'/>\n   <circle id='svg_be8c2f440082a37d_e1405' cx='357.46' cy='59.84' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Derbyshire Dales' data-id='Derbyshire Dales'/>\n   <circle id='svg_be8c2f440082a37d_e1406' cx='298.8' cy='78.94' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Doncaster' data-id='Doncaster'/>\n   <circle id='svg_be8c2f440082a37d_e1407' cx='309.02' cy='67.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dorset' data-id='Dorset'/>\n   <circle id='svg_be8c2f440082a37d_e1408' cx='305.27' cy='55.84' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dover' data-id='Dover'/>\n   <circle id='svg_be8c2f440082a37d_e1409' cx='288.39' cy='78.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dudley' data-id='Dudley'/>\n   <circle id='svg_be8c2f440082a37d_e1410' cx='243.38' cy='51.39' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ealing' data-id='Ealing'/>\n   <circle id='svg_be8c2f440082a37d_e1411' cx='247.27' cy='59.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Cambridgeshire' data-id='East Cambridgeshire'/>\n   <circle id='svg_be8c2f440082a37d_e1412' cx='295.42' cy='72.87' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Devon' data-id='East Devon'/>\n   <circle id='svg_be8c2f440082a37d_e1413' cx='238.47' cy='67.93' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Hampshire' data-id='East Hampshire'/>\n   <circle id='svg_be8c2f440082a37d_e1414' cx='243.13' cy='46.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Hertfordshire' data-id='East Hertfordshire'/>\n   <circle id='svg_be8c2f440082a37d_e1415' cx='344.43' cy='57.46' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Lindsey' data-id='East Lindsey'/>\n   <circle id='svg_be8c2f440082a37d_e1416' cx='281.75' cy='56.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Riding of Yorkshire' data-id='East Riding of Yorkshire'/>\n   <circle id='svg_be8c2f440082a37d_e1417' cx='244.61' cy='74.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Staffordshire' data-id='East Staffordshire'/>\n   <circle id='svg_be8c2f440082a37d_e1418' cx='317.33' cy='49.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Suffolk' data-id='East Suffolk'/>\n   <circle id='svg_be8c2f440082a37d_e1419' cx='295.71' cy='50.82' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Eastbourne' data-id='Eastbourne'/>\n   <circle id='svg_be8c2f440082a37d_e1420' cx='251.85' cy='64.46' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Eastleigh' data-id='Eastleigh'/>\n   <circle id='svg_be8c2f440082a37d_e1421' cx='245.08' cy='43.76' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Eden' data-id='Eden'/>\n   <circle id='svg_be8c2f440082a37d_e1422' cx='218.67' cy='48.94' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Elmbridge' data-id='Elmbridge'/>\n   <circle id='svg_be8c2f440082a37d_e1423' cx='231.49' cy='64.79' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Enfield' data-id='Enfield'/>\n   <circle id='svg_be8c2f440082a37d_e1424' cx='226.84' cy='52.22' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Epping Forest' data-id='Epping Forest'/>\n   <circle id='svg_be8c2f440082a37d_e1425' cx='241.33' cy='70.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Epsom and Ewell' data-id='Epsom and Ewell'/>\n   <circle id='svg_be8c2f440082a37d_e1426' cx='297.02' cy='70.11' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Erewash' data-id='Erewash'/>\n   <circle id='svg_be8c2f440082a37d_e1427' cx='225.66' cy='66.93' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Exeter' data-id='Exeter'/>\n   <circle id='svg_be8c2f440082a37d_e1428' cx='317.57' cy='66.3' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Fareham' data-id='Fareham'/>\n   <circle id='svg_be8c2f440082a37d_e1429' cx='284.11' cy='41.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Fenland' data-id='Fenland'/>\n   <circle id='svg_be8c2f440082a37d_e1430' cx='210.64' cy='49.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Flintshire' data-id='Flintshire'/>\n   <circle id='svg_be8c2f440082a37d_e1431' cx='276.59' cy='62.12' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Folkestone and Hythe' data-id='Folkestone and Hythe'/>\n   <circle id='svg_be8c2f440082a37d_e1432' cx='291.78' cy='71.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Forest of Dean' data-id='Forest of Dean'/>\n   <circle id='svg_be8c2f440082a37d_e1433' cx='374.55' cy='60.53' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Fylde' data-id='Fylde'/>\n   <circle id='svg_be8c2f440082a37d_e1434' cx='307.1' cy='60.82' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gateshead' data-id='Gateshead'/>\n   <circle id='svg_be8c2f440082a37d_e1435' cx='304.56' cy='39.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gedling' data-id='Gedling'/>\n   <circle id='svg_be8c2f440082a37d_e1436' cx='262.9' cy='77.64' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gloucester' data-id='Gloucester'/>\n   <circle id='svg_be8c2f440082a37d_e1437' cx='323.01' cy='65.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gosport' data-id='Gosport'/>\n   <circle id='svg_be8c2f440082a37d_e1438' cx='250.18' cy='71.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gravesham' data-id='Gravesham'/>\n   <circle id='svg_be8c2f440082a37d_e1439' cx='306.04' cy='45.87' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Great Yarmouth' data-id='Great Yarmouth'/>\n   <circle id='svg_be8c2f440082a37d_e1440' cx='224.57' cy='55.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Greenwich' data-id='Greenwich'/>\n   <circle id='svg_be8c2f440082a37d_e1441' cx='247.19' cy='49.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Guildford' data-id='Guildford'/>\n   <circle id='svg_be8c2f440082a37d_e1442' cx='227.07' cy='44.8' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gwynedd' data-id='Gwynedd'/>\n   <circle id='svg_be8c2f440082a37d_e1443' cx='236.36' cy='58.82' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hackney' data-id='Hackney'/>\n   <circle id='svg_be8c2f440082a37d_e1444' cx='313.27' cy='54.3' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Halton' data-id='Halton'/>\n   <circle id='svg_be8c2f440082a37d_e1445' cx='300.67' cy='73.28' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hambleton' data-id='Hambleton'/>\n   <circle id='svg_be8c2f440082a37d_e1446' cx='243.25' cy='72.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hammersmith and Fulham' data-id='Hammersmith and Fulham'/>\n   <circle id='svg_be8c2f440082a37d_e1447' cx='363.05' cy='55.86' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harborough' data-id='Harborough'/>\n   <circle id='svg_be8c2f440082a37d_e1448' cx='230.82' cy='56.74' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Haringey' data-id='Haringey'/>\n   <circle id='svg_be8c2f440082a37d_e1449' cx='330.69' cy='58.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harlow' data-id='Harlow'/>\n   <circle id='svg_be8c2f440082a37d_e1450' cx='250.95' cy='52.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harrogate' data-id='Harrogate'/>\n   <circle id='svg_be8c2f440082a37d_e1451' cx='201.59' cy='59.58' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harrow' data-id='Harrow'/>\n   <circle id='svg_be8c2f440082a37d_e1452' cx='233.61' cy='60.93' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hart' data-id='Hart'/>\n   <circle id='svg_be8c2f440082a37d_e1453' cx='309.22' cy='49.23' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hartlepool' data-id='Hartlepool'/>\n   <circle id='svg_be8c2f440082a37d_e1454' cx='272.76' cy='63.91' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hastings' data-id='Hastings'/>\n   <circle id='svg_be8c2f440082a37d_e1455' cx='296.25' cy='39.79' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Havant' data-id='Havant'/>\n   <circle id='svg_be8c2f440082a37d_e1456' cx='208.83' cy='54.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Havering' data-id='Havering'/>\n   <circle id='svg_be8c2f440082a37d_e1457' cx='288.36' cy='38.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Herefordshire' data-id='Herefordshire'/>\n   <circle id='svg_be8c2f440082a37d_e1458' cx='212.73' cy='63.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hertsmere' data-id='Hertsmere'/>\n   <circle id='svg_be8c2f440082a37d_e1459' cx='263.47' cy='53.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='High Peak' data-id='High Peak'/>\n   <circle id='svg_be8c2f440082a37d_e1460' cx='209.23' cy='59.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hillingdon' data-id='Hillingdon'/>\n   <circle id='svg_be8c2f440082a37d_e1461' cx='308.57' cy='63.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hinckley and Bosworth' data-id='Hinckley and Bosworth'/>\n   <circle id='svg_be8c2f440082a37d_e1462' cx='239.36' cy='42.63' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Horsham' data-id='Horsham'/>\n   <circle id='svg_be8c2f440082a37d_e1463' cx='215.3' cy='60.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hounslow' data-id='Hounslow'/>\n   <circle id='svg_be8c2f440082a37d_e1464' cx='288.68' cy='68.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Huntingdonshire' data-id='Huntingdonshire'/>\n   <circle id='svg_be8c2f440082a37d_e1465' cx='333.97' cy='65.06' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hyndburn' data-id='Hyndburn'/>\n   <circle id='svg_be8c2f440082a37d_e1466' cx='263.02' cy='58.08' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ipswich' data-id='Ipswich'/>\n   <circle id='svg_be8c2f440082a37d_e1467' cx='295.23' cy='45.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Isle of Anglesey' data-id='Isle of Anglesey'/>\n   <circle id='svg_be8c2f440082a37d_e1468' cx='314.36' cy='71.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Isle of Wight' data-id='Isle of Wight'/>\n   <circle id='svg_be8c2f440082a37d_e1469' cx='405.87' cy='57.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Isles of Scilly' data-id='Isles of Scilly'/>\n   <circle id='svg_be8c2f440082a37d_e1470' cx='234.51' cy='72.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Islington' data-id='Islington'/>\n   <circle id='svg_be8c2f440082a37d_e1471' cx='273.41' cy='49.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kensington and Chelsea' data-id='Kensington and Chelsea'/>\n   <circle id='svg_be8c2f440082a37d_e1472' cx='318.04' cy='53.39' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='King&amp;#39;s Lynn and West Norfolk' data-id='King’s Lynn and West Norfolk'/>\n   <circle id='svg_be8c2f440082a37d_e1473' cx='266.71' cy='41.13' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kingston upon Hull' data-id='Kingston upon Hull'/>\n   <circle id='svg_be8c2f440082a37d_e1474' cx='257.1' cy='60.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kingston upon Thames' data-id='Kingston upon Thames'/>\n   <circle id='svg_be8c2f440082a37d_e1475' cx='296.33' cy='64.61' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kirklees' data-id='Kirklees'/>\n   <circle id='svg_be8c2f440082a37d_e1476' cx='340.03' cy='56.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Knowsley' data-id='Knowsley'/>\n   <circle id='svg_be8c2f440082a37d_e1477' cx='229.16' cy='72.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lambeth' data-id='Lambeth'/>\n   <circle id='svg_be8c2f440082a37d_e1478' cx='300.85' cy='51.65' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lancaster' data-id='Lancaster'/>\n   <circle id='svg_be8c2f440082a37d_e1479' cx='248.63' cy='39.5' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Leeds' data-id='Leeds'/>\n   <circle id='svg_be8c2f440082a37d_e1480' cx='220.32' cy='52.12' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Leicester' data-id='Leicester'/>\n   <circle id='svg_be8c2f440082a37d_e1481' cx='274.1' cy='40.69' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lewes' data-id='Lewes'/>\n   <circle id='svg_be8c2f440082a37d_e1482' cx='220.92' cy='71.88' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lewisham' data-id='Lewisham'/>\n   <circle id='svg_be8c2f440082a37d_e1483' cx='307.27' cy='41.39' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lichfield' data-id='Lichfield'/>\n   <circle id='svg_be8c2f440082a37d_e1484' cx='235.73' cy='68.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lincoln' data-id='Lincoln'/>\n   <circle id='svg_be8c2f440082a37d_e1485' cx='273.15' cy='45.28' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Liverpool' data-id='Liverpool'/>\n   <circle id='svg_be8c2f440082a37d_e1486' cx='213.9' cy='66.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Luton' data-id='Luton'/>\n   <circle id='svg_be8c2f440082a37d_e1487' cx='242.61' cy='39.63' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Maidstone' data-id='Maidstone'/>\n   <circle id='svg_be8c2f440082a37d_e1488' cx='265.75' cy='60.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Maldon' data-id='Maldon'/>\n   <circle id='svg_be8c2f440082a37d_e1489' cx='280.26' cy='59.82' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Malvern Hills' data-id='Malvern Hills'/>\n   <circle id='svg_be8c2f440082a37d_e1490' cx='242.66' cy='56.6' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Manchester' data-id='Manchester'/>\n   <circle id='svg_be8c2f440082a37d_e1491' cx='288.21' cy='48.47' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mansfield' data-id='Mansfield'/>\n   <circle id='svg_be8c2f440082a37d_e1492' cx='281.84' cy='65.69' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Medway' data-id='Medway'/>\n   <circle id='svg_be8c2f440082a37d_e1493' cx='303.76' cy='70.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Melton' data-id='Melton'/>\n   <circle id='svg_be8c2f440082a37d_e1494' cx='300.14' cy='67.91' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mendip' data-id='Mendip'/>\n   <circle id='svg_be8c2f440082a37d_e1495' cx='353.85' cy='59.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Merthyr Tydfil' data-id='Merthyr Tydfil'/>\n   <circle id='svg_be8c2f440082a37d_e1496' cx='237.73' cy='39.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Merton' data-id='Merton'/>\n   <circle id='svg_be8c2f440082a37d_e1497' cx='301.63' cy='62.42' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mid Devon' data-id='Mid Devon'/>\n   <circle id='svg_be8c2f440082a37d_e1498' cx='281.73' cy='75.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mid Suffolk' data-id='Mid Suffolk'/>\n   <circle id='svg_be8c2f440082a37d_e1499' cx='267.47' cy='66.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mid Sussex' data-id='Mid Sussex'/>\n   <circle id='svg_be8c2f440082a37d_e1500' cx='281.51' cy='41.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Middlesbrough' data-id='Middlesbrough'/>\n   <circle id='svg_be8c2f440082a37d_e1501' cx='261.91' cy='48.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Milton Keynes' data-id='Milton Keynes'/>\n   <circle id='svg_be8c2f440082a37d_e1502' cx='268.17' cy='47.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mole Valley' data-id='Mole Valley'/>\n   <circle id='svg_be8c2f440082a37d_e1503' cx='347.09' cy='61.13' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Monmouthshire' data-id='Monmouthshire'/>\n   <circle id='svg_be8c2f440082a37d_e1504' cx='353.78' cy='56.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Neath Port Talbot' data-id='Neath Port Talbot'/>\n   <circle id='svg_be8c2f440082a37d_e1505' cx='331.33' cy='48.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='New Forest' data-id='New Forest'/>\n   <circle id='svg_be8c2f440082a37d_e1506' cx='294.84' cy='67.35' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newark and Sherwood' data-id='Newark and Sherwood'/>\n   <circle id='svg_be8c2f440082a37d_e1507' cx='264.38' cy='75.19' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newcastle upon Tyne' data-id='Newcastle upon Tyne'/>\n   <circle id='svg_be8c2f440082a37d_e1508' cx='300.45' cy='46.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newcastle-under-Lyme' data-id='Newcastle-under-Lyme'/>\n   <circle id='svg_be8c2f440082a37d_e1509' cx='204.62' cy='64.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newham' data-id='Newham'/>\n   <circle id='svg_be8c2f440082a37d_e1510' cx='322.63' cy='63.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newport' data-id='Newport'/>\n   <circle id='svg_be8c2f440082a37d_e1511' cx='294.73' cy='56.34' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Devon' data-id='North Devon'/>\n   <circle id='svg_be8c2f440082a37d_e1512' cx='296.25' cy='75.64' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North East Derbyshire' data-id='North East Derbyshire'/>\n   <circle id='svg_be8c2f440082a37d_e1513' cx='343.75' cy='50.91' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North East Lincolnshire' data-id='North East Lincolnshire'/>\n   <circle id='svg_be8c2f440082a37d_e1514' cx='213.09' cy='51.94' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Hertfordshire' data-id='North Hertfordshire'/>\n   <circle id='svg_be8c2f440082a37d_e1515' cx='264.24' cy='43.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Kesteven' data-id='North Kesteven'/>\n   <circle id='svg_be8c2f440082a37d_e1516' cx='241.52' cy='50.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Lincolnshire' data-id='North Lincolnshire'/>\n   <circle id='svg_be8c2f440082a37d_e1517' cx='243.64' cy='61.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Norfolk' data-id='North Norfolk'/>\n   <circle id='svg_be8c2f440082a37d_e1518' cx='234.73' cy='63.28' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Northamptonshire' data-id='North Northamptonshire'/>\n   <circle id='svg_be8c2f440082a37d_e1519' cx='343.01' cy='58.97' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Somerset' data-id='North Somerset'/>\n   <circle id='svg_be8c2f440082a37d_e1520' cx='320.86' cy='69.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Tyneside' data-id='North Tyneside'/>\n   <circle id='svg_be8c2f440082a37d_e1521' cx='322.35' cy='57.47' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Warwickshire' data-id='North Warwickshire'/>\n   <circle id='svg_be8c2f440082a37d_e1522' cx='238.99' cy='62.97' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North West Leicestershire' data-id='North West Leicestershire'/>\n   <circle id='svg_be8c2f440082a37d_e1523' cx='370.14' cy='60.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Northumberland' data-id='Northumberland'/>\n   <circle id='svg_be8c2f440082a37d_e1524' cx='287.28' cy='43.58' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Norwich' data-id='Norwich'/>\n   <circle id='svg_be8c2f440082a37d_e1525' cx='283.93' cy='61.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Nottingham' data-id='Nottingham'/>\n   <circle id='svg_be8c2f440082a37d_e1526' cx='267.21' cy='56.87' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Nuneaton and Bedworth' data-id='Nuneaton and Bedworth'/>\n   <circle id='svg_be8c2f440082a37d_e1527' cx='239.48' cy='75.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Oadby and Wigston' data-id='Oadby and Wigston'/>\n   <circle id='svg_be8c2f440082a37d_e1528' cx='292.71' cy='60.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Oldham' data-id='Oldham'/>\n   <circle id='svg_be8c2f440082a37d_e1529' cx='202.08' cy='54.03' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Oxford' data-id='Oxford'/>\n   <circle id='svg_be8c2f440082a37d_e1530' cx='339.31' cy='51.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Pembrokeshire' data-id='Pembrokeshire'/>\n   <circle id='svg_be8c2f440082a37d_e1531' cx='244.74' cy='54.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Pendle' data-id='Pendle'/>\n   <circle id='svg_be8c2f440082a37d_e1532' cx='263.39' cy='72.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Peterborough' data-id='Peterborough'/>\n   <circle id='svg_be8c2f440082a37d_e1533' cx='290.75' cy='41.76' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Plymouth' data-id='Plymouth'/>\n   <circle id='svg_be8c2f440082a37d_e1534' cx='263.83' cy='62.97' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Portsmouth' data-id='Portsmouth'/>\n   <circle id='svg_be8c2f440082a37d_e1535' cx='333.97' cy='53.12' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Powys' data-id='Powys'/>\n   <circle id='svg_be8c2f440082a37d_e1536' cx='253.22' cy='69.12' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Preston' data-id='Preston'/>\n   <circle id='svg_be8c2f440082a37d_e1537' cx='217.27' cy='68.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Reading' data-id='Reading'/>\n   <circle id='svg_be8c2f440082a37d_e1538' cx='222.85' cy='68.58' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Redbridge' data-id='Redbridge'/>\n   <circle id='svg_be8c2f440082a37d_e1539' cx='402.64' cy='56.93' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Redcar and Cleveland' data-id='Redcar and Cleveland'/>\n   <circle id='svg_be8c2f440082a37d_e1540' cx='356.97' cy='56.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Redditch' data-id='Redditch'/>\n   <circle id='svg_be8c2f440082a37d_e1541' cx='238.62' cy='47.87' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Reigate and Banstead' data-id='Reigate and Banstead'/>\n   <circle id='svg_be8c2f440082a37d_e1542' cx='326.13' cy='56.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rhondda Cynon Taf' data-id='Rhondda Cynon Taf'/>\n   <circle id='svg_be8c2f440082a37d_e1543' cx='371.14' cy='56.22' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ribble Valley' data-id='Ribble Valley'/>\n   <circle id='svg_be8c2f440082a37d_e1544' cx='214.79' cy='54.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Richmond upon Thames' data-id='Richmond upon Thames'/>\n   <circle id='svg_be8c2f440082a37d_e1545' cx='220.32' cy='59.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Richmondshire' data-id='Richmondshire'/>\n   <circle id='svg_be8c2f440082a37d_e1546' cx='323.36' cy='54.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rochdale' data-id='Rochdale'/>\n   <circle id='svg_be8c2f440082a37d_e1547' cx='279.77' cy='69.08' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rochford' data-id='Rochford'/>\n   <circle id='svg_be8c2f440082a37d_e1548' cx='407.85' cy='58.86' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rossendale' data-id='Rossendale'/>\n   <circle id='svg_be8c2f440082a37d_e1549' cx='309.39' cy='58.37' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rother' data-id='Rother'/>\n   <circle id='svg_be8c2f440082a37d_e1550' cx='290.1' cy='52.46' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rotherham' data-id='Rotherham'/>\n   <circle id='svg_be8c2f440082a37d_e1551' cx='311.24' cy='49.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rugby' data-id='Rugby'/>\n   <circle id='svg_be8c2f440082a37d_e1552' cx='205.74' cy='57.31' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Runnymede' data-id='Runnymede'/>\n   <circle id='svg_be8c2f440082a37d_e1553' cx='244.05' cy='41.03' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rushcliffe' data-id='Rushcliffe'/>\n   <circle id='svg_be8c2f440082a37d_e1554' cx='218.62' cy='62.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rushmoor' data-id='Rushmoor'/>\n   <circle id='svg_be8c2f440082a37d_e1555' cx='195.9' cy='60.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rutland' data-id='Rutland'/>\n   <circle id='svg_be8c2f440082a37d_e1556' cx='271.12' cy='61.61' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ryedale' data-id='Ryedale'/>\n   <circle id='svg_be8c2f440082a37d_e1557' cx='299.38' cy='57.03' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Salford' data-id='Salford'/>\n   <circle id='svg_be8c2f440082a37d_e1558' cx='265.42' cy='70.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sandwell' data-id='Sandwell'/>\n   <circle id='svg_be8c2f440082a37d_e1559' cx='325.26' cy='67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Scarborough' data-id='Scarborough'/>\n   <circle id='svg_be8c2f440082a37d_e1560' cx='245.43' cy='69.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sedgemoor' data-id='Sedgemoor'/>\n   <circle id='svg_be8c2f440082a37d_e1561' cx='293.86' cy='78.27' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sefton' data-id='Sefton'/>\n   <circle id='svg_be8c2f440082a37d_e1562' cx='340.75' cy='61.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Selby' data-id='Selby'/>\n   <circle id='svg_be8c2f440082a37d_e1563' cx='242.65' cy='77.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sevenoaks' data-id='Sevenoaks'/>\n   <circle id='svg_be8c2f440082a37d_e1564' cx='256.69' cy='70.35' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sheffield' data-id='Sheffield'/>\n   <circle id='svg_be8c2f440082a37d_e1565' cx='275.9' cy='66.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Shropshire' data-id='Shropshire'/>\n   <circle id='svg_be8c2f440082a37d_e1566' cx='197.81' cy='57.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Slough' data-id='Slough'/>\n   <circle id='svg_be8c2f440082a37d_e1567' cx='251.79' cy='54.97' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Solihull' data-id='Solihull'/>\n   <circle id='svg_be8c2f440082a37d_e1568' cx='351.32' cy='54.36' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Somerset West and Taunton' data-id='Somerset West and Taunton'/>\n   <circle id='svg_be8c2f440082a37d_e1569' cx='307.88' cy='53.61' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Cambridgeshire' data-id='South Cambridgeshire'/>\n   <circle id='svg_be8c2f440082a37d_e1570' cx='255.4' cy='75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Derbyshire' data-id='South Derbyshire'/>\n   <circle id='svg_be8c2f440082a37d_e1571' cx='262.58' cy='38.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Gloucestershire' data-id='South Gloucestershire'/>\n   <circle id='svg_be8c2f440082a37d_e1572' cx='301.7' cy='40.98' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Hams' data-id='South Hams'/>\n   <circle id='svg_be8c2f440082a37d_e1573' cx='256.03' cy='56.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Holland' data-id='South Holland'/>\n   <circle id='svg_be8c2f440082a37d_e1574' cx='286.87' cy='63.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Kesteven' data-id='South Kesteven'/>\n   <circle id='svg_be8c2f440082a37d_e1575' cx='295.85' cy='61.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Lakeland' data-id='South Lakeland'/>\n   <circle id='svg_be8c2f440082a37d_e1576' cx='308.68' cy='44.42' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Norfolk' data-id='South Norfolk'/>\n   <circle id='svg_be8c2f440082a37d_e1577' cx='224.36' cy='46.87' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Oxfordshire' data-id='South Oxfordshire'/>\n   <circle id='svg_be8c2f440082a37d_e1578' cx='249.87' cy='47.65' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Ribble' data-id='South Ribble'/>\n   <circle id='svg_be8c2f440082a37d_e1579' cx='338.6' cy='60.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Somerset' data-id='South Somerset'/>\n   <circle id='svg_be8c2f440082a37d_e1580' cx='273.98' cy='59.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Staffordshire' data-id='South Staffordshire'/>\n   <circle id='svg_be8c2f440082a37d_e1581' cx='326.36' cy='61.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Tyneside' data-id='South Tyneside'/>\n   <circle id='svg_be8c2f440082a37d_e1582' cx='272.65' cy='73.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Southampton' data-id='Southampton'/>\n   <circle id='svg_be8c2f440082a37d_e1583' cx='324.13' cy='49.19' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Southend-on-Sea' data-id='Southend-on-Sea'/>\n   <circle id='svg_be8c2f440082a37d_e1584' cx='183.58' cy='58.23' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Southwark' data-id='Southwark'/>\n   <circle id='svg_be8c2f440082a37d_e1585' cx='238.86' cy='52.86' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Spelthorne' data-id='Spelthorne'/>\n   <circle id='svg_be8c2f440082a37d_e1586' cx='277.02' cy='43.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='St Albans' data-id='St Albans'/>\n   <circle id='svg_be8c2f440082a37d_e1587' cx='296.25' cy='53.58' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='St. Helens' data-id='St. Helens'/>\n   <circle id='svg_be8c2f440082a37d_e1588' cx='313.56' cy='46.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stafford' data-id='Stafford'/>\n   <circle id='svg_be8c2f440082a37d_e1589' cx='365.07' cy='58.36' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Staffordshire Moorlands' data-id='Staffordshire Moorlands'/>\n   <circle id='svg_be8c2f440082a37d_e1590' cx='277.13' cy='73.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stevenage' data-id='Stevenage'/>\n   <circle id='svg_be8c2f440082a37d_e1591' cx='311.27' cy='70.83' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stockport' data-id='Stockport'/>\n   <circle id='svg_be8c2f440082a37d_e1592' cx='330.38' cy='53.82' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stockton-on-Tees' data-id='Stockton-on-Tees'/>\n   <circle id='svg_be8c2f440082a37d_e1593' cx='285.15' cy='73.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stoke-on-Trent' data-id='Stoke-on-Trent'/>\n   <circle id='svg_be8c2f440082a37d_e1594' cx='291.05' cy='55.06' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stratford-on-Avon' data-id='Stratford-on-Avon'/>\n   <circle id='svg_be8c2f440082a37d_e1595' cx='258.35' cy='72.86' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stroud' data-id='Stroud'/>\n   <circle id='svg_be8c2f440082a37d_e1596' cx='352.84' cy='62.34' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sunderland' data-id='Sunderland'/>\n   <circle id='svg_be8c2f440082a37d_e1597' cx='207.48' cy='61.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Surrey Heath' data-id='Surrey Heath'/>\n   <circle id='svg_be8c2f440082a37d_e1598' cx='233.17' cy='52.37' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sutton' data-id='Sutton'/>\n   <circle id='svg_be8c2f440082a37d_e1599' cx='290.73' cy='63.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Swale' data-id='Swale'/>\n   <circle id='svg_be8c2f440082a37d_e1600' cx='332.07' cy='67.64' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Swansea' data-id='Swansea'/>\n   <circle id='svg_be8c2f440082a37d_e1601' cx='297.5' cy='59.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Swindon' data-id='Swindon'/>\n   <circle id='svg_be8c2f440082a37d_e1602' cx='305.22' cy='76.22' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tameside' data-id='Tameside'/>\n   <circle id='svg_be8c2f440082a37d_e1603' cx='277.69' cy='55.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tamworth' data-id='Tamworth'/>\n   <circle id='svg_be8c2f440082a37d_e1604' cx='262.38' cy='58.53' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tandridge' data-id='Tandridge'/>\n   <circle id='svg_be8c2f440082a37d_e1605' cx='313.27' cy='62.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Teignbridge' data-id='Teignbridge'/>\n   <circle id='svg_be8c2f440082a37d_e1606' cx='266.89' cy='76.22' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Telford and Wrekin' data-id='Telford and Wrekin'/>\n   <circle id='svg_be8c2f440082a37d_e1607' cx='303.12' cy='64.98' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tendring' data-id='Tendring'/>\n   <circle id='svg_be8c2f440082a37d_e1608' cx='273.27' cy='68.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Test Valley' data-id='Test Valley'/>\n   <circle id='svg_be8c2f440082a37d_e1609' cx='302.17' cy='75.73' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tewkesbury' data-id='Tewkesbury'/>\n   <circle id='svg_be8c2f440082a37d_e1610' cx='310.65' cy='58.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Thanet' data-id='Thanet'/>\n   <circle id='svg_be8c2f440082a37d_e1611' cx='220.82' cy='45.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Three Rivers' data-id='Three Rivers'/>\n   <circle id='svg_be8c2f440082a37d_e1612' cx='232.69' cy='48.28' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Thurrock' data-id='Thurrock'/>\n   <circle id='svg_be8c2f440082a37d_e1613' cx='319.7' cy='59.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tonbridge and Malling' data-id='Tonbridge and Malling'/>\n   <circle id='svg_be8c2f440082a37d_e1614' cx='306.04' cy='70.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Torbay' data-id='Torbay'/>\n   <circle id='svg_be8c2f440082a37d_e1615' cx='354.05' cy='52.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Torfaen' data-id='Torfaen'/>\n   <circle id='svg_be8c2f440082a37d_e1616' cx='296.96' cy='42.56' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Torridge' data-id='Torridge'/>\n   <circle id='svg_be8c2f440082a37d_e1617' cx='224.34' cy='61.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tower Hamlets' data-id='Tower Hamlets'/>\n   <circle id='svg_be8c2f440082a37d_e1618' cx='251.64' cy='73.97' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Trafford' data-id='Trafford'/>\n   <circle id='svg_be8c2f440082a37d_e1619' cx='237.85' cy='77.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tunbridge Wells' data-id='Tunbridge Wells'/>\n   <circle id='svg_be8c2f440082a37d_e1620' cx='225.53' cy='48.62' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Uttlesford' data-id='Uttlesford'/>\n   <circle id='svg_be8c2f440082a37d_e1621' cx='310.18' cy='40.73' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Vale of Glamorgan' data-id='Vale of Glamorgan'/>\n   <circle id='svg_be8c2f440082a37d_e1622' cx='238.4' cy='57.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Vale of White Horse' data-id='Vale of White Horse'/>\n   <circle id='svg_be8c2f440082a37d_e1623' cx='342.5' cy='54.8' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wakefield' data-id='Wakefield'/>\n   <circle id='svg_be8c2f440082a37d_e1624' cx='323.92' cy='60.27' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Walsall' data-id='Walsall'/>\n   <circle id='svg_be8c2f440082a37d_e1625' cx='211.68' cy='57.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Waltham Forest' data-id='Waltham Forest'/>\n   <circle id='svg_be8c2f440082a37d_e1626' cx='222.31' cy='50.62' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wandsworth' data-id='Wandsworth'/>\n   <circle id='svg_be8c2f440082a37d_e1627' cx='303.48' cy='43.97' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Warrington' data-id='Warrington'/>\n   <circle id='svg_be8c2f440082a37d_e1628' cx='241.2' cy='44.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Warwick' data-id='Warwick'/>\n   <circle id='svg_be8c2f440082a37d_e1629' cx='208.8' cy='63.84' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Watford' data-id='Watford'/>\n   <circle id='svg_be8c2f440082a37d_e1630' cx='240.56' cy='65.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Waverley' data-id='Waverley'/>\n   <circle id='svg_be8c2f440082a37d_e1631' cx='290.08' cy='73.56' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wealden' data-id='Wealden'/>\n   <circle id='svg_be8c2f440082a37d_e1632' cx='226.99' cy='59.62' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Welwyn Hatfield' data-id='Welwyn Hatfield'/>\n   <circle id='svg_be8c2f440082a37d_e1633' cx='235.04' cy='45.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Berkshire' data-id='West Berkshire'/>\n   <circle id='svg_be8c2f440082a37d_e1634' cx='240.49' cy='55.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Devon' data-id='West Devon'/>\n   <circle id='svg_be8c2f440082a37d_e1635' cx='253.74' cy='59.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Lancashire' data-id='West Lancashire'/>\n   <circle id='svg_be8c2f440082a37d_e1636' cx='365.53' cy='53.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Lindsey' data-id='West Lindsey'/>\n   <circle id='svg_be8c2f440082a37d_e1637' cx='242.9' cy='67.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Northamptonshire' data-id='West Northamptonshire'/>\n   <circle id='svg_be8c2f440082a37d_e1638' cx='259.51' cy='53.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Oxfordshire' data-id='West Oxfordshire'/>\n   <circle id='svg_be8c2f440082a37d_e1639' cx='234.52' cy='54.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Suffolk' data-id='West Suffolk'/>\n   <circle id='svg_be8c2f440082a37d_e1640' cx='253.38' cy='50.28' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Westminster' data-id='Westminster'/>\n   <circle id='svg_be8c2f440082a37d_e1641' cx='297.49' cy='48.08' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wigan' data-id='Wigan'/>\n   <circle id='svg_be8c2f440082a37d_e1642' cx='255.23' cy='40.88' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wiltshire' data-id='Wiltshire'/>\n   <circle id='svg_be8c2f440082a37d_e1643' cx='259.8' cy='63.35' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Winchester' data-id='Winchester'/>\n   <circle id='svg_be8c2f440082a37d_e1644' cx='258.31' cy='41.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Windsor and Maidenhead' data-id='Windsor and Maidenhead'/>\n   <circle id='svg_be8c2f440082a37d_e1645' cx='369.22' cy='62.34' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wirral' data-id='Wirral'/>\n   <circle id='svg_be8c2f440082a37d_e1646' cx='224.92' cy='63.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Woking' data-id='Woking'/>\n   <circle id='svg_be8c2f440082a37d_e1647' cx='265.02' cy='65.4' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wokingham' data-id='Wokingham'/>\n   <circle id='svg_be8c2f440082a37d_e1648' cx='242.6' cy='60.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wolverhampton' data-id='Wolverhampton'/>\n   <circle id='svg_be8c2f440082a37d_e1649' cx='274.94' cy='57.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Worcester' data-id='Worcester'/>\n   <circle id='svg_be8c2f440082a37d_e1650' cx='306.51' cy='50.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Worthing' data-id='Worthing'/>\n   <circle id='svg_be8c2f440082a37d_e1651' cx='276.3' cy='48.27' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wrexham' data-id='Wrexham'/>\n   <circle id='svg_be8c2f440082a37d_e1652' cx='265.09' cy='45.88' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wychavon' data-id='Wychavon'/>\n   <circle id='svg_be8c2f440082a37d_e1653' cx='354.05' cy='63.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wyre' data-id='Wyre'/>\n   <circle id='svg_be8c2f440082a37d_e1654' cx='333.12' cy='57.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wyre Forest' data-id='Wyre Forest'/>\n   <circle id='svg_be8c2f440082a37d_e1655' cx='272.64' cy='42.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='York' data-id='York'/>\n  <\/g>\n  <g clip-path='url(#svg_be8c2f440082a37d_c1)'>\n   <text x='58.39' y='281.98' font-size='6.6pt' font-family='Arial' fill='#4D4D4D' fill-opacity='1'>Gay or Lesbian<\/text>\n   <text x='23.17' y='226.83' font-size='6.6pt' font-family='Arial' fill='#4D4D4D' fill-opacity='1'>Straight or Heterosexual<\/text>\n   <text x='84.83' y='171.68' font-size='6.6pt' font-family='Arial' fill='#4D4D4D' fill-opacity='1'>Bisexual<\/text>\n   <text x='63.78' y='116.53' font-size='6.6pt' font-family='Arial' fill='#4D4D4D' fill-opacity='1'>Not answered<\/text>\n   <text x='9.96' y='61.38' font-size='6.6pt' font-family='Arial' fill='#4D4D4D' fill-opacity='1'>All other sexual orientations<\/text>\n   <text x='137.21' y='323.15' font-size='6.6pt' font-family='Arial' fill='#4D4D4D' fill-opacity='1'>0<\/text>\n   <text x='203.76' y='323.15' font-size='6.6pt' font-family='Arial' fill='#4D4D4D' fill-opacity='1'>5<\/text>\n   <text x='267.86' y='323.15' font-size='6.6pt' font-family='Arial' fill='#4D4D4D' fill-opacity='1'>10<\/text>\n   <text x='334.42' y='323.15' font-size='6.6pt' font-family='Arial' fill='#4D4D4D' fill-opacity='1'>15<\/text>\n   <text x='400.97' y='323.15' font-size='6.6pt' font-family='Arial' fill='#4D4D4D' fill-opacity='1'>20<\/text>\n   <text x='467.52' y='323.15' font-size='6.6pt' font-family='Arial' fill='#4D4D4D' fill-opacity='1'>25<\/text>\n   <text x='438.46' y='334.82' font-size='7.43pt' font-family='Arial'>Percentage<\/text>\n   <text x='9.96' y='17.84' font-size='8.25pt' font-family='Arial'>Percentage of population in each area reporting bad or very bad health by sexual orientation<\/text>\n   <text x='87.24' y='348.19' font-size='6.6pt' font-family='Arial'>Source: General health by sexual orientation from Office for National Statistics | Graphic: Nicola Rennie<\/text>\n  <\/g>\n <\/g>\n<\/svg>","js":null,"uid":"svg_be8c2f440082a37d","ratio":1.4,"settings":{"tooltip":{"css":".tooltip_SVGID_ { padding:5px;background:black;color:white;border-radius:2px;text-align:left; ; position:absolute;pointer-events:none;z-index:999;}","placement":"doc","opacity":0.9,"offx":10,"offy":10,"use_cursor_pos":true,"use_fill":false,"use_stroke":false,"delay_over":200,"delay_out":500},"hover":{"css":".hover_data_SVGID_ { fill:orange;stroke:black;cursor:pointer; }\ntext.hover_data_SVGID_ { stroke:none;fill:orange; }\ncircle.hover_data_SVGID_ { fill:orange;stroke:black; }\nline.hover_data_SVGID_, polyline.hover_data_SVGID_ { fill:none;stroke:orange; }\nrect.hover_data_SVGID_, polygon.hover_data_SVGID_, path.hover_data_SVGID_ { fill:orange;stroke:none; }\nimage.hover_data_SVGID_ { stroke:orange; }","reactive":true,"nearest_distance":null},"hover_inv":{"css":""},"hover_key":{"css":".hover_key_SVGID_ { fill:orange;stroke:black;cursor:pointer; }\ntext.hover_key_SVGID_ { stroke:none;fill:orange; }\ncircle.hover_key_SVGID_ { fill:orange;stroke:black; }\nline.hover_key_SVGID_, polyline.hover_key_SVGID_ { fill:none;stroke:orange; }\nrect.hover_key_SVGID_, polygon.hover_key_SVGID_, path.hover_key_SVGID_ { fill:orange;stroke:none; }\nimage.hover_key_SVGID_ { stroke:orange; }","reactive":true},"hover_theme":{"css":".hover_theme_SVGID_ { fill:orange;stroke:black;cursor:pointer; }\ntext.hover_theme_SVGID_ { stroke:none;fill:orange; }\ncircle.hover_theme_SVGID_ { fill:orange;stroke:black; }\nline.hover_theme_SVGID_, polyline.hover_theme_SVGID_ { fill:none;stroke:orange; }\nrect.hover_theme_SVGID_, polygon.hover_theme_SVGID_, path.hover_theme_SVGID_ { fill:orange;stroke:none; }\nimage.hover_theme_SVGID_ { stroke:orange; }","reactive":true},"select":{"css":".select_data_SVGID_ { fill:red;stroke:black;cursor:pointer; }\ntext.select_data_SVGID_ { stroke:none;fill:red; }\ncircle.select_data_SVGID_ { fill:red;stroke:black; }\nline.select_data_SVGID_, polyline.select_data_SVGID_ { fill:none;stroke:red; }\nrect.select_data_SVGID_, polygon.select_data_SVGID_, path.select_data_SVGID_ { fill:red;stroke:none; }\nimage.select_data_SVGID_ { stroke:red; }","type":"multiple","only_shiny":true,"selected":[]},"select_inv":{"css":""},"select_key":{"css":".select_key_SVGID_ { fill:red;stroke:black;cursor:pointer; }\ntext.select_key_SVGID_ { stroke:none;fill:red; }\ncircle.select_key_SVGID_ { fill:red;stroke:black; }\nline.select_key_SVGID_, polyline.select_key_SVGID_ { fill:none;stroke:red; }\nrect.select_key_SVGID_, polygon.select_key_SVGID_, path.select_key_SVGID_ { fill:red;stroke:none; }\nimage.select_key_SVGID_ { stroke:red; }","type":"single","only_shiny":true,"selected":[]},"select_theme":{"css":".select_theme_SVGID_ { fill:red;stroke:black;cursor:pointer; }\ntext.select_theme_SVGID_ { stroke:none;fill:red; }\ncircle.select_theme_SVGID_ { fill:red;stroke:black; }\nline.select_theme_SVGID_, polyline.select_theme_SVGID_ { fill:none;stroke:red; }\nrect.select_theme_SVGID_, polygon.select_theme_SVGID_, path.select_theme_SVGID_ { fill:red;stroke:none; }\nimage.select_theme_SVGID_ { stroke:red; }","type":"single","only_shiny":true,"selected":[]},"zoom":{"min":1,"max":1,"duration":300,"default_on":false},"toolbar":{"position":"topright","pngname":"diagram","tooltips":null,"fixed":false,"hidden":[],"delay_over":200,"delay_out":500},"sizing":{"rescale":true,"width":1}}},"evals":[],"jsHooks":[]}</script>
</div>
</div>
<p>Now when you hover over the points, you should see a tooltip showing the name of the area each point relates to. I don’t love the default styling of the tooltip, so we can edit the appearance of it using <code>opts_tooltip()</code> and passing this into the <code>girafe()</code> function. It’s also currently quite tricky to see which point you are currently hovering over, so we’ll add some more styling that makes the points larger when hovered over; and makes the non-hovered points more transparent.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb14" data-source-line-numbers="nil" data-code-line-numbers="nil" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb14-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">girafe</span>(</span>
<span id="cb14-2">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">ggobj =</span> g_int,</span>
<span id="cb14-3">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">options =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">list</span>(</span>
<span id="cb14-4">    <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">opts_tooltip</span>(</span>
<span id="cb14-5">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">css =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span></span>
<span id="cb14-6"><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">        padding: 5pt;</span></span>
<span id="cb14-7"><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">        font-size: 1rem;</span></span>
<span id="cb14-8"><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">        background-color: #FFFFFF;</span></span>
<span id="cb14-9"><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">        border-radius: 3px;</span></span>
<span id="cb14-10"><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">        line-height: 1;</span></span>
<span id="cb14-11"><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">        color: #000000;"</span></span>
<span id="cb14-12">    ),</span>
<span id="cb14-13">    <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">opts_hover</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">css =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"fill:#F7D002;stroke:#000000;r:6px;opacity:1;"</span>),</span>
<span id="cb14-14">    <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">opts_hover_inv</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">css =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"opacity:0.3;"</span>)</span>
<span id="cb14-15">  )</span>
<span id="cb14-16">)</span></code></pre></div></div>
<div class="cell-output-display">
<div class="girafe html-widget html-fill-item" id="htmlwidget-2625362cad2c7fd385b0" style="width:100%;height:464px;"></div>
<script type="application/json" data-for="htmlwidget-2625362cad2c7fd385b0">{"x":{"html":"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' class='ggiraph-svg' role='graphics-document' id='svg_ed6fcace99c25a7f' viewBox='0 0 504 360'>\n <defs id='svg_ed6fcace99c25a7f_defs'>\n  <clipPath id='svg_ed6fcace99c25a7f_c1'>\n   <rect x='0' y='0' width='504' height='360'/>\n  <\/clipPath>\n  <clipPath id='svg_ed6fcace99c25a7f_c2'>\n   <rect x='123.02' y='25.14' width='366.04' height='286.78'/>\n  <\/clipPath>\n <\/defs>\n <g id='svg_ed6fcace99c25a7f_rootg' class='ggiraph-svg-rootg'>\n  <g clip-path='url(#svg_ed6fcace99c25a7f_c1)'>\n   <rect x='0' y='0' width='504' height='360' fill='#FFFFFF' fill-opacity='1' stroke='#FFFFFF' stroke-opacity='1' stroke-width='0.75' stroke-linejoin='round' stroke-linecap='round' class='ggiraph-svg-bg'/>\n   <rect x='0' y='0' width='504' height='360' fill='#FFFFFF' fill-opacity='1' stroke='none'/>\n  <\/g>\n  <g clip-path='url(#svg_ed6fcace99c25a7f_c2)'>\n   <polyline points='172.93,311.92 172.93,25.14' fill='none' stroke='#EBEBEB' stroke-opacity='1' stroke-width='0.53' stroke-linejoin='round' stroke-linecap='butt'/>\n   <polyline points='239.48,311.92 239.48,25.14' fill='none' stroke='#EBEBEB' stroke-opacity='1' stroke-width='0.53' stroke-linejoin='round' stroke-linecap='butt'/>\n   <polyline points='306.04,311.92 306.04,25.14' fill='none' stroke='#EBEBEB' stroke-opacity='1' stroke-width='0.53' stroke-linejoin='round' stroke-linecap='butt'/>\n   <polyline points='372.59,311.92 372.59,25.14' fill='none' stroke='#EBEBEB' stroke-opacity='1' stroke-width='0.53' stroke-linejoin='round' stroke-linecap='butt'/>\n   <polyline points='439.14,311.92 439.14,25.14' fill='none' stroke='#EBEBEB' stroke-opacity='1' stroke-width='0.53' stroke-linejoin='round' stroke-linecap='butt'/>\n   <polyline points='123.02,278.83 489.06,278.83' fill='none' stroke='#EBEBEB' stroke-opacity='1' stroke-width='1.07' stroke-linejoin='round' stroke-linecap='butt'/>\n   <polyline points='123.02,223.68 489.06,223.68' fill='none' stroke='#EBEBEB' stroke-opacity='1' stroke-width='1.07' stroke-linejoin='round' stroke-linecap='butt'/>\n   <polyline points='123.02,168.53 489.06,168.53' fill='none' stroke='#EBEBEB' stroke-opacity='1' stroke-width='1.07' stroke-linejoin='round' stroke-linecap='butt'/>\n   <polyline points='123.02,113.38 489.06,113.38' fill='none' stroke='#EBEBEB' stroke-opacity='1' stroke-width='1.07' stroke-linejoin='round' stroke-linecap='butt'/>\n   <polyline points='123.02,58.23 489.06,58.23' fill='none' stroke='#EBEBEB' stroke-opacity='1' stroke-width='1.07' stroke-linejoin='round' stroke-linecap='butt'/>\n   <polyline points='139.65,311.92 139.65,25.14' fill='none' stroke='#EBEBEB' stroke-opacity='1' stroke-width='1.07' stroke-linejoin='round' stroke-linecap='butt'/>\n   <polyline points='206.21,311.92 206.21,25.14' fill='none' stroke='#EBEBEB' stroke-opacity='1' stroke-width='1.07' stroke-linejoin='round' stroke-linecap='butt'/>\n   <polyline points='272.76,311.92 272.76,25.14' fill='none' stroke='#EBEBEB' stroke-opacity='1' stroke-width='1.07' stroke-linejoin='round' stroke-linecap='butt'/>\n   <polyline points='339.31,311.92 339.31,25.14' fill='none' stroke='#EBEBEB' stroke-opacity='1' stroke-width='1.07' stroke-linejoin='round' stroke-linecap='butt'/>\n   <polyline points='405.87,311.92 405.87,25.14' fill='none' stroke='#EBEBEB' stroke-opacity='1' stroke-width='1.07' stroke-linejoin='round' stroke-linecap='butt'/>\n   <polyline points='472.42,311.92 472.42,25.14' fill='none' stroke='#EBEBEB' stroke-opacity='1' stroke-width='1.07' stroke-linejoin='round' stroke-linecap='butt'/>\n   <circle id='svg_ed6fcace99c25a7f_e1' cx='199.98' cy='265.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Adur' data-id='Adur'/>\n   <circle id='svg_ed6fcace99c25a7f_e2' cx='245.1' cy='270.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Allerdale' data-id='Allerdale'/>\n   <circle id='svg_ed6fcace99c25a7f_e3' cx='215.85' cy='279.98' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Amber Valley' data-id='Amber Valley'/>\n   <circle id='svg_ed6fcace99c25a7f_e4' cx='222.68' cy='268.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Arun' data-id='Arun'/>\n   <circle id='svg_ed6fcace99c25a7f_e5' cx='242.25' cy='281.56' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ashfield' data-id='Ashfield'/>\n   <circle id='svg_ed6fcace99c25a7f_e6' cx='195.68' cy='273.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ashford' data-id='Ashford'/>\n   <circle id='svg_ed6fcace99c25a7f_e7' cx='207.55' cy='297.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Babergh' data-id='Babergh'/>\n   <circle id='svg_ed6fcace99c25a7f_e8' cx='239.58' cy='274.76' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barking and Dagenham' data-id='Barking and Dagenham'/>\n   <circle id='svg_ed6fcace99c25a7f_e9' cx='190.29' cy='281.58' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barnet' data-id='Barnet'/>\n   <circle id='svg_ed6fcace99c25a7f_e10' cx='248.28' cy='284.34' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barnsley' data-id='Barnsley'/>\n   <circle id='svg_ed6fcace99c25a7f_e11' cx='300.4' cy='278.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barrow-in-Furness' data-id='Barrow-in-Furness'/>\n   <circle id='svg_ed6fcace99c25a7f_e12' cx='216.76' cy='293.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Basildon' data-id='Basildon'/>\n   <circle id='svg_ed6fcace99c25a7f_e13' cx='202.94' cy='294.11' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Basingstoke and Deane' data-id='Basingstoke and Deane'/>\n   <circle id='svg_ed6fcace99c25a7f_e14' cx='243.23' cy='290.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bassetlaw' data-id='Bassetlaw'/>\n   <circle id='svg_ed6fcace99c25a7f_e15' cx='202.13' cy='272.63' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bath and North East Somerset' data-id='Bath and North East Somerset'/>\n   <circle id='svg_ed6fcace99c25a7f_e16' cx='218.17' cy='259.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bedford' data-id='Bedford'/>\n   <circle id='svg_ed6fcace99c25a7f_e17' cx='188.81' cy='290.93' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bexley' data-id='Bexley'/>\n   <circle id='svg_ed6fcace99c25a7f_e18' cx='232.97' cy='273.42' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Birmingham' data-id='Birmingham'/>\n   <circle id='svg_ed6fcace99c25a7f_e19' cx='217.8' cy='290.97' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blaby' data-id='Blaby'/>\n   <circle id='svg_ed6fcace99c25a7f_e20' cx='265.12' cy='276.69' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blackburn with Darwen' data-id='Blackburn with Darwen'/>\n   <circle id='svg_ed6fcace99c25a7f_e21' cx='316.12' cy='278.53' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blackpool' data-id='Blackpool'/>\n   <circle id='svg_ed6fcace99c25a7f_e22' cx='259.82' cy='275.42' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blaenau Gwent' data-id='Blaenau Gwent'/>\n   <circle id='svg_ed6fcace99c25a7f_e23' cx='244.67' cy='276.35' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bolsover' data-id='Bolsover'/>\n   <circle id='svg_ed6fcace99c25a7f_e24' cx='251.13' cy='277.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bolton' data-id='Bolton'/>\n   <circle id='svg_ed6fcace99c25a7f_e25' cx='221.82' cy='259.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Boston' data-id='Boston'/>\n   <circle id='svg_ed6fcace99c25a7f_e26' cx='219.8' cy='286.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bournemouth, Christchurch and Poole' data-id='Bournemouth, Christchurch and Poole'/>\n   <circle id='svg_ed6fcace99c25a7f_e27' cx='191.93' cy='276.84' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bracknell Forest' data-id='Bracknell Forest'/>\n   <circle id='svg_ed6fcace99c25a7f_e28' cx='240.94' cy='268.93' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bradford' data-id='Bradford'/>\n   <circle id='svg_ed6fcace99c25a7f_e29' cx='199.85' cy='283' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Braintree' data-id='Braintree'/>\n   <circle id='svg_ed6fcace99c25a7f_e30' cx='237.22' cy='275.23' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Breckland' data-id='Breckland'/>\n   <circle id='svg_ed6fcace99c25a7f_e31' cx='189.51' cy='278.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Brent' data-id='Brent'/>\n   <circle id='svg_ed6fcace99c25a7f_e32' cx='197.9' cy='294.91' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Brentwood' data-id='Brentwood'/>\n   <circle id='svg_ed6fcace99c25a7f_e33' cx='241.6' cy='293.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bridgend' data-id='Bridgend'/>\n   <circle id='svg_ed6fcace99c25a7f_e34' cx='223.05' cy='264.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Brighton and Hove' data-id='Brighton and Hove'/>\n   <circle id='svg_ed6fcace99c25a7f_e35' cx='208.79' cy='292.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bristol' data-id='Bristol'/>\n   <circle id='svg_ed6fcace99c25a7f_e36' cx='209.49' cy='262.72' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Broadland' data-id='Broadland'/>\n   <circle id='svg_ed6fcace99c25a7f_e37' cx='186.69' cy='269.14' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bromley' data-id='Bromley'/>\n   <circle id='svg_ed6fcace99c25a7f_e38' cx='196.23' cy='290.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bromsgrove' data-id='Bromsgrove'/>\n   <circle id='svg_ed6fcace99c25a7f_e39' cx='207.43' cy='269.91' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Broxbourne' data-id='Broxbourne'/>\n   <circle id='svg_ed6fcace99c25a7f_e40' cx='213.78' cy='293.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Broxtowe' data-id='Broxtowe'/>\n   <circle id='svg_ed6fcace99c25a7f_e41' cx='185.22' cy='275.4' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Buckinghamshire' data-id='Buckinghamshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e42' cx='242.15' cy='289.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Burnley' data-id='Burnley'/>\n   <circle id='svg_ed6fcace99c25a7f_e43' cx='221.93' cy='297.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bury' data-id='Bury'/>\n   <circle id='svg_ed6fcace99c25a7f_e44' cx='250.86' cy='288.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Caerphilly' data-id='Caerphilly'/>\n   <circle id='svg_ed6fcace99c25a7f_e45' cx='249.04' cy='281.31' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Calderdale' data-id='Calderdale'/>\n   <circle id='svg_ed6fcace99c25a7f_e46' cx='184.43' cy='278.19' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cambridge' data-id='Cambridge'/>\n   <circle id='svg_ed6fcace99c25a7f_e47' cx='200.3' cy='267.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Camden' data-id='Camden'/>\n   <circle id='svg_ed6fcace99c25a7f_e48' cx='213.87' cy='282.69' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cannock Chase' data-id='Cannock Chase'/>\n   <circle id='svg_ed6fcace99c25a7f_e49' cx='195.59' cy='288.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Canterbury' data-id='Canterbury'/>\n   <circle id='svg_ed6fcace99c25a7f_e50' cx='207.54' cy='259.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cardiff' data-id='Cardiff'/>\n   <circle id='svg_ed6fcace99c25a7f_e51' cx='238.25' cy='271.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Carlisle' data-id='Carlisle'/>\n   <circle id='svg_ed6fcace99c25a7f_e52' cx='249.37' cy='277' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Carmarthenshire' data-id='Carmarthenshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e53' cx='227.11' cy='283.3' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Castle Point' data-id='Castle Point'/>\n   <circle id='svg_ed6fcace99c25a7f_e54' cx='198.03' cy='278.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Central Bedfordshire' data-id='Central Bedfordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e55' cx='216.04' cy='278.01' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ceredigion' data-id='Ceredigion'/>\n   <circle id='svg_ed6fcace99c25a7f_e56' cx='205.9' cy='282.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Charnwood' data-id='Charnwood'/>\n   <circle id='svg_ed6fcace99c25a7f_e57' cx='206.65' cy='275.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chelmsford' data-id='Chelmsford'/>\n   <circle id='svg_ed6fcace99c25a7f_e58' cx='201.96' cy='267.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cheltenham' data-id='Cheltenham'/>\n   <circle id='svg_ed6fcace99c25a7f_e59' cx='210.66' cy='289.69' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cherwell' data-id='Cherwell'/>\n   <circle id='svg_ed6fcace99c25a7f_e60' cx='205.94' cy='262.59' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cheshire East' data-id='Cheshire East'/>\n   <circle id='svg_ed6fcace99c25a7f_e61' cx='211.26' cy='273.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cheshire West and Chester' data-id='Cheshire West and Chester'/>\n   <circle id='svg_ed6fcace99c25a7f_e62' cx='238.99' cy='278.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chesterfield' data-id='Chesterfield'/>\n   <circle id='svg_ed6fcace99c25a7f_e63' cx='194.1' cy='277.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chichester' data-id='Chichester'/>\n   <circle id='svg_ed6fcace99c25a7f_e64' cx='207.43' cy='291.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chorley' data-id='Chorley'/>\n   <circle id='svg_ed6fcace99c25a7f_e65' cx='168.11' cy='279.37' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='City of London' data-id='City of London'/>\n   <circle id='svg_ed6fcace99c25a7f_e66' cx='204.43' cy='297.61' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Colchester' data-id='Colchester'/>\n   <circle id='svg_ed6fcace99c25a7f_e67' cx='239.73' cy='266.76' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Conwy' data-id='Conwy'/>\n   <circle id='svg_ed6fcace99c25a7f_e68' cx='225.06' cy='280.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Copeland' data-id='Copeland'/>\n   <circle id='svg_ed6fcace99c25a7f_e69' cx='234.73' cy='283.83' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cornwall' data-id='Cornwall'/>\n   <circle id='svg_ed6fcace99c25a7f_e70' cx='183.72' cy='275.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cotswold' data-id='Cotswold'/>\n   <circle id='svg_ed6fcace99c25a7f_e71' cx='249.08' cy='269.76' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='County Durham' data-id='County Durham'/>\n   <circle id='svg_ed6fcace99c25a7f_e72' cx='225.76' cy='269.14' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Coventry' data-id='Coventry'/>\n   <circle id='svg_ed6fcace99c25a7f_e73' cx='204.71' cy='267.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Craven' data-id='Craven'/>\n   <circle id='svg_ed6fcace99c25a7f_e74' cx='217.67' cy='265.06' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Crawley' data-id='Crawley'/>\n   <circle id='svg_ed6fcace99c25a7f_e75' cx='203.43' cy='274.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Croydon' data-id='Croydon'/>\n   <circle id='svg_ed6fcace99c25a7f_e76' cx='211.6' cy='297.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dacorum' data-id='Dacorum'/>\n   <circle id='svg_ed6fcace99c25a7f_e77' cx='237.44' cy='286.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Darlington' data-id='Darlington'/>\n   <circle id='svg_ed6fcace99c25a7f_e78' cx='221.02' cy='269.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dartford' data-id='Dartford'/>\n   <circle id='svg_ed6fcace99c25a7f_e79' cx='263.44' cy='283.35' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Denbighshire' data-id='Denbighshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e80' cx='234.97' cy='270.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Derby' data-id='Derby'/>\n   <circle id='svg_ed6fcace99c25a7f_e81' cx='212.08' cy='270.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Derbyshire Dales' data-id='Derbyshire Dales'/>\n   <circle id='svg_ed6fcace99c25a7f_e82' cx='263.35' cy='274.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Doncaster' data-id='Doncaster'/>\n   <circle id='svg_ed6fcace99c25a7f_e83' cx='210.4' cy='300.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dorset' data-id='Dorset'/>\n   <circle id='svg_ed6fcace99c25a7f_e84' cx='221.04' cy='279.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dover' data-id='Dover'/>\n   <circle id='svg_ed6fcace99c25a7f_e85' cx='230.21' cy='274.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dudley' data-id='Dudley'/>\n   <circle id='svg_ed6fcace99c25a7f_e86' cx='187.15' cy='270.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ealing' data-id='Ealing'/>\n   <circle id='svg_ed6fcace99c25a7f_e87' cx='220.32' cy='294.34' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Cambridgeshire' data-id='East Cambridgeshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e88' cx='222.85' cy='292.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Devon' data-id='East Devon'/>\n   <circle id='svg_ed6fcace99c25a7f_e89' cx='197.63' cy='279.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Hampshire' data-id='East Hampshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e90' cx='188.06' cy='279.6' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Hertfordshire' data-id='East Hertfordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e91' cx='247.16' cy='290.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Lindsey' data-id='East Lindsey'/>\n   <circle id='svg_ed6fcace99c25a7f_e92' cx='214.76' cy='295.93' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Riding of Yorkshire' data-id='East Riding of Yorkshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e93' cx='203.99' cy='289.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Staffordshire' data-id='East Staffordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e94' cx='241.67' cy='285.47' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Suffolk' data-id='East Suffolk'/>\n   <circle id='svg_ed6fcace99c25a7f_e95' cx='231.66' cy='282.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Eastbourne' data-id='Eastbourne'/>\n   <circle id='svg_ed6fcace99c25a7f_e96' cx='205.1' cy='292.88' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Eastleigh' data-id='Eastleigh'/>\n   <circle id='svg_ed6fcace99c25a7f_e97' cx='235.74' cy='273.8' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Eden' data-id='Eden'/>\n   <circle id='svg_ed6fcace99c25a7f_e98' cx='186.86' cy='288.59' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Elmbridge' data-id='Elmbridge'/>\n   <circle id='svg_ed6fcace99c25a7f_e99' cx='211.27' cy='284.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Enfield' data-id='Enfield'/>\n   <circle id='svg_ed6fcace99c25a7f_e100' cx='202.76' cy='263' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Epping Forest' data-id='Epping Forest'/>\n   <circle id='svg_ed6fcace99c25a7f_e101' cx='189.74' cy='284.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Epsom and Ewell' data-id='Epsom and Ewell'/>\n   <circle id='svg_ed6fcace99c25a7f_e102' cx='220.64' cy='284.28' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Erewash' data-id='Erewash'/>\n   <circle id='svg_ed6fcace99c25a7f_e103' cx='218.13' cy='280.6' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Exeter' data-id='Exeter'/>\n   <circle id='svg_ed6fcace99c25a7f_e104' cx='201' cy='280.84' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Fareham' data-id='Fareham'/>\n   <circle id='svg_ed6fcace99c25a7f_e105' cx='249.39' cy='282.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Fenland' data-id='Fenland'/>\n   <circle id='svg_ed6fcace99c25a7f_e106' cx='241.33' cy='280.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Flintshire' data-id='Flintshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e107' cx='232.96' cy='286.01' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Folkestone and Hythe' data-id='Folkestone and Hythe'/>\n   <circle id='svg_ed6fcace99c25a7f_e108' cx='219.84' cy='266.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Forest of Dean' data-id='Forest of Dean'/>\n   <circle id='svg_ed6fcace99c25a7f_e109' cx='236.98' cy='289.94' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Fylde' data-id='Fylde'/>\n   <circle id='svg_ed6fcace99c25a7f_e110' cx='227.59' cy='268.08' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gateshead' data-id='Gateshead'/>\n   <circle id='svg_ed6fcace99c25a7f_e111' cx='209.96' cy='279.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gedling' data-id='Gedling'/>\n   <circle id='svg_ed6fcace99c25a7f_e112' cx='216.53' cy='267.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gloucester' data-id='Gloucester'/>\n   <circle id='svg_ed6fcace99c25a7f_e113' cx='258.14' cy='277.79' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gosport' data-id='Gosport'/>\n   <circle id='svg_ed6fcace99c25a7f_e114' cx='208.07' cy='265.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gravesham' data-id='Gravesham'/>\n   <circle id='svg_ed6fcace99c25a7f_e115' cx='251.91' cy='282.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Great Yarmouth' data-id='Great Yarmouth'/>\n   <circle id='svg_ed6fcace99c25a7f_e116' cx='205.66' cy='272.82' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Greenwich' data-id='Greenwich'/>\n   <circle id='svg_ed6fcace99c25a7f_e117' cx='184.29' cy='288.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Guildford' data-id='Guildford'/>\n   <circle id='svg_ed6fcace99c25a7f_e118' cx='213.2' cy='288.13' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gwynedd' data-id='Gwynedd'/>\n   <circle id='svg_ed6fcace99c25a7f_e119' cx='187' cy='282.6' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hackney' data-id='Hackney'/>\n   <circle id='svg_ed6fcace99c25a7f_e120' cx='233.87' cy='266.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Halton' data-id='Halton'/>\n   <circle id='svg_ed6fcace99c25a7f_e121' cx='192.82' cy='286.5' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hambleton' data-id='Hambleton'/>\n   <circle id='svg_ed6fcace99c25a7f_e122' cx='203.93' cy='265.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hammersmith and Fulham' data-id='Hammersmith and Fulham'/>\n   <circle id='svg_ed6fcace99c25a7f_e123' cx='217.53' cy='275.42' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harborough' data-id='Harborough'/>\n   <circle id='svg_ed6fcace99c25a7f_e124' cx='191.21' cy='289.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Haringey' data-id='Haringey'/>\n   <circle id='svg_ed6fcace99c25a7f_e125' cx='223.42' cy='285.28' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harlow' data-id='Harlow'/>\n   <circle id='svg_ed6fcace99c25a7f_e126' cx='197.04' cy='267.61' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harrogate' data-id='Harrogate'/>\n   <circle id='svg_ed6fcace99c25a7f_e127' cx='209.14' cy='295.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harrow' data-id='Harrow'/>\n   <circle id='svg_ed6fcace99c25a7f_e128' cx='177.02' cy='278.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hart' data-id='Hart'/>\n   <circle id='svg_ed6fcace99c25a7f_e129' cx='277.39' cy='279.74' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hartlepool' data-id='Hartlepool'/>\n   <circle id='svg_ed6fcace99c25a7f_e130' cx='246.57' cy='279.54' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hastings' data-id='Hastings'/>\n   <circle id='svg_ed6fcace99c25a7f_e131' cx='220.36' cy='274.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Havant' data-id='Havant'/>\n   <circle id='svg_ed6fcace99c25a7f_e132' cx='215.12' cy='285.28' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Havering' data-id='Havering'/>\n   <circle id='svg_ed6fcace99c25a7f_e133' cx='226.34' cy='273.43' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Herefordshire' data-id='Herefordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e134' cx='204.31' cy='279.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hertsmere' data-id='Hertsmere'/>\n   <circle id='svg_ed6fcace99c25a7f_e135' cx='215.38' cy='264.14' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='High Peak' data-id='High Peak'/>\n   <circle id='svg_ed6fcace99c25a7f_e136' cx='209.68' cy='290.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hillingdon' data-id='Hillingdon'/>\n   <circle id='svg_ed6fcace99c25a7f_e137' cx='204.7' cy='287.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hinckley and Bosworth' data-id='Hinckley and Bosworth'/>\n   <circle id='svg_ed6fcace99c25a7f_e138' cx='195.96' cy='266.42' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Horsham' data-id='Horsham'/>\n   <circle id='svg_ed6fcace99c25a7f_e139' cx='192.22' cy='270.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hounslow' data-id='Hounslow'/>\n   <circle id='svg_ed6fcace99c25a7f_e140' cx='204.32' cy='260.08' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Huntingdonshire' data-id='Huntingdonshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e141' cx='258.71' cy='280.12' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hyndburn' data-id='Hyndburn'/>\n   <circle id='svg_ed6fcace99c25a7f_e142' cx='238.65' cy='263.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ipswich' data-id='Ipswich'/>\n   <circle id='svg_ed6fcace99c25a7f_e143' cx='240.56' cy='276.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Isle of Anglesey' data-id='Isle of Anglesey'/>\n   <circle id='svg_ed6fcace99c25a7f_e144' cx='236.69' cy='266.31' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Isle of Wight' data-id='Isle of Wight'/>\n   <circle id='svg_ed6fcace99c25a7f_e145' cx='228.39' cy='279.4' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Isles of Scilly' data-id='Isles of Scilly'/>\n   <circle id='svg_ed6fcace99c25a7f_e146' cx='202.09' cy='291.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Islington' data-id='Islington'/>\n   <circle id='svg_ed6fcace99c25a7f_e147' cx='241.8' cy='270.21' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kensington and Chelsea' data-id='Kensington and Chelsea'/>\n   <circle id='svg_ed6fcace99c25a7f_e148' cx='240.46' cy='292.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='King&amp;#39;s Lynn and West Norfolk' data-id='King’s Lynn and West Norfolk'/>\n   <circle id='svg_ed6fcace99c25a7f_e149' cx='240.89' cy='284.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kingston upon Hull' data-id='Kingston upon Hull'/>\n   <circle id='svg_ed6fcace99c25a7f_e150' cx='183.14' cy='284.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kingston upon Thames' data-id='Kingston upon Thames'/>\n   <circle id='svg_ed6fcace99c25a7f_e151' cx='225.53' cy='285.76' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kirklees' data-id='Kirklees'/>\n   <circle id='svg_ed6fcace99c25a7f_e152' cx='247.44' cy='278.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Knowsley' data-id='Knowsley'/>\n   <circle id='svg_ed6fcace99c25a7f_e153' cx='186.97' cy='276.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lambeth' data-id='Lambeth'/>\n   <circle id='svg_ed6fcace99c25a7f_e154' cx='225.35' cy='277.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lancaster' data-id='Lancaster'/>\n   <circle id='svg_ed6fcace99c25a7f_e155' cx='209.86' cy='268.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Leeds' data-id='Leeds'/>\n   <circle id='svg_ed6fcace99c25a7f_e156' cx='223.78' cy='271.62' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Leicester' data-id='Leicester'/>\n   <circle id='svg_ed6fcace99c25a7f_e157' cx='225.31' cy='294.28' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lewes' data-id='Lewes'/>\n   <circle id='svg_ed6fcace99c25a7f_e158' cx='196.98' cy='283.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lewisham' data-id='Lewisham'/>\n   <circle id='svg_ed6fcace99c25a7f_e159' cx='213.82' cy='271.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lichfield' data-id='Lichfield'/>\n   <circle id='svg_ed6fcace99c25a7f_e160' cx='218.95' cy='297.22' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lincoln' data-id='Lincoln'/>\n   <circle id='svg_ed6fcace99c25a7f_e161' cx='226.78' cy='275.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Liverpool' data-id='Liverpool'/>\n   <circle id='svg_ed6fcace99c25a7f_e162' cx='233.39' cy='279.72' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Luton' data-id='Luton'/>\n   <circle id='svg_ed6fcace99c25a7f_e163' cx='203.56' cy='284.59' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Maidstone' data-id='Maidstone'/>\n   <circle id='svg_ed6fcace99c25a7f_e164' cx='250.17' cy='279.8' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Maldon' data-id='Maldon'/>\n   <circle id='svg_ed6fcace99c25a7f_e165' cx='226.73' cy='291.27' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Malvern Hills' data-id='Malvern Hills'/>\n   <circle id='svg_ed6fcace99c25a7f_e166' cx='219.84' cy='291.94' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Manchester' data-id='Manchester'/>\n   <circle id='svg_ed6fcace99c25a7f_e167' cx='260.56' cy='281.35' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mansfield' data-id='Mansfield'/>\n   <circle id='svg_ed6fcace99c25a7f_e168' cx='217.37' cy='296.21' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Medway' data-id='Medway'/>\n   <circle id='svg_ed6fcace99c25a7f_e169' cx='184.12' cy='270.12' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Melton' data-id='Melton'/>\n   <circle id='svg_ed6fcace99c25a7f_e170' cx='210.72' cy='267.63' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mendip' data-id='Mendip'/>\n   <circle id='svg_ed6fcace99c25a7f_e171' cx='268.47' cy='279.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Merthyr Tydfil' data-id='Merthyr Tydfil'/>\n   <circle id='svg_ed6fcace99c25a7f_e172' cx='184.94' cy='272.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Merton' data-id='Merton'/>\n   <circle id='svg_ed6fcace99c25a7f_e173' cx='223.06' cy='294.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mid Devon' data-id='Mid Devon'/>\n   <circle id='svg_ed6fcace99c25a7f_e174' cx='204.26' cy='269.93' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mid Suffolk' data-id='Mid Suffolk'/>\n   <circle id='svg_ed6fcace99c25a7f_e175' cx='195.49' cy='270.31' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mid Sussex' data-id='Mid Sussex'/>\n   <circle id='svg_ed6fcace99c25a7f_e176' cx='258.09' cy='282.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Middlesbrough' data-id='Middlesbrough'/>\n   <circle id='svg_ed6fcace99c25a7f_e177' cx='220.28' cy='261.74' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Milton Keynes' data-id='Milton Keynes'/>\n   <circle id='svg_ed6fcace99c25a7f_e178' cx='204.46' cy='277.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mole Valley' data-id='Mole Valley'/>\n   <circle id='svg_ed6fcace99c25a7f_e179' cx='237.23' cy='282.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Monmouthshire' data-id='Monmouthshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e180' cx='263.81' cy='278.74' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Neath Port Talbot' data-id='Neath Port Talbot'/>\n   <circle id='svg_ed6fcace99c25a7f_e181' cx='213.4' cy='266.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='New Forest' data-id='New Forest'/>\n   <circle id='svg_ed6fcace99c25a7f_e182' cx='229.73' cy='278.08' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newark and Sherwood' data-id='Newark and Sherwood'/>\n   <circle id='svg_ed6fcace99c25a7f_e183' cx='228.76' cy='265.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newcastle upon Tyne' data-id='Newcastle upon Tyne'/>\n   <circle id='svg_ed6fcace99c25a7f_e184' cx='249.7' cy='271.43' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newcastle-under-Lyme' data-id='Newcastle-under-Lyme'/>\n   <circle id='svg_ed6fcace99c25a7f_e185' cx='189.78' cy='287.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newham' data-id='Newham'/>\n   <circle id='svg_ed6fcace99c25a7f_e186' cx='238.72' cy='294.54' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newport' data-id='Newport'/>\n   <circle id='svg_ed6fcace99c25a7f_e187' cx='219.84' cy='271.72' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Devon' data-id='North Devon'/>\n   <circle id='svg_ed6fcace99c25a7f_e188' cx='239.72' cy='282.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North East Derbyshire' data-id='North East Derbyshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e189' cx='246.82' cy='267.39' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North East Lincolnshire' data-id='North East Lincolnshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e190' cx='194.71' cy='284.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Hertfordshire' data-id='North Hertfordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e191' cx='217.59' cy='285.8' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Kesteven' data-id='North Kesteven'/>\n   <circle id='svg_ed6fcace99c25a7f_e192' cx='238.44' cy='278.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Lincolnshire' data-id='North Lincolnshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e193' cx='220.67' cy='264.36' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Norfolk' data-id='North Norfolk'/>\n   <circle id='svg_ed6fcace99c25a7f_e194' cx='222.2' cy='287.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Northamptonshire' data-id='North Northamptonshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e195' cx='230.15' cy='288.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Somerset' data-id='North Somerset'/>\n   <circle id='svg_ed6fcace99c25a7f_e196' cx='222.9' cy='273.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Tyneside' data-id='North Tyneside'/>\n   <circle id='svg_ed6fcace99c25a7f_e197' cx='188.8' cy='267.12' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Warwickshire' data-id='North Warwickshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e198' cx='214.08' cy='261.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North West Leicestershire' data-id='North West Leicestershire'/>\n   <circle id='svg_ed6fcace99c25a7f_e199' cx='230.02' cy='271.34' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Northumberland' data-id='Northumberland'/>\n   <circle id='svg_ed6fcace99c25a7f_e200' cx='231.18' cy='276.5' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Norwich' data-id='Norwich'/>\n   <circle id='svg_ed6fcace99c25a7f_e201' cx='230.87' cy='289.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Nottingham' data-id='Nottingham'/>\n   <circle id='svg_ed6fcace99c25a7f_e202' cx='248.29' cy='272.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Nuneaton and Bedworth' data-id='Nuneaton and Bedworth'/>\n   <circle id='svg_ed6fcace99c25a7f_e203' cx='199.73' cy='274.13' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Oadby and Wigston' data-id='Oadby and Wigston'/>\n   <circle id='svg_ed6fcace99c25a7f_e204' cx='242.23' cy='274.12' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Oldham' data-id='Oldham'/>\n   <circle id='svg_ed6fcace99c25a7f_e205' cx='184.11' cy='280.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Oxford' data-id='Oxford'/>\n   <circle id='svg_ed6fcace99c25a7f_e206' cx='267.52' cy='281.11' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Pembrokeshire' data-id='Pembrokeshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e207' cx='263.89' cy='280.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Pendle' data-id='Pendle'/>\n   <circle id='svg_ed6fcace99c25a7f_e208' cx='234.08' cy='290.13' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Peterborough' data-id='Peterborough'/>\n   <circle id='svg_ed6fcace99c25a7f_e209' cx='229.18' cy='292.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Plymouth' data-id='Plymouth'/>\n   <circle id='svg_ed6fcace99c25a7f_e210' cx='211.94' cy='292.36' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Portsmouth' data-id='Portsmouth'/>\n   <circle id='svg_ed6fcace99c25a7f_e211' cx='252.42' cy='273.74' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Powys' data-id='Powys'/>\n   <circle id='svg_ed6fcace99c25a7f_e212' cx='239.27' cy='270.79' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Preston' data-id='Preston'/>\n   <circle id='svg_ed6fcace99c25a7f_e213' cx='207.48' cy='280.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Reading' data-id='Reading'/>\n   <circle id='svg_ed6fcace99c25a7f_e214' cx='201.28' cy='277.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Redbridge' data-id='Redbridge'/>\n   <circle id='svg_ed6fcace99c25a7f_e215' cx='253.85' cy='276.43' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Redcar and Cleveland' data-id='Redcar and Cleveland'/>\n   <circle id='svg_ed6fcace99c25a7f_e216' cx='213.01' cy='277.3' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Redditch' data-id='Redditch'/>\n   <circle id='svg_ed6fcace99c25a7f_e217' cx='191.98' cy='283.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Reigate and Banstead' data-id='Reigate and Banstead'/>\n   <circle id='svg_ed6fcace99c25a7f_e218' cx='277.86' cy='278.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rhondda Cynon Taf' data-id='Rhondda Cynon Taf'/>\n   <circle id='svg_ed6fcace99c25a7f_e219' cx='211.6' cy='275.91' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ribble Valley' data-id='Ribble Valley'/>\n   <circle id='svg_ed6fcace99c25a7f_e220' cx='199.38' cy='291.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Richmond upon Thames' data-id='Richmond upon Thames'/>\n   <circle id='svg_ed6fcace99c25a7f_e221' cx='195.85' cy='281.11' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Richmondshire' data-id='Richmondshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e222' cx='239.53' cy='290.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rochdale' data-id='Rochdale'/>\n   <circle id='svg_ed6fcace99c25a7f_e223' cx='198.38' cy='286.93' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rochford' data-id='Rochford'/>\n   <circle id='svg_ed6fcace99c25a7f_e224' cx='228.28' cy='272.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rossendale' data-id='Rossendale'/>\n   <circle id='svg_ed6fcace99c25a7f_e225' cx='223.55' cy='266.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rother' data-id='Rother'/>\n   <circle id='svg_ed6fcace99c25a7f_e226' cx='248.98' cy='275.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rotherham' data-id='Rotherham'/>\n   <circle id='svg_ed6fcace99c25a7f_e227' cx='201.74' cy='286.73' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rugby' data-id='Rugby'/>\n   <circle id='svg_ed6fcace99c25a7f_e228' cx='177.65' cy='279.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Runnymede' data-id='Runnymede'/>\n   <circle id='svg_ed6fcace99c25a7f_e229' cx='202.49' cy='282.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rushcliffe' data-id='Rushcliffe'/>\n   <circle id='svg_ed6fcace99c25a7f_e230' cx='197.64' cy='263.22' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rushmoor' data-id='Rushmoor'/>\n   <circle id='svg_ed6fcace99c25a7f_e231' cx='212.64' cy='281.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rutland' data-id='Rutland'/>\n   <circle id='svg_ed6fcace99c25a7f_e232' cx='208.95' cy='281.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ryedale' data-id='Ryedale'/>\n   <circle id='svg_ed6fcace99c25a7f_e233' cx='219.17' cy='276.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Salford' data-id='Salford'/>\n   <circle id='svg_ed6fcace99c25a7f_e234' cx='245.53' cy='285.82' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sandwell' data-id='Sandwell'/>\n   <circle id='svg_ed6fcace99c25a7f_e235' cx='243.23' cy='267.36' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Scarborough' data-id='Scarborough'/>\n   <circle id='svg_ed6fcace99c25a7f_e236' cx='215.53' cy='290.53' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sedgemoor' data-id='Sedgemoor'/>\n   <circle id='svg_ed6fcace99c25a7f_e237' cx='254.61' cy='279.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sefton' data-id='Sefton'/>\n   <circle id='svg_ed6fcace99c25a7f_e238' cx='201.22' cy='295.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Selby' data-id='Selby'/>\n   <circle id='svg_ed6fcace99c25a7f_e239' cx='211.87' cy='264.94' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sevenoaks' data-id='Sevenoaks'/>\n   <circle id='svg_ed6fcace99c25a7f_e240' cx='227.82' cy='286.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sheffield' data-id='Sheffield'/>\n   <circle id='svg_ed6fcace99c25a7f_e241' cx='210.48' cy='278.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Shropshire' data-id='Shropshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e242' cx='235.44' cy='287.37' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Slough' data-id='Slough'/>\n   <circle id='svg_ed6fcace99c25a7f_e243' cx='211.3' cy='262.14' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Solihull' data-id='Solihull'/>\n   <circle id='svg_ed6fcace99c25a7f_e244' cx='215.83' cy='269.46' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Somerset West and Taunton' data-id='Somerset West and Taunton'/>\n   <circle id='svg_ed6fcace99c25a7f_e245' cx='206.79' cy='285.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Cambridgeshire' data-id='South Cambridgeshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e246' cx='216.02' cy='299.02' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Derbyshire' data-id='South Derbyshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e247' cx='206.99' cy='264.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Gloucestershire' data-id='South Gloucestershire'/>\n   <circle id='svg_ed6fcace99c25a7f_e248' cx='217.13' cy='262.39' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Hams' data-id='South Hams'/>\n   <circle id='svg_ed6fcace99c25a7f_e249' cx='241.62' cy='277.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Holland' data-id='South Holland'/>\n   <circle id='svg_ed6fcace99c25a7f_e250' cx='207.97' cy='287.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Kesteven' data-id='South Kesteven'/>\n   <circle id='svg_ed6fcace99c25a7f_e251' cx='200.16' cy='294.27' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Lakeland' data-id='South Lakeland'/>\n   <circle id='svg_ed6fcace99c25a7f_e252' cx='214.98' cy='274.69' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Norfolk' data-id='South Norfolk'/>\n   <circle id='svg_ed6fcace99c25a7f_e253' cx='179.11' cy='275.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Oxfordshire' data-id='South Oxfordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e254' cx='226.01' cy='289.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Ribble' data-id='South Ribble'/>\n   <circle id='svg_ed6fcace99c25a7f_e255' cx='216.77' cy='272.79' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Somerset' data-id='South Somerset'/>\n   <circle id='svg_ed6fcace99c25a7f_e256' cx='220.28' cy='281.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Staffordshire' data-id='South Staffordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e257' cx='230.67' cy='281.4' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Tyneside' data-id='South Tyneside'/>\n   <circle id='svg_ed6fcace99c25a7f_e258' cx='222.07' cy='278.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Southampton' data-id='Southampton'/>\n   <circle id='svg_ed6fcace99c25a7f_e259' cx='229.98' cy='284.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Southend-on-Sea' data-id='Southend-on-Sea'/>\n   <circle id='svg_ed6fcace99c25a7f_e260' cx='187.75' cy='273.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Southwark' data-id='Southwark'/>\n   <circle id='svg_ed6fcace99c25a7f_e261' cx='197.31' cy='287.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Spelthorne' data-id='Spelthorne'/>\n   <circle id='svg_ed6fcace99c25a7f_e262' cx='189.74' cy='272.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='St Albans' data-id='St Albans'/>\n   <circle id='svg_ed6fcace99c25a7f_e263' cx='232' cy='270.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='St. Helens' data-id='St. Helens'/>\n   <circle id='svg_ed6fcace99c25a7f_e264' cx='223.07' cy='276.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stafford' data-id='Stafford'/>\n   <circle id='svg_ed6fcace99c25a7f_e265' cx='250.72' cy='269.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Staffordshire Moorlands' data-id='Staffordshire Moorlands'/>\n   <circle id='svg_ed6fcace99c25a7f_e266' cx='216.05' cy='288.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stevenage' data-id='Stevenage'/>\n   <circle id='svg_ed6fcace99c25a7f_e267' cx='212.84' cy='299.03' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stockport' data-id='Stockport'/>\n   <circle id='svg_ed6fcace99c25a7f_e268' cx='241.1' cy='272.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stockton-on-Tees' data-id='Stockton-on-Tees'/>\n   <circle id='svg_ed6fcace99c25a7f_e269' cx='250.01' cy='285.31' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stoke-on-Trent' data-id='Stoke-on-Trent'/>\n   <circle id='svg_ed6fcace99c25a7f_e270' cx='200.3' cy='285.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stratford-on-Avon' data-id='Stratford-on-Avon'/>\n   <circle id='svg_ed6fcace99c25a7f_e271' cx='220.84' cy='289.21' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stroud' data-id='Stroud'/>\n   <circle id='svg_ed6fcace99c25a7f_e272' cx='239.05' cy='286.72' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sunderland' data-id='Sunderland'/>\n   <circle id='svg_ed6fcace99c25a7f_e273' cx='182.54' cy='273.72' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Surrey Heath' data-id='Surrey Heath'/>\n   <circle id='svg_ed6fcace99c25a7f_e274' cx='206.31' cy='295.86' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sutton' data-id='Sutton'/>\n   <circle id='svg_ed6fcace99c25a7f_e275' cx='226.45' cy='265.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Swale' data-id='Swale'/>\n   <circle id='svg_ed6fcace99c25a7f_e276' cx='250.12' cy='274.36' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Swansea' data-id='Swansea'/>\n   <circle id='svg_ed6fcace99c25a7f_e277' cx='209.01' cy='260.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Swindon' data-id='Swindon'/>\n   <circle id='svg_ed6fcace99c25a7f_e278' cx='234.44' cy='277.31' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tameside' data-id='Tameside'/>\n   <circle id='svg_ed6fcace99c25a7f_e279' cx='225.12' cy='263.5' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tamworth' data-id='Tamworth'/>\n   <circle id='svg_ed6fcace99c25a7f_e280' cx='193.33' cy='266.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tandridge' data-id='Tandridge'/>\n   <circle id='svg_ed6fcace99c25a7f_e281' cx='216.9' cy='283.23' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Teignbridge' data-id='Teignbridge'/>\n   <circle id='svg_ed6fcace99c25a7f_e282' cx='244.79' cy='282.8' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Telford and Wrekin' data-id='Telford and Wrekin'/>\n   <circle id='svg_ed6fcace99c25a7f_e283' cx='272.09' cy='277.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tendring' data-id='Tendring'/>\n   <circle id='svg_ed6fcace99c25a7f_e284' cx='201.21' cy='262.34' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Test Valley' data-id='Test Valley'/>\n   <circle id='svg_ed6fcace99c25a7f_e285' cx='165.57' cy='278.83' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tewkesbury' data-id='Tewkesbury'/>\n   <circle id='svg_ed6fcace99c25a7f_e286' cx='255.73' cy='274.3' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Thanet' data-id='Thanet'/>\n   <circle id='svg_ed6fcace99c25a7f_e287' cx='190.92' cy='268.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Three Rivers' data-id='Three Rivers'/>\n   <circle id='svg_ed6fcace99c25a7f_e288' cx='217.89' cy='270.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Thurrock' data-id='Thurrock'/>\n   <circle id='svg_ed6fcace99c25a7f_e289' cx='186.29' cy='281.03' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tonbridge and Malling' data-id='Tonbridge and Malling'/>\n   <circle id='svg_ed6fcace99c25a7f_e290' cx='261.97' cy='278.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Torbay' data-id='Torbay'/>\n   <circle id='svg_ed6fcace99c25a7f_e291' cx='261.67' cy='276.56' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Torfaen' data-id='Torfaen'/>\n   <circle id='svg_ed6fcace99c25a7f_e292' cx='241.05' cy='288.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Torridge' data-id='Torridge'/>\n   <circle id='svg_ed6fcace99c25a7f_e293' cx='171.93' cy='278.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tower Hamlets' data-id='Tower Hamlets'/>\n   <circle id='svg_ed6fcace99c25a7f_e294' cx='197.62' cy='271.28' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Trafford' data-id='Trafford'/>\n   <circle id='svg_ed6fcace99c25a7f_e295' cx='212.64' cy='259.6' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tunbridge Wells' data-id='Tunbridge Wells'/>\n   <circle id='svg_ed6fcace99c25a7f_e296' cx='199.31' cy='269.84' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Uttlesford' data-id='Uttlesford'/>\n   <circle id='svg_ed6fcace99c25a7f_e297' cx='209.17' cy='273.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Vale of Glamorgan' data-id='Vale of Glamorgan'/>\n   <circle id='svg_ed6fcace99c25a7f_e298' cx='187.69' cy='285.74' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Vale of White Horse' data-id='Vale of White Horse'/>\n   <circle id='svg_ed6fcace99c25a7f_e299' cx='237.3' cy='267.76' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wakefield' data-id='Wakefield'/>\n   <circle id='svg_ed6fcace99c25a7f_e300' cx='268.38' cy='278.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Walsall' data-id='Walsall'/>\n   <circle id='svg_ed6fcace99c25a7f_e301' cx='180.92' cy='278.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Waltham Forest' data-id='Waltham Forest'/>\n   <circle id='svg_ed6fcace99c25a7f_e302' cx='176.03' cy='280.8' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wandsworth' data-id='Wandsworth'/>\n   <circle id='svg_ed6fcace99c25a7f_e303' cx='211.7' cy='286.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Warrington' data-id='Warrington'/>\n   <circle id='svg_ed6fcace99c25a7f_e304' cx='200.41' cy='271.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Warwick' data-id='Warwick'/>\n   <circle id='svg_ed6fcace99c25a7f_e305' cx='196.45' cy='275.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Watford' data-id='Watford'/>\n   <circle id='svg_ed6fcace99c25a7f_e306' cx='192.85' cy='273.58' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Waverley' data-id='Waverley'/>\n   <circle id='svg_ed6fcace99c25a7f_e307' cx='209.24' cy='284.64' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wealden' data-id='Wealden'/>\n   <circle id='svg_ed6fcace99c25a7f_e308' cx='193.17' cy='280.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Welwyn Hatfield' data-id='Welwyn Hatfield'/>\n   <circle id='svg_ed6fcace99c25a7f_e309' cx='190.27' cy='275.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Berkshire' data-id='West Berkshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e310' cx='226.41' cy='281.46' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Devon' data-id='West Devon'/>\n   <circle id='svg_ed6fcace99c25a7f_e311' cx='193.33' cy='290.69' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Lancashire' data-id='West Lancashire'/>\n   <circle id='svg_ed6fcace99c25a7f_e312' cx='241.45' cy='265.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Lindsey' data-id='West Lindsey'/>\n   <circle id='svg_ed6fcace99c25a7f_e313' cx='215.85' cy='258.94' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Northamptonshire' data-id='West Northamptonshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e314' cx='208.89' cy='271.01' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Oxfordshire' data-id='West Oxfordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e315' cx='210.24' cy='257.13' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Suffolk' data-id='West Suffolk'/>\n   <circle id='svg_ed6fcace99c25a7f_e316' cx='207.56' cy='276.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Westminster' data-id='Westminster'/>\n   <circle id='svg_ed6fcace99c25a7f_e317' cx='230.77' cy='268.27' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wigan' data-id='Wigan'/>\n   <circle id='svg_ed6fcace99c25a7f_e318' cx='210.76' cy='295.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wiltshire' data-id='Wiltshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e319' cx='182.33' cy='281.8' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Winchester' data-id='Winchester'/>\n   <circle id='svg_ed6fcace99c25a7f_e320' cx='185.06' cy='286.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Windsor and Maidenhead' data-id='Windsor and Maidenhead'/>\n   <circle id='svg_ed6fcace99c25a7f_e321' cx='249.22' cy='288.47' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wirral' data-id='Wirral'/>\n   <circle id='svg_ed6fcace99c25a7f_e322' cx='184.66' cy='283.42' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Woking' data-id='Woking'/>\n   <circle id='svg_ed6fcace99c25a7f_e323' cx='179.58' cy='283.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wokingham' data-id='Wokingham'/>\n   <circle id='svg_ed6fcace99c25a7f_e324' cx='253.81' cy='283.35' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wolverhampton' data-id='Wolverhampton'/>\n   <circle id='svg_ed6fcace99c25a7f_e325' cx='200.2' cy='276.3' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Worcester' data-id='Worcester'/>\n   <circle id='svg_ed6fcace99c25a7f_e326' cx='222.97' cy='283.06' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Worthing' data-id='Worthing'/>\n   <circle id='svg_ed6fcace99c25a7f_e327' cx='245.59' cy='273.31' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wrexham' data-id='Wrexham'/>\n   <circle id='svg_ed6fcace99c25a7f_e328' cx='223.69' cy='289.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wychavon' data-id='Wychavon'/>\n   <circle id='svg_ed6fcace99c25a7f_e329' cx='248.57' cy='287.23' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wyre' data-id='Wyre'/>\n   <circle id='svg_ed6fcace99c25a7f_e330' cx='236.58' cy='280.73' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wyre Forest' data-id='Wyre Forest'/>\n   <circle id='svg_ed6fcace99c25a7f_e331' cx='200.38' cy='289.86' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='York' data-id='York'/>\n   <circle id='svg_ed6fcace99c25a7f_e332' cx='225.57' cy='238.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Adur' data-id='Adur'/>\n   <circle id='svg_ed6fcace99c25a7f_e333' cx='230.55' cy='211.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Allerdale' data-id='Allerdale'/>\n   <circle id='svg_ed6fcace99c25a7f_e334' cx='224.72' cy='212.28' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Amber Valley' data-id='Amber Valley'/>\n   <circle id='svg_ed6fcace99c25a7f_e335' cx='221.78' cy='224.14' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Arun' data-id='Arun'/>\n   <circle id='svg_ed6fcace99c25a7f_e336' cx='250.43' cy='226.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ashfield' data-id='Ashfield'/>\n   <circle id='svg_ed6fcace99c25a7f_e337' cx='211.29' cy='223.54' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ashford' data-id='Ashford'/>\n   <circle id='svg_ed6fcace99c25a7f_e338' cx='205.51' cy='233.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Babergh' data-id='Babergh'/>\n   <circle id='svg_ed6fcace99c25a7f_e339' cx='223.89' cy='230.59' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barking and Dagenham' data-id='Barking and Dagenham'/>\n   <circle id='svg_ed6fcace99c25a7f_e340' cx='204.11' cy='227.46' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barnet' data-id='Barnet'/>\n   <circle id='svg_ed6fcace99c25a7f_e341' cx='257.59' cy='219.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barnsley' data-id='Barnsley'/>\n   <circle id='svg_ed6fcace99c25a7f_e342' cx='249.34' cy='221.36' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barrow-in-Furness' data-id='Barrow-in-Furness'/>\n   <circle id='svg_ed6fcace99c25a7f_e343' cx='219.67' cy='226.6' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Basildon' data-id='Basildon'/>\n   <circle id='svg_ed6fcace99c25a7f_e344' cx='196.14' cy='221.13' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Basingstoke and Deane' data-id='Basingstoke and Deane'/>\n   <circle id='svg_ed6fcace99c25a7f_e345' cx='234.66' cy='223.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bassetlaw' data-id='Bassetlaw'/>\n   <circle id='svg_ed6fcace99c25a7f_e346' cx='201.54' cy='241.97' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bath and North East Somerset' data-id='Bath and North East Somerset'/>\n   <circle id='svg_ed6fcace99c25a7f_e347' cx='208.24' cy='212.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bedford' data-id='Bedford'/>\n   <circle id='svg_ed6fcace99c25a7f_e348' cx='209.15' cy='226.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bexley' data-id='Bexley'/>\n   <circle id='svg_ed6fcace99c25a7f_e349' cx='237.28' cy='234.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Birmingham' data-id='Birmingham'/>\n   <circle id='svg_ed6fcace99c25a7f_e350' cx='204.36' cy='208.23' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blaby' data-id='Blaby'/>\n   <circle id='svg_ed6fcace99c25a7f_e351' cx='249.75' cy='217.23' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blackburn with Darwen' data-id='Blackburn with Darwen'/>\n   <circle id='svg_ed6fcace99c25a7f_e352' cx='278.75' cy='223.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blackpool' data-id='Blackpool'/>\n   <circle id='svg_ed6fcace99c25a7f_e353' cx='286' cy='224.01' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blaenau Gwent' data-id='Blaenau Gwent'/>\n   <circle id='svg_ed6fcace99c25a7f_e354' cx='260.57' cy='223.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bolsover' data-id='Bolsover'/>\n   <circle id='svg_ed6fcace99c25a7f_e355' cx='238.37' cy='234.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bolton' data-id='Bolton'/>\n   <circle id='svg_ed6fcace99c25a7f_e356' cx='229.9' cy='217.61' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Boston' data-id='Boston'/>\n   <circle id='svg_ed6fcace99c25a7f_e357' cx='219.03' cy='231.58' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bournemouth, Christchurch and Poole' data-id='Bournemouth, Christchurch and Poole'/>\n   <circle id='svg_ed6fcace99c25a7f_e358' cx='190.04' cy='214.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bracknell Forest' data-id='Bracknell Forest'/>\n   <circle id='svg_ed6fcace99c25a7f_e359' cx='235.96' cy='217.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bradford' data-id='Bradford'/>\n   <circle id='svg_ed6fcace99c25a7f_e360' cx='206.74' cy='235.43' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Braintree' data-id='Braintree'/>\n   <circle id='svg_ed6fcace99c25a7f_e361' cx='221.26' cy='233.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Breckland' data-id='Breckland'/>\n   <circle id='svg_ed6fcace99c25a7f_e362' cx='209' cy='217.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Brent' data-id='Brent'/>\n   <circle id='svg_ed6fcace99c25a7f_e363' cx='196.82' cy='229.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Brentwood' data-id='Brentwood'/>\n   <circle id='svg_ed6fcace99c25a7f_e364' cx='255.87' cy='221.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bridgend' data-id='Bridgend'/>\n   <circle id='svg_ed6fcace99c25a7f_e365' cx='214.2' cy='231.97' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Brighton and Hove' data-id='Brighton and Hove'/>\n   <circle id='svg_ed6fcace99c25a7f_e366' cx='216.11' cy='204.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bristol' data-id='Bristol'/>\n   <circle id='svg_ed6fcace99c25a7f_e367' cx='208.36' cy='235.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Broadland' data-id='Broadland'/>\n   <circle id='svg_ed6fcace99c25a7f_e368' cx='199.27' cy='219.43' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bromley' data-id='Bromley'/>\n   <circle id='svg_ed6fcace99c25a7f_e369' cx='206.75' cy='215.11' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bromsgrove' data-id='Bromsgrove'/>\n   <circle id='svg_ed6fcace99c25a7f_e370' cx='209.3' cy='219.43' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Broxbourne' data-id='Broxbourne'/>\n   <circle id='svg_ed6fcace99c25a7f_e371' cx='218.98' cy='221.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Broxtowe' data-id='Broxtowe'/>\n   <circle id='svg_ed6fcace99c25a7f_e372' cx='191.24' cy='228.76' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Buckinghamshire' data-id='Buckinghamshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e373' cx='252.11' cy='216.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Burnley' data-id='Burnley'/>\n   <circle id='svg_ed6fcace99c25a7f_e374' cx='227.61' cy='214.35' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bury' data-id='Bury'/>\n   <circle id='svg_ed6fcace99c25a7f_e375' cx='271.71' cy='223.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Caerphilly' data-id='Caerphilly'/>\n   <circle id='svg_ed6fcace99c25a7f_e376' cx='228.2' cy='236.86' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Calderdale' data-id='Calderdale'/>\n   <circle id='svg_ed6fcace99c25a7f_e377' cx='188.48' cy='218.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cambridge' data-id='Cambridge'/>\n   <circle id='svg_ed6fcace99c25a7f_e378' cx='216.77' cy='222.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Camden' data-id='Camden'/>\n   <circle id='svg_ed6fcace99c25a7f_e379' cx='240.34' cy='218.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cannock Chase' data-id='Cannock Chase'/>\n   <circle id='svg_ed6fcace99c25a7f_e380' cx='218.29' cy='210.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Canterbury' data-id='Canterbury'/>\n   <circle id='svg_ed6fcace99c25a7f_e381' cx='231.48' cy='228.69' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cardiff' data-id='Cardiff'/>\n   <circle id='svg_ed6fcace99c25a7f_e382' cx='226.76' cy='206.53' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Carlisle' data-id='Carlisle'/>\n   <circle id='svg_ed6fcace99c25a7f_e383' cx='253.52' cy='226.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Carmarthenshire' data-id='Carmarthenshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e384' cx='224.03' cy='210.94' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Castle Point' data-id='Castle Point'/>\n   <circle id='svg_ed6fcace99c25a7f_e385' cx='198.69' cy='212.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Central Bedfordshire' data-id='Central Bedfordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e386' cx='230.16' cy='224.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ceredigion' data-id='Ceredigion'/>\n   <circle id='svg_ed6fcace99c25a7f_e387' cx='204.11' cy='205.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Charnwood' data-id='Charnwood'/>\n   <circle id='svg_ed6fcace99c25a7f_e388' cx='194.82' cy='230.73' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chelmsford' data-id='Chelmsford'/>\n   <circle id='svg_ed6fcace99c25a7f_e389' cx='200.09' cy='224.31' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cheltenham' data-id='Cheltenham'/>\n   <circle id='svg_ed6fcace99c25a7f_e390' cx='197.18' cy='216.64' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cherwell' data-id='Cherwell'/>\n   <circle id='svg_ed6fcace99c25a7f_e391' cx='211.34' cy='232.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cheshire East' data-id='Cheshire East'/>\n   <circle id='svg_ed6fcace99c25a7f_e392' cx='219.6' cy='216.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cheshire West and Chester' data-id='Cheshire West and Chester'/>\n   <circle id='svg_ed6fcace99c25a7f_e393' cx='250.34' cy='222.36' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chesterfield' data-id='Chesterfield'/>\n   <circle id='svg_ed6fcace99c25a7f_e394' cx='204.13' cy='241.23' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chichester' data-id='Chichester'/>\n   <circle id='svg_ed6fcace99c25a7f_e395' cx='218.81' cy='205.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chorley' data-id='Chorley'/>\n   <circle id='svg_ed6fcace99c25a7f_e396' cx='179.07' cy='223.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='City of London' data-id='City of London'/>\n   <circle id='svg_ed6fcace99c25a7f_e397' cx='204.74' cy='224.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Colchester' data-id='Colchester'/>\n   <circle id='svg_ed6fcace99c25a7f_e398' cx='237.92' cy='216.37' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Conwy' data-id='Conwy'/>\n   <circle id='svg_ed6fcace99c25a7f_e399' cx='244.39' cy='218.53' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Copeland' data-id='Copeland'/>\n   <circle id='svg_ed6fcace99c25a7f_e400' cx='232.78' cy='225.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cornwall' data-id='Cornwall'/>\n   <circle id='svg_ed6fcace99c25a7f_e401' cx='197.9' cy='207.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cotswold' data-id='Cotswold'/>\n   <circle id='svg_ed6fcace99c25a7f_e402' cx='256.24' cy='224.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='County Durham' data-id='County Durham'/>\n   <circle id='svg_ed6fcace99c25a7f_e403' cx='224.86' cy='236.56' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Coventry' data-id='Coventry'/>\n   <circle id='svg_ed6fcace99c25a7f_e404' cx='202.06' cy='209.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Craven' data-id='Craven'/>\n   <circle id='svg_ed6fcace99c25a7f_e405' cx='209.26' cy='237.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Crawley' data-id='Crawley'/>\n   <circle id='svg_ed6fcace99c25a7f_e406' cx='207.13' cy='221.5' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Croydon' data-id='Croydon'/>\n   <circle id='svg_ed6fcace99c25a7f_e407' cx='201.22' cy='228.62' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dacorum' data-id='Dacorum'/>\n   <circle id='svg_ed6fcace99c25a7f_e408' cx='231.27' cy='222.14' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Darlington' data-id='Darlington'/>\n   <circle id='svg_ed6fcace99c25a7f_e409' cx='200.58' cy='243.94' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dartford' data-id='Dartford'/>\n   <circle id='svg_ed6fcace99c25a7f_e410' cx='248.8' cy='219.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Denbighshire' data-id='Denbighshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e411' cx='230.74' cy='235.56' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Derby' data-id='Derby'/>\n   <circle id='svg_ed6fcace99c25a7f_e412' cx='206.25' cy='220.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Derbyshire Dales' data-id='Derbyshire Dales'/>\n   <circle id='svg_ed6fcace99c25a7f_e413' cx='245.85' cy='216.69' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Doncaster' data-id='Doncaster'/>\n   <circle id='svg_ed6fcace99c25a7f_e414' cx='215.67' cy='229.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dorset' data-id='Dorset'/>\n   <circle id='svg_ed6fcace99c25a7f_e415' cx='235.55' cy='223.63' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dover' data-id='Dover'/>\n   <circle id='svg_ed6fcace99c25a7f_e416' cx='234.64' cy='217.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dudley' data-id='Dudley'/>\n   <circle id='svg_ed6fcace99c25a7f_e417' cx='205.75' cy='238.6' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ealing' data-id='Ealing'/>\n   <circle id='svg_ed6fcace99c25a7f_e418' cx='203.55' cy='232.98' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Cambridgeshire' data-id='East Cambridgeshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e419' cx='212.73' cy='221.22' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Devon' data-id='East Devon'/>\n   <circle id='svg_ed6fcace99c25a7f_e420' cx='193.31' cy='231.37' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Hampshire' data-id='East Hampshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e421' cx='191.35' cy='217.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Hertfordshire' data-id='East Hertfordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e422' cx='260.83' cy='219.22' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Lindsey' data-id='East Lindsey'/>\n   <circle id='svg_ed6fcace99c25a7f_e423' cx='219.9' cy='238.88' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Riding of Yorkshire' data-id='East Riding of Yorkshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e424' cx='215.04' cy='207.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Staffordshire' data-id='East Staffordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e425' cx='224.45' cy='206.11' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Suffolk' data-id='East Suffolk'/>\n   <circle id='svg_ed6fcace99c25a7f_e426' cx='235.71' cy='230.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Eastbourne' data-id='Eastbourne'/>\n   <circle id='svg_ed6fcace99c25a7f_e427' cx='198.04' cy='240.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Eastleigh' data-id='Eastleigh'/>\n   <circle id='svg_ed6fcace99c25a7f_e428' cx='205.76' cy='217.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Eden' data-id='Eden'/>\n   <circle id='svg_ed6fcace99c25a7f_e429' cx='185.05' cy='227.03' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Elmbridge' data-id='Elmbridge'/>\n   <circle id='svg_ed6fcace99c25a7f_e430' cx='219.69' cy='206.91' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Enfield' data-id='Enfield'/>\n   <circle id='svg_ed6fcace99c25a7f_e431' cx='203.04' cy='243.94' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Epping Forest' data-id='Epping Forest'/>\n   <circle id='svg_ed6fcace99c25a7f_e432' cx='187.54' cy='222.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Epsom and Ewell' data-id='Epsom and Ewell'/>\n   <circle id='svg_ed6fcace99c25a7f_e433' cx='224.67' cy='231.74' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Erewash' data-id='Erewash'/>\n   <circle id='svg_ed6fcace99c25a7f_e434' cx='207.02' cy='241.53' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Exeter' data-id='Exeter'/>\n   <circle id='svg_ed6fcace99c25a7f_e435' cx='200.86' cy='223.35' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Fareham' data-id='Fareham'/>\n   <circle id='svg_ed6fcace99c25a7f_e436' cx='238.28' cy='219.4' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Fenland' data-id='Fenland'/>\n   <circle id='svg_ed6fcace99c25a7f_e437' cx='226.04' cy='229.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Flintshire' data-id='Flintshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e438' cx='238.31' cy='225.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Folkestone and Hythe' data-id='Folkestone and Hythe'/>\n   <circle id='svg_ed6fcace99c25a7f_e439' cx='222.43' cy='233.03' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Forest of Dean' data-id='Forest of Dean'/>\n   <circle id='svg_ed6fcace99c25a7f_e440' cx='226.37' cy='233.53' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Fylde' data-id='Fylde'/>\n   <circle id='svg_ed6fcace99c25a7f_e441' cx='255.63' cy='228.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gateshead' data-id='Gateshead'/>\n   <circle id='svg_ed6fcace99c25a7f_e442' cx='222.05' cy='223.22' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gedling' data-id='Gedling'/>\n   <circle id='svg_ed6fcace99c25a7f_e443' cx='216.98' cy='232.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gloucester' data-id='Gloucester'/>\n   <circle id='svg_ed6fcace99c25a7f_e444' cx='223.75' cy='240.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gosport' data-id='Gosport'/>\n   <circle id='svg_ed6fcace99c25a7f_e445' cx='217.26' cy='237.98' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gravesham' data-id='Gravesham'/>\n   <circle id='svg_ed6fcace99c25a7f_e446' cx='251.16' cy='220.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Great Yarmouth' data-id='Great Yarmouth'/>\n   <circle id='svg_ed6fcace99c25a7f_e447' cx='213.71' cy='225.91' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Greenwich' data-id='Greenwich'/>\n   <circle id='svg_ed6fcace99c25a7f_e448' cx='188.34' cy='226.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Guildford' data-id='Guildford'/>\n   <circle id='svg_ed6fcace99c25a7f_e449' cx='218.44' cy='215.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gwynedd' data-id='Gwynedd'/>\n   <circle id='svg_ed6fcace99c25a7f_e450' cx='223.07' cy='237.98' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hackney' data-id='Hackney'/>\n   <circle id='svg_ed6fcace99c25a7f_e451' cx='261.21' cy='223.59' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Halton' data-id='Halton'/>\n   <circle id='svg_ed6fcace99c25a7f_e452' cx='205.98' cy='206.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hambleton' data-id='Hambleton'/>\n   <circle id='svg_ed6fcace99c25a7f_e453' cx='201.06' cy='239.06' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hammersmith and Fulham' data-id='Hammersmith and Fulham'/>\n   <circle id='svg_ed6fcace99c25a7f_e454' cx='195.28' cy='234.79' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harborough' data-id='Harborough'/>\n   <circle id='svg_ed6fcace99c25a7f_e455' cx='217.44' cy='217.87' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Haringey' data-id='Haringey'/>\n   <circle id='svg_ed6fcace99c25a7f_e456' cx='221.65' cy='214.36' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harlow' data-id='Harlow'/>\n   <circle id='svg_ed6fcace99c25a7f_e457' cx='197.19' cy='225.3' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harrogate' data-id='Harrogate'/>\n   <circle id='svg_ed6fcace99c25a7f_e458' cx='201.02' cy='212.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harrow' data-id='Harrow'/>\n   <circle id='svg_ed6fcace99c25a7f_e459' cx='183.18' cy='222.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hart' data-id='Hart'/>\n   <circle id='svg_ed6fcace99c25a7f_e460' cx='263.82' cy='225.11' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hartlepool' data-id='Hartlepool'/>\n   <circle id='svg_ed6fcace99c25a7f_e461' cx='251.08' cy='228.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hastings' data-id='Hastings'/>\n   <circle id='svg_ed6fcace99c25a7f_e462' cx='225.16' cy='226.84' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Havant' data-id='Havant'/>\n   <circle id='svg_ed6fcace99c25a7f_e463' cx='210.22' cy='215.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Havering' data-id='Havering'/>\n   <circle id='svg_ed6fcace99c25a7f_e464' cx='217.86' cy='207.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Herefordshire' data-id='Herefordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e465' cx='201.09' cy='218.11' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hertsmere' data-id='Hertsmere'/>\n   <circle id='svg_ed6fcace99c25a7f_e466' cx='215.39' cy='239.64' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='High Peak' data-id='High Peak'/>\n   <circle id='svg_ed6fcace99c25a7f_e467' cx='203.54' cy='221.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hillingdon' data-id='Hillingdon'/>\n   <circle id='svg_ed6fcace99c25a7f_e468' cx='211.84' cy='214.5' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hinckley and Bosworth' data-id='Hinckley and Bosworth'/>\n   <circle id='svg_ed6fcace99c25a7f_e469' cx='193.67' cy='217.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Horsham' data-id='Horsham'/>\n   <circle id='svg_ed6fcace99c25a7f_e470' cx='206.44' cy='209.83' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hounslow' data-id='Hounslow'/>\n   <circle id='svg_ed6fcace99c25a7f_e471' cx='204.03' cy='238.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Huntingdonshire' data-id='Huntingdonshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e472' cx='251.38' cy='224.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hyndburn' data-id='Hyndburn'/>\n   <circle id='svg_ed6fcace99c25a7f_e473' cx='218.88' cy='241.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ipswich' data-id='Ipswich'/>\n   <circle id='svg_ed6fcace99c25a7f_e474' cx='226.69' cy='224.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Isle of Anglesey' data-id='Isle of Anglesey'/>\n   <circle id='svg_ed6fcace99c25a7f_e475' cx='238.77' cy='222.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Isle of Wight' data-id='Isle of Wight'/>\n   <circle id='svg_ed6fcace99c25a7f_e476' cx='194.94' cy='215.63' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Isles of Scilly' data-id='Isles of Scilly'/>\n   <circle id='svg_ed6fcace99c25a7f_e477' cx='224.19' cy='215.86' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Islington' data-id='Islington'/>\n   <circle id='svg_ed6fcace99c25a7f_e478' cx='204.3' cy='219.21' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kensington and Chelsea' data-id='Kensington and Chelsea'/>\n   <circle id='svg_ed6fcace99c25a7f_e479' cx='229.1' cy='220.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='King&amp;#39;s Lynn and West Norfolk' data-id='King’s Lynn and West Norfolk'/>\n   <circle id='svg_ed6fcace99c25a7f_e480' cx='247.61' cy='227.27' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kingston upon Hull' data-id='Kingston upon Hull'/>\n   <circle id='svg_ed6fcace99c25a7f_e481' cx='192.18' cy='213.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kingston upon Thames' data-id='Kingston upon Thames'/>\n   <circle id='svg_ed6fcace99c25a7f_e482' cx='227.9' cy='218.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kirklees' data-id='Kirklees'/>\n   <circle id='svg_ed6fcace99c25a7f_e483' cx='278.04' cy='224.82' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Knowsley' data-id='Knowsley'/>\n   <circle id='svg_ed6fcace99c25a7f_e484' cx='199.1' cy='207.43' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lambeth' data-id='Lambeth'/>\n   <circle id='svg_ed6fcace99c25a7f_e485' cx='225.78' cy='219.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lancaster' data-id='Lancaster'/>\n   <circle id='svg_ed6fcace99c25a7f_e486' cx='218.64' cy='225.39' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Leeds' data-id='Leeds'/>\n   <circle id='svg_ed6fcace99c25a7f_e487' cx='224.61' cy='222' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Leicester' data-id='Leicester'/>\n   <circle id='svg_ed6fcace99c25a7f_e488' cx='223.39' cy='228.14' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lewes' data-id='Lewes'/>\n   <circle id='svg_ed6fcace99c25a7f_e489' cx='208.19' cy='231.06' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lewisham' data-id='Lewisham'/>\n   <circle id='svg_ed6fcace99c25a7f_e490' cx='216.04' cy='214.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lichfield' data-id='Lichfield'/>\n   <circle id='svg_ed6fcace99c25a7f_e491' cx='223.08' cy='218.3' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lincoln' data-id='Lincoln'/>\n   <circle id='svg_ed6fcace99c25a7f_e492' cx='266.41' cy='225.13' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Liverpool' data-id='Liverpool'/>\n   <circle id='svg_ed6fcace99c25a7f_e493' cx='217.95' cy='220.39' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Luton' data-id='Luton'/>\n   <circle id='svg_ed6fcace99c25a7f_e494' cx='206' cy='241.08' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Maidstone' data-id='Maidstone'/>\n   <circle id='svg_ed6fcace99c25a7f_e495' cx='211.9' cy='237.11' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Maldon' data-id='Maldon'/>\n   <circle id='svg_ed6fcace99c25a7f_e496' cx='214.48' cy='236.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Malvern Hills' data-id='Malvern Hills'/>\n   <circle id='svg_ed6fcace99c25a7f_e497' cx='237.83' cy='228.02' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Manchester' data-id='Manchester'/>\n   <circle id='svg_ed6fcace99c25a7f_e498' cx='254.38' cy='219.36' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mansfield' data-id='Mansfield'/>\n   <circle id='svg_ed6fcace99c25a7f_e499' cx='220.97' cy='229.02' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Medway' data-id='Medway'/>\n   <circle id='svg_ed6fcace99c25a7f_e500' cx='199.92' cy='214.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Melton' data-id='Melton'/>\n   <circle id='svg_ed6fcace99c25a7f_e501' cx='209.38' cy='228.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mendip' data-id='Mendip'/>\n   <circle id='svg_ed6fcace99c25a7f_e502' cx='286.03' cy='223.08' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Merthyr Tydfil' data-id='Merthyr Tydfil'/>\n   <circle id='svg_ed6fcace99c25a7f_e503' cx='193.24' cy='214.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Merton' data-id='Merton'/>\n   <circle id='svg_ed6fcace99c25a7f_e504' cx='212.97' cy='230.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mid Devon' data-id='Mid Devon'/>\n   <circle id='svg_ed6fcace99c25a7f_e505' cx='202.21' cy='215.21' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mid Suffolk' data-id='Mid Suffolk'/>\n   <circle id='svg_ed6fcace99c25a7f_e506' cx='194.46' cy='223.22' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mid Sussex' data-id='Mid Sussex'/>\n   <circle id='svg_ed6fcace99c25a7f_e507' cx='257.55' cy='225.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Middlesbrough' data-id='Middlesbrough'/>\n   <circle id='svg_ed6fcace99c25a7f_e508' cx='206.44' cy='230.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Milton Keynes' data-id='Milton Keynes'/>\n   <circle id='svg_ed6fcace99c25a7f_e509' cx='195.9' cy='211.13' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mole Valley' data-id='Mole Valley'/>\n   <circle id='svg_ed6fcace99c25a7f_e510' cx='223.78' cy='220.76' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Monmouthshire' data-id='Monmouthshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e511' cx='276.27' cy='222.69' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Neath Port Talbot' data-id='Neath Port Talbot'/>\n   <circle id='svg_ed6fcace99c25a7f_e512' cx='210.68' cy='223.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='New Forest' data-id='New Forest'/>\n   <circle id='svg_ed6fcace99c25a7f_e513' cx='227.98' cy='226.87' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newark and Sherwood' data-id='Newark and Sherwood'/>\n   <circle id='svg_ed6fcace99c25a7f_e514' cx='238.33' cy='213.79' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newcastle upon Tyne' data-id='Newcastle upon Tyne'/>\n   <circle id='svg_ed6fcace99c25a7f_e515' cx='235.46' cy='236.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newcastle-under-Lyme' data-id='Newcastle-under-Lyme'/>\n   <circle id='svg_ed6fcace99c25a7f_e516' cx='213.75' cy='206.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newham' data-id='Newham'/>\n   <circle id='svg_ed6fcace99c25a7f_e517' cx='244.52' cy='220.4' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newport' data-id='Newport'/>\n   <circle id='svg_ed6fcace99c25a7f_e518' cx='225.52' cy='207.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Devon' data-id='North Devon'/>\n   <circle id='svg_ed6fcace99c25a7f_e519' cx='238' cy='230.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North East Derbyshire' data-id='North East Derbyshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e520' cx='241.49' cy='229.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North East Lincolnshire' data-id='North East Lincolnshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e521' cx='198.73' cy='217.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Hertfordshire' data-id='North Hertfordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e522' cx='213.34' cy='235.3' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Kesteven' data-id='North Kesteven'/>\n   <circle id='svg_ed6fcace99c25a7f_e523' cx='232.95' cy='212.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Lincolnshire' data-id='North Lincolnshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e524' cx='227.89' cy='235.12' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Norfolk' data-id='North Norfolk'/>\n   <circle id='svg_ed6fcace99c25a7f_e525' cx='216.07' cy='224.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Northamptonshire' data-id='North Northamptonshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e526' cx='219.1' cy='211.76' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Somerset' data-id='North Somerset'/>\n   <circle id='svg_ed6fcace99c25a7f_e527' cx='237.03' cy='214.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Tyneside' data-id='North Tyneside'/>\n   <circle id='svg_ed6fcace99c25a7f_e528' cx='227.11' cy='240.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Warwickshire' data-id='North Warwickshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e529' cx='213.36' cy='216.46' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North West Leicestershire' data-id='North West Leicestershire'/>\n   <circle id='svg_ed6fcace99c25a7f_e530' cx='234.02' cy='227' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Northumberland' data-id='Northumberland'/>\n   <circle id='svg_ed6fcace99c25a7f_e531' cx='224.14' cy='235.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Norwich' data-id='Norwich'/>\n   <circle id='svg_ed6fcace99c25a7f_e532' cx='234.57' cy='230.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Nottingham' data-id='Nottingham'/>\n   <circle id='svg_ed6fcace99c25a7f_e533' cx='231.96' cy='215.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Nuneaton and Bedworth' data-id='Nuneaton and Bedworth'/>\n   <circle id='svg_ed6fcace99c25a7f_e534' cx='214.66' cy='227.19' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Oadby and Wigston' data-id='Oadby and Wigston'/>\n   <circle id='svg_ed6fcace99c25a7f_e535' cx='243.66' cy='222.23' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Oldham' data-id='Oldham'/>\n   <circle id='svg_ed6fcace99c25a7f_e536' cx='192.23' cy='233.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Oxford' data-id='Oxford'/>\n   <circle id='svg_ed6fcace99c25a7f_e537' cx='242.16' cy='217.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Pembrokeshire' data-id='Pembrokeshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e538' cx='233.52' cy='220.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Pendle' data-id='Pendle'/>\n   <circle id='svg_ed6fcace99c25a7f_e539' cx='221.88' cy='204.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Peterborough' data-id='Peterborough'/>\n   <circle id='svg_ed6fcace99c25a7f_e540' cx='238.86' cy='228.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Plymouth' data-id='Plymouth'/>\n   <circle id='svg_ed6fcace99c25a7f_e541' cx='215.8' cy='209.8' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Portsmouth' data-id='Portsmouth'/>\n   <circle id='svg_ed6fcace99c25a7f_e542' cx='226.06' cy='210.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Powys' data-id='Powys'/>\n   <circle id='svg_ed6fcace99c25a7f_e543' cx='227.3' cy='222.74' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Preston' data-id='Preston'/>\n   <circle id='svg_ed6fcace99c25a7f_e544' cx='195.99' cy='237.3' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Reading' data-id='Reading'/>\n   <circle id='svg_ed6fcace99c25a7f_e545' cx='205.35' cy='222.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Redbridge' data-id='Redbridge'/>\n   <circle id='svg_ed6fcace99c25a7f_e546' cx='256.89' cy='228.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Redcar and Cleveland' data-id='Redcar and Cleveland'/>\n   <circle id='svg_ed6fcace99c25a7f_e547' cx='222.02' cy='242.8' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Redditch' data-id='Redditch'/>\n   <circle id='svg_ed6fcace99c25a7f_e548' cx='193.02' cy='227.87' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Reigate and Banstead' data-id='Reigate and Banstead'/>\n   <circle id='svg_ed6fcace99c25a7f_e549' cx='267.64' cy='223.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rhondda Cynon Taf' data-id='Rhondda Cynon Taf'/>\n   <circle id='svg_ed6fcace99c25a7f_e550' cx='195.75' cy='219.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ribble Valley' data-id='Ribble Valley'/>\n   <circle id='svg_ed6fcace99c25a7f_e551' cx='187.21' cy='229.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Richmond upon Thames' data-id='Richmond upon Thames'/>\n   <circle id='svg_ed6fcace99c25a7f_e552' cx='199.62' cy='234.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Richmondshire' data-id='Richmondshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e553' cx='243.86' cy='226' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rochdale' data-id='Rochdale'/>\n   <circle id='svg_ed6fcace99c25a7f_e554' cx='205.16' cy='244.3' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rochford' data-id='Rochford'/>\n   <circle id='svg_ed6fcace99c25a7f_e555' cx='235.24' cy='210.87' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rossendale' data-id='Rossendale'/>\n   <circle id='svg_ed6fcace99c25a7f_e556' cx='229.74' cy='231.82' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rother' data-id='Rother'/>\n   <circle id='svg_ed6fcace99c25a7f_e557' cx='249.88' cy='230.59' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rotherham' data-id='Rotherham'/>\n   <circle id='svg_ed6fcace99c25a7f_e558' cx='206.82' cy='225.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rugby' data-id='Rugby'/>\n   <circle id='svg_ed6fcace99c25a7f_e559' cx='194.06' cy='224.58' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Runnymede' data-id='Runnymede'/>\n   <circle id='svg_ed6fcace99c25a7f_e560' cx='198.3' cy='231.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rushcliffe' data-id='Rushcliffe'/>\n   <circle id='svg_ed6fcace99c25a7f_e561' cx='198.08' cy='221.97' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rushmoor' data-id='Rushmoor'/>\n   <circle id='svg_ed6fcace99c25a7f_e562' cx='194.13' cy='210.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rutland' data-id='Rutland'/>\n   <circle id='svg_ed6fcace99c25a7f_e563' cx='209.23' cy='208.08' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ryedale' data-id='Ryedale'/>\n   <circle id='svg_ed6fcace99c25a7f_e564' cx='236.14' cy='233.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Salford' data-id='Salford'/>\n   <circle id='svg_ed6fcace99c25a7f_e565' cx='249.24' cy='229.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sandwell' data-id='Sandwell'/>\n   <circle id='svg_ed6fcace99c25a7f_e566' cx='241.9' cy='221.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Scarborough' data-id='Scarborough'/>\n   <circle id='svg_ed6fcace99c25a7f_e567' cx='224.27' cy='225.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sedgemoor' data-id='Sedgemoor'/>\n   <circle id='svg_ed6fcace99c25a7f_e568' cx='246.5' cy='223.42' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sefton' data-id='Sefton'/>\n   <circle id='svg_ed6fcace99c25a7f_e569' cx='206.91' cy='205.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Selby' data-id='Selby'/>\n   <circle id='svg_ed6fcace99c25a7f_e570' cx='201.44' cy='207.43' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sevenoaks' data-id='Sevenoaks'/>\n   <circle id='svg_ed6fcace99c25a7f_e571' cx='233.11' cy='233.4' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sheffield' data-id='Sheffield'/>\n   <circle id='svg_ed6fcace99c25a7f_e572' cx='215.46' cy='219.8' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Shropshire' data-id='Shropshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e573' cx='202.88' cy='204.14' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Slough' data-id='Slough'/>\n   <circle id='svg_ed6fcace99c25a7f_e574' cx='216.21' cy='242.94' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Solihull' data-id='Solihull'/>\n   <circle id='svg_ed6fcace99c25a7f_e575' cx='217.94' cy='240.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Somerset West and Taunton' data-id='Somerset West and Taunton'/>\n   <circle id='svg_ed6fcace99c25a7f_e576' cx='192.09' cy='226.02' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Cambridgeshire' data-id='South Cambridgeshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e577' cx='212.17' cy='228.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Derbyshire' data-id='South Derbyshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e578' cx='204.45' cy='235.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Gloucestershire' data-id='South Gloucestershire'/>\n   <circle id='svg_ed6fcace99c25a7f_e579' cx='213.1' cy='211.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Hams' data-id='South Hams'/>\n   <circle id='svg_ed6fcace99c25a7f_e580' cx='224.99' cy='217.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Holland' data-id='South Holland'/>\n   <circle id='svg_ed6fcace99c25a7f_e581' cx='212.16' cy='218.98' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Kesteven' data-id='South Kesteven'/>\n   <circle id='svg_ed6fcace99c25a7f_e582' cx='204.07' cy='216.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Lakeland' data-id='South Lakeland'/>\n   <circle id='svg_ed6fcace99c25a7f_e583' cx='204.75' cy='202.86' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Norfolk' data-id='South Norfolk'/>\n   <circle id='svg_ed6fcace99c25a7f_e584' cx='189.47' cy='220.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Oxfordshire' data-id='South Oxfordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e585' cx='215.92' cy='234.76' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Ribble' data-id='South Ribble'/>\n   <circle id='svg_ed6fcace99c25a7f_e586' cx='214.49' cy='217.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Somerset' data-id='South Somerset'/>\n   <circle id='svg_ed6fcace99c25a7f_e587' cx='220.33' cy='219.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Staffordshire' data-id='South Staffordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e588' cx='259.66' cy='221.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Tyneside' data-id='South Tyneside'/>\n   <circle id='svg_ed6fcace99c25a7f_e589' cx='217.01' cy='212.83' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Southampton' data-id='Southampton'/>\n   <circle id='svg_ed6fcace99c25a7f_e590' cx='226.66' cy='215.4' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Southend-on-Sea' data-id='Southend-on-Sea'/>\n   <circle id='svg_ed6fcace99c25a7f_e591' cx='204.64' cy='213.76' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Southwark' data-id='Southwark'/>\n   <circle id='svg_ed6fcace99c25a7f_e592' cx='200.31' cy='203.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Spelthorne' data-id='Spelthorne'/>\n   <circle id='svg_ed6fcace99c25a7f_e593' cx='187.16' cy='218.56' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='St Albans' data-id='St Albans'/>\n   <circle id='svg_ed6fcace99c25a7f_e594' cx='257.98' cy='226.88' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='St. Helens' data-id='St. Helens'/>\n   <circle id='svg_ed6fcace99c25a7f_e595' cx='213.89' cy='241.47' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stafford' data-id='Stafford'/>\n   <circle id='svg_ed6fcace99c25a7f_e596' cx='223.45' cy='208.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Staffordshire Moorlands' data-id='Staffordshire Moorlands'/>\n   <circle id='svg_ed6fcace99c25a7f_e597' cx='212.5' cy='239.61' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stevenage' data-id='Stevenage'/>\n   <circle id='svg_ed6fcace99c25a7f_e598' cx='222.79' cy='213.39' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stockport' data-id='Stockport'/>\n   <circle id='svg_ed6fcace99c25a7f_e599' cx='236.73' cy='226.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stockton-on-Tees' data-id='Stockton-on-Tees'/>\n   <circle id='svg_ed6fcace99c25a7f_e600' cx='256.97' cy='222.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stoke-on-Trent' data-id='Stoke-on-Trent'/>\n   <circle id='svg_ed6fcace99c25a7f_e601' cx='200.97' cy='233.79' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stratford-on-Avon' data-id='Stratford-on-Avon'/>\n   <circle id='svg_ed6fcace99c25a7f_e602' cx='202.8' cy='226.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stroud' data-id='Stroud'/>\n   <circle id='svg_ed6fcace99c25a7f_e603' cx='264.19' cy='222.21' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sunderland' data-id='Sunderland'/>\n   <circle id='svg_ed6fcace99c25a7f_e604' cx='190.6' cy='223' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Surrey Heath' data-id='Surrey Heath'/>\n   <circle id='svg_ed6fcace99c25a7f_e605' cx='201.87' cy='220.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sutton' data-id='Sutton'/>\n   <circle id='svg_ed6fcace99c25a7f_e606' cx='229.57' cy='228.31' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Swale' data-id='Swale'/>\n   <circle id='svg_ed6fcace99c25a7f_e607' cx='252.93' cy='222.93' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Swansea' data-id='Swansea'/>\n   <circle id='svg_ed6fcace99c25a7f_e608' cx='209.69' cy='232.93' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Swindon' data-id='Swindon'/>\n   <circle id='svg_ed6fcace99c25a7f_e609' cx='245.28' cy='224.11' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tameside' data-id='Tameside'/>\n   <circle id='svg_ed6fcace99c25a7f_e610' cx='229.62' cy='213.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tamworth' data-id='Tamworth'/>\n   <circle id='svg_ed6fcace99c25a7f_e611' cx='197.04' cy='212.4' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tandridge' data-id='Tandridge'/>\n   <circle id='svg_ed6fcace99c25a7f_e612' cx='221.16' cy='209.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Teignbridge' data-id='Teignbridge'/>\n   <circle id='svg_ed6fcace99c25a7f_e613' cx='236.31' cy='220.46' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Telford and Wrekin' data-id='Telford and Wrekin'/>\n   <circle id='svg_ed6fcace99c25a7f_e614' cx='256.57' cy='218.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tendring' data-id='Tendring'/>\n   <circle id='svg_ed6fcace99c25a7f_e615' cx='198.89' cy='226.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Test Valley' data-id='Test Valley'/>\n   <circle id='svg_ed6fcace99c25a7f_e616' cx='199.61' cy='209.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tewkesbury' data-id='Tewkesbury'/>\n   <circle id='svg_ed6fcace99c25a7f_e617' cx='250.85' cy='218.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Thanet' data-id='Thanet'/>\n   <circle id='svg_ed6fcace99c25a7f_e618' cx='195.89' cy='227.19' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Three Rivers' data-id='Three Rivers'/>\n   <circle id='svg_ed6fcace99c25a7f_e619' cx='210.77' cy='206.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Thurrock' data-id='Thurrock'/>\n   <circle id='svg_ed6fcace99c25a7f_e620' cx='202.11' cy='236.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tonbridge and Malling' data-id='Tonbridge and Malling'/>\n   <circle id='svg_ed6fcace99c25a7f_e621' cx='249.66' cy='225.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Torbay' data-id='Torbay'/>\n   <circle id='svg_ed6fcace99c25a7f_e622' cx='261.07' cy='228.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Torfaen' data-id='Torfaen'/>\n   <circle id='svg_ed6fcace99c25a7f_e623' cx='228.07' cy='210.62' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Torridge' data-id='Torridge'/>\n   <circle id='svg_ed6fcace99c25a7f_e624' cx='218.2' cy='230.4' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tower Hamlets' data-id='Tower Hamlets'/>\n   <circle id='svg_ed6fcace99c25a7f_e625' cx='214.21' cy='212.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Trafford' data-id='Trafford'/>\n   <circle id='svg_ed6fcace99c25a7f_e626' cx='198.72' cy='236.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tunbridge Wells' data-id='Tunbridge Wells'/>\n   <circle id='svg_ed6fcace99c25a7f_e627' cx='189.21' cy='229.5' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Uttlesford' data-id='Uttlesford'/>\n   <circle id='svg_ed6fcace99c25a7f_e628' cx='231.98' cy='231.86' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Vale of Glamorgan' data-id='Vale of Glamorgan'/>\n   <circle id='svg_ed6fcace99c25a7f_e629' cx='190.3' cy='233.6' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Vale of White Horse' data-id='Vale of White Horse'/>\n   <circle id='svg_ed6fcace99c25a7f_e630' cx='242.09' cy='225.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wakefield' data-id='Wakefield'/>\n   <circle id='svg_ed6fcace99c25a7f_e631' cx='245.96' cy='230.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Walsall' data-id='Walsall'/>\n   <circle id='svg_ed6fcace99c25a7f_e632' cx='211.05' cy='241.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Waltham Forest' data-id='Waltham Forest'/>\n   <circle id='svg_ed6fcace99c25a7f_e633' cx='186.23' cy='222.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wandsworth' data-id='Wandsworth'/>\n   <circle id='svg_ed6fcace99c25a7f_e634' cx='217.82' cy='227.91' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Warrington' data-id='Warrington'/>\n   <circle id='svg_ed6fcace99c25a7f_e635' cx='197.16' cy='233.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Warwick' data-id='Warwick'/>\n   <circle id='svg_ed6fcace99c25a7f_e636' cx='199.26' cy='238.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Watford' data-id='Watford'/>\n   <circle id='svg_ed6fcace99c25a7f_e637' cx='189.59' cy='224.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Waverley' data-id='Waverley'/>\n   <circle id='svg_ed6fcace99c25a7f_e638' cx='205.78' cy='227.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wealden' data-id='Wealden'/>\n   <circle id='svg_ed6fcace99c25a7f_e639' cx='199.35' cy='229.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Welwyn Hatfield' data-id='Welwyn Hatfield'/>\n   <circle id='svg_ed6fcace99c25a7f_e640' cx='191.72' cy='232.02' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Berkshire' data-id='West Berkshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e641' cx='218.39' cy='235.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Devon' data-id='West Devon'/>\n   <circle id='svg_ed6fcace99c25a7f_e642' cx='227.39' cy='231.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Lancashire' data-id='West Lancashire'/>\n   <circle id='svg_ed6fcace99c25a7f_e643' cx='224.52' cy='241.53' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Lindsey' data-id='West Lindsey'/>\n   <circle id='svg_ed6fcace99c25a7f_e644' cx='203.83' cy='210.93' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Northamptonshire' data-id='West Northamptonshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e645' cx='194.33' cy='237.82' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Oxfordshire' data-id='West Oxfordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e646' cx='205.7' cy='212.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Suffolk' data-id='West Suffolk'/>\n   <circle id='svg_ed6fcace99c25a7f_e647' cx='214.16' cy='222.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Westminster' data-id='Westminster'/>\n   <circle id='svg_ed6fcace99c25a7f_e648' cx='237.37' cy='222.12' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wigan' data-id='Wigan'/>\n   <circle id='svg_ed6fcace99c25a7f_e649' cx='204.33' cy='230.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wiltshire' data-id='Wiltshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e650' cx='191.98' cy='219.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Winchester' data-id='Winchester'/>\n   <circle id='svg_ed6fcace99c25a7f_e651' cx='186.58' cy='225.21' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Windsor and Maidenhead' data-id='Windsor and Maidenhead'/>\n   <circle id='svg_ed6fcace99c25a7f_e652' cx='252.72' cy='230.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wirral' data-id='Wirral'/>\n   <circle id='svg_ed6fcace99c25a7f_e653' cx='192.95' cy='221.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Woking' data-id='Woking'/>\n   <circle id='svg_ed6fcace99c25a7f_e654' cx='181.74' cy='224.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wokingham' data-id='Wokingham'/>\n   <circle id='svg_ed6fcace99c25a7f_e655' cx='242.55' cy='230.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wolverhampton' data-id='Wolverhampton'/>\n   <circle id='svg_ed6fcace99c25a7f_e656' cx='212.28' cy='209.84' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Worcester' data-id='Worcester'/>\n   <circle id='svg_ed6fcace99c25a7f_e657' cx='219.59' cy='236.46' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Worthing' data-id='Worthing'/>\n   <circle id='svg_ed6fcace99c25a7f_e658' cx='234.19' cy='214.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wrexham' data-id='Wrexham'/>\n   <circle id='svg_ed6fcace99c25a7f_e659' cx='209.58' cy='210.47' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wychavon' data-id='Wychavon'/>\n   <circle id='svg_ed6fcace99c25a7f_e660' cx='244.4' cy='227.84' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wyre' data-id='Wyre'/>\n   <circle id='svg_ed6fcace99c25a7f_e661' cx='232.75' cy='218.97' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wyre Forest' data-id='Wyre Forest'/>\n   <circle id='svg_ed6fcace99c25a7f_e662' cx='202.05' cy='231.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='York' data-id='York'/>\n   <circle id='svg_ed6fcace99c25a7f_e663' cx='246.48' cy='175.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Adur' data-id='Adur'/>\n   <circle id='svg_ed6fcace99c25a7f_e664' cx='275.09' cy='159.19' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Allerdale' data-id='Allerdale'/>\n   <circle id='svg_ed6fcace99c25a7f_e665' cx='261.63' cy='162.61' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Amber Valley' data-id='Amber Valley'/>\n   <circle id='svg_ed6fcace99c25a7f_e666' cx='241.29' cy='171.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Arun' data-id='Arun'/>\n   <circle id='svg_ed6fcace99c25a7f_e667' cx='273.03' cy='159.5' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ashfield' data-id='Ashfield'/>\n   <circle id='svg_ed6fcace99c25a7f_e668' cx='246.76' cy='181.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ashford' data-id='Ashford'/>\n   <circle id='svg_ed6fcace99c25a7f_e669' cx='237.2' cy='181.73' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Babergh' data-id='Babergh'/>\n   <circle id='svg_ed6fcace99c25a7f_e670' cx='224.27' cy='152.56' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barking and Dagenham' data-id='Barking and Dagenham'/>\n   <circle id='svg_ed6fcace99c25a7f_e671' cx='221.02' cy='150.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barnet' data-id='Barnet'/>\n   <circle id='svg_ed6fcace99c25a7f_e672' cx='283.24' cy='169.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barnsley' data-id='Barnsley'/>\n   <circle id='svg_ed6fcace99c25a7f_e673' cx='268.31' cy='166.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barrow-in-Furness' data-id='Barrow-in-Furness'/>\n   <circle id='svg_ed6fcace99c25a7f_e674' cx='256.25' cy='153.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Basildon' data-id='Basildon'/>\n   <circle id='svg_ed6fcace99c25a7f_e675' cx='230.91' cy='163.73' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Basingstoke and Deane' data-id='Basingstoke and Deane'/>\n   <circle id='svg_ed6fcace99c25a7f_e676' cx='265.93' cy='172.82' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bassetlaw' data-id='Bassetlaw'/>\n   <circle id='svg_ed6fcace99c25a7f_e677' cx='204.95' cy='178.02' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bath and North East Somerset' data-id='Bath and North East Somerset'/>\n   <circle id='svg_ed6fcace99c25a7f_e678' cx='230.82' cy='159.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bedford' data-id='Bedford'/>\n   <circle id='svg_ed6fcace99c25a7f_e679' cx='220.43' cy='155.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bexley' data-id='Bexley'/>\n   <circle id='svg_ed6fcace99c25a7f_e680' cx='224.3' cy='183.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Birmingham' data-id='Birmingham'/>\n   <circle id='svg_ed6fcace99c25a7f_e681' cx='268.53' cy='172.03' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blaby' data-id='Blaby'/>\n   <circle id='svg_ed6fcace99c25a7f_e682' cx='290.26' cy='169.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blackburn with Darwen' data-id='Blackburn with Darwen'/>\n   <circle id='svg_ed6fcace99c25a7f_e683' cx='319.27' cy='169.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blackpool' data-id='Blackpool'/>\n   <circle id='svg_ed6fcace99c25a7f_e684' cx='321.54' cy='168.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blaenau Gwent' data-id='Blaenau Gwent'/>\n   <circle id='svg_ed6fcace99c25a7f_e685' cx='260.25' cy='167.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bolsover' data-id='Bolsover'/>\n   <circle id='svg_ed6fcace99c25a7f_e686' cx='268.23' cy='177.58' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bolton' data-id='Bolton'/>\n   <circle id='svg_ed6fcace99c25a7f_e687' cx='267.33' cy='165.14' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Boston' data-id='Boston'/>\n   <circle id='svg_ed6fcace99c25a7f_e688' cx='231.82' cy='180.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bournemouth, Christchurch and Poole' data-id='Bournemouth, Christchurch and Poole'/>\n   <circle id='svg_ed6fcace99c25a7f_e689' cx='219.7' cy='183.23' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bracknell Forest' data-id='Bracknell Forest'/>\n   <circle id='svg_ed6fcace99c25a7f_e690' cx='252.71' cy='186.5' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bradford' data-id='Bradford'/>\n   <circle id='svg_ed6fcace99c25a7f_e691' cx='224.07' cy='169.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Braintree' data-id='Braintree'/>\n   <circle id='svg_ed6fcace99c25a7f_e692' cx='251.5' cy='164.69' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Breckland' data-id='Breckland'/>\n   <circle id='svg_ed6fcace99c25a7f_e693' cx='208.06' cy='167.31' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Brent' data-id='Brent'/>\n   <circle id='svg_ed6fcace99c25a7f_e694' cx='234.48' cy='152.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Brentwood' data-id='Brentwood'/>\n   <circle id='svg_ed6fcace99c25a7f_e695' cx='277.47' cy='173.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bridgend' data-id='Bridgend'/>\n   <circle id='svg_ed6fcace99c25a7f_e696' cx='222.35' cy='163.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Brighton and Hove' data-id='Brighton and Hove'/>\n   <circle id='svg_ed6fcace99c25a7f_e697' cx='199.56' cy='175.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bristol' data-id='Bristol'/>\n   <circle id='svg_ed6fcace99c25a7f_e698' cx='250.23' cy='178.3' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Broadland' data-id='Broadland'/>\n   <circle id='svg_ed6fcace99c25a7f_e699' cx='217.17' cy='157.62' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bromley' data-id='Bromley'/>\n   <circle id='svg_ed6fcace99c25a7f_e700' cx='228.83' cy='155.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bromsgrove' data-id='Bromsgrove'/>\n   <circle id='svg_ed6fcace99c25a7f_e701' cx='236.03' cy='150.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Broxbourne' data-id='Broxbourne'/>\n   <circle id='svg_ed6fcace99c25a7f_e702' cx='228.52' cy='164.5' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Broxtowe' data-id='Broxtowe'/>\n   <circle id='svg_ed6fcace99c25a7f_e703' cx='203.58' cy='181.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Buckinghamshire' data-id='Buckinghamshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e704' cx='249.23' cy='163.88' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Burnley' data-id='Burnley'/>\n   <circle id='svg_ed6fcace99c25a7f_e705' cx='254.87' cy='164.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bury' data-id='Bury'/>\n   <circle id='svg_ed6fcace99c25a7f_e706' cx='269.75' cy='179.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Caerphilly' data-id='Caerphilly'/>\n   <circle id='svg_ed6fcace99c25a7f_e707' cx='246.52' cy='154.83' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Calderdale' data-id='Calderdale'/>\n   <circle id='svg_ed6fcace99c25a7f_e708' cx='191.87' cy='172.6' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cambridge' data-id='Cambridge'/>\n   <circle id='svg_ed6fcace99c25a7f_e709' cx='200.73' cy='166.4' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Camden' data-id='Camden'/>\n   <circle id='svg_ed6fcace99c25a7f_e710' cx='255.55' cy='168.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cannock Chase' data-id='Cannock Chase'/>\n   <circle id='svg_ed6fcace99c25a7f_e711' cx='203.38' cy='169.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Canterbury' data-id='Canterbury'/>\n   <circle id='svg_ed6fcace99c25a7f_e712' cx='206.9' cy='169.76' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cardiff' data-id='Cardiff'/>\n   <circle id='svg_ed6fcace99c25a7f_e713' cx='251.44' cy='172.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Carlisle' data-id='Carlisle'/>\n   <circle id='svg_ed6fcace99c25a7f_e714' cx='301.26' cy='168.87' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Carmarthenshire' data-id='Carmarthenshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e715' cx='223.03' cy='165.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Castle Point' data-id='Castle Point'/>\n   <circle id='svg_ed6fcace99c25a7f_e716' cx='219.31' cy='162.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Central Bedfordshire' data-id='Central Bedfordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e717' cx='224.49' cy='166.65' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ceredigion' data-id='Ceredigion'/>\n   <circle id='svg_ed6fcace99c25a7f_e718' cx='231.01' cy='154.37' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Charnwood' data-id='Charnwood'/>\n   <circle id='svg_ed6fcace99c25a7f_e719' cx='219.15' cy='157.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chelmsford' data-id='Chelmsford'/>\n   <circle id='svg_ed6fcace99c25a7f_e720' cx='213.85' cy='168.3' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cheltenham' data-id='Cheltenham'/>\n   <circle id='svg_ed6fcace99c25a7f_e721' cx='232.95' cy='167.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cherwell' data-id='Cherwell'/>\n   <circle id='svg_ed6fcace99c25a7f_e722' cx='234.7' cy='164.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cheshire East' data-id='Cheshire East'/>\n   <circle id='svg_ed6fcace99c25a7f_e723' cx='234.2' cy='172' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cheshire West and Chester' data-id='Cheshire West and Chester'/>\n   <circle id='svg_ed6fcace99c25a7f_e724' cx='273.42' cy='172.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chesterfield' data-id='Chesterfield'/>\n   <circle id='svg_ed6fcace99c25a7f_e725' cx='221.06' cy='186.27' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chichester' data-id='Chichester'/>\n   <circle id='svg_ed6fcace99c25a7f_e726' cx='267.59' cy='159.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chorley' data-id='Chorley'/>\n   <circle id='svg_ed6fcace99c25a7f_e727' cx='154.04' cy='168.53' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='City of London' data-id='City of London'/>\n   <circle id='svg_ed6fcace99c25a7f_e728' cx='234.73' cy='174.39' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Colchester' data-id='Colchester'/>\n   <circle id='svg_ed6fcace99c25a7f_e729' cx='273.98' cy='161.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Conwy' data-id='Conwy'/>\n   <circle id='svg_ed6fcace99c25a7f_e730' cx='284.86' cy='166.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Copeland' data-id='Copeland'/>\n   <circle id='svg_ed6fcace99c25a7f_e731' cx='251.4' cy='162' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cornwall' data-id='Cornwall'/>\n   <circle id='svg_ed6fcace99c25a7f_e732' cx='229.9' cy='150.79' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cotswold' data-id='Cotswold'/>\n   <circle id='svg_ed6fcace99c25a7f_e733' cx='239.6' cy='161' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='County Durham' data-id='County Durham'/>\n   <circle id='svg_ed6fcace99c25a7f_e734' cx='220.75' cy='160.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Coventry' data-id='Coventry'/>\n   <circle id='svg_ed6fcace99c25a7f_e735' cx='251.67' cy='175.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Craven' data-id='Craven'/>\n   <circle id='svg_ed6fcace99c25a7f_e736' cx='254.49' cy='152.79' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Crawley' data-id='Crawley'/>\n   <circle id='svg_ed6fcace99c25a7f_e737' cx='211.24' cy='163.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Croydon' data-id='Croydon'/>\n   <circle id='svg_ed6fcace99c25a7f_e738' cx='222.78' cy='154.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dacorum' data-id='Dacorum'/>\n   <circle id='svg_ed6fcace99c25a7f_e739' cx='241.84' cy='182.87' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Darlington' data-id='Darlington'/>\n   <circle id='svg_ed6fcace99c25a7f_e740' cx='219' cy='176.19' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dartford' data-id='Dartford'/>\n   <circle id='svg_ed6fcace99c25a7f_e741' cx='248.2' cy='172.12' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Denbighshire' data-id='Denbighshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e742' cx='241.24' cy='157.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Derby' data-id='Derby'/>\n   <circle id='svg_ed6fcace99c25a7f_e743' cx='218.62' cy='185.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Derbyshire Dales' data-id='Derbyshire Dales'/>\n   <circle id='svg_ed6fcace99c25a7f_e744' cx='278.46' cy='162.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Doncaster' data-id='Doncaster'/>\n   <circle id='svg_ed6fcace99c25a7f_e745' cx='241.02' cy='175.83' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dorset' data-id='Dorset'/>\n   <circle id='svg_ed6fcace99c25a7f_e746' cx='301.26' cy='168.13' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dover' data-id='Dover'/>\n   <circle id='svg_ed6fcace99c25a7f_e747' cx='254.2' cy='170.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dudley' data-id='Dudley'/>\n   <circle id='svg_ed6fcace99c25a7f_e748' cx='199.53' cy='162.69' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ealing' data-id='Ealing'/>\n   <circle id='svg_ed6fcace99c25a7f_e749' cx='230.16' cy='168.39' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Cambridgeshire' data-id='East Cambridgeshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e750' cx='236.31' cy='177.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Devon' data-id='East Devon'/>\n   <circle id='svg_ed6fcace99c25a7f_e751' cx='211.9' cy='179.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Hampshire' data-id='East Hampshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e752' cx='211.9' cy='157.06' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Hertfordshire' data-id='East Hertfordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e753' cx='299.02' cy='169.56' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Lindsey' data-id='East Lindsey'/>\n   <circle id='svg_ed6fcace99c25a7f_e754' cx='244.42' cy='168.06' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Riding of Yorkshire' data-id='East Riding of Yorkshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e755' cx='243.68' cy='168.98' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Staffordshire' data-id='East Staffordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e756' cx='274.88' cy='169.46' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Suffolk' data-id='East Suffolk'/>\n   <circle id='svg_ed6fcace99c25a7f_e757' cx='252.26' cy='180.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Eastbourne' data-id='Eastbourne'/>\n   <circle id='svg_ed6fcace99c25a7f_e758' cx='213.72' cy='182.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Eastleigh' data-id='Eastleigh'/>\n   <circle id='svg_ed6fcace99c25a7f_e759' cx='260.66' cy='172.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Eden' data-id='Eden'/>\n   <circle id='svg_ed6fcace99c25a7f_e760' cx='225.22' cy='175.13' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Elmbridge' data-id='Elmbridge'/>\n   <circle id='svg_ed6fcace99c25a7f_e761' cx='219.24' cy='180.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Enfield' data-id='Enfield'/>\n   <circle id='svg_ed6fcace99c25a7f_e762' cx='218.26' cy='161.59' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Epping Forest' data-id='Epping Forest'/>\n   <circle id='svg_ed6fcace99c25a7f_e763' cx='214.78' cy='179.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Epsom and Ewell' data-id='Epsom and Ewell'/>\n   <circle id='svg_ed6fcace99c25a7f_e764' cx='262.28' cy='160.47' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Erewash' data-id='Erewash'/>\n   <circle id='svg_ed6fcace99c25a7f_e765' cx='206.6' cy='176.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Exeter' data-id='Exeter'/>\n   <circle id='svg_ed6fcace99c25a7f_e766' cx='222.94' cy='183.46' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Fareham' data-id='Fareham'/>\n   <circle id='svg_ed6fcace99c25a7f_e767' cx='245.17' cy='162.98' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Fenland' data-id='Fenland'/>\n   <circle id='svg_ed6fcace99c25a7f_e768' cx='249.3' cy='180.42' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Flintshire' data-id='Flintshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e769' cx='274.12' cy='164.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Folkestone and Hythe' data-id='Folkestone and Hythe'/>\n   <circle id='svg_ed6fcace99c25a7f_e770' cx='269.56' cy='157.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Forest of Dean' data-id='Forest of Dean'/>\n   <circle id='svg_ed6fcace99c25a7f_e771' cx='218.66' cy='167.12' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Fylde' data-id='Fylde'/>\n   <circle id='svg_ed6fcace99c25a7f_e772' cx='253.55' cy='156.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gateshead' data-id='Gateshead'/>\n   <circle id='svg_ed6fcace99c25a7f_e773' cx='228.03' cy='153.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gedling' data-id='Gedling'/>\n   <circle id='svg_ed6fcace99c25a7f_e774' cx='220.44' cy='178.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gloucester' data-id='Gloucester'/>\n   <circle id='svg_ed6fcace99c25a7f_e775' cx='236.04' cy='186.69' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gosport' data-id='Gosport'/>\n   <circle id='svg_ed6fcace99c25a7f_e776' cx='206.21' cy='173.06' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gravesham' data-id='Gravesham'/>\n   <circle id='svg_ed6fcace99c25a7f_e777' cx='271.4' cy='177.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Great Yarmouth' data-id='Great Yarmouth'/>\n   <circle id='svg_ed6fcace99c25a7f_e778' cx='212.35' cy='175.86' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Greenwich' data-id='Greenwich'/>\n   <circle id='svg_ed6fcace99c25a7f_e779' cx='189.15' cy='167.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Guildford' data-id='Guildford'/>\n   <circle id='svg_ed6fcace99c25a7f_e780' cx='225.66' cy='179.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gwynedd' data-id='Gwynedd'/>\n   <circle id='svg_ed6fcace99c25a7f_e781' cx='193.4' cy='167.83' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hackney' data-id='Hackney'/>\n   <circle id='svg_ed6fcace99c25a7f_e782' cx='276.83' cy='172.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Halton' data-id='Halton'/>\n   <circle id='svg_ed6fcace99c25a7f_e783' cx='214.68' cy='160.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hambleton' data-id='Hambleton'/>\n   <circle id='svg_ed6fcace99c25a7f_e784' cx='197.06' cy='169.56' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hammersmith and Fulham' data-id='Hammersmith and Fulham'/>\n   <circle id='svg_ed6fcace99c25a7f_e785' cx='229.82' cy='159.82' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harborough' data-id='Harborough'/>\n   <circle id='svg_ed6fcace99c25a7f_e786' cx='194.04' cy='170.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Haringey' data-id='Haringey'/>\n   <circle id='svg_ed6fcace99c25a7f_e787' cx='257.38' cy='178.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harlow' data-id='Harlow'/>\n   <circle id='svg_ed6fcace99c25a7f_e788' cx='237.53' cy='163.19' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harrogate' data-id='Harrogate'/>\n   <circle id='svg_ed6fcace99c25a7f_e789' cx='199.29' cy='172.98' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harrow' data-id='Harrow'/>\n   <circle id='svg_ed6fcace99c25a7f_e790' cx='214.92' cy='172.14' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hart' data-id='Hart'/>\n   <circle id='svg_ed6fcace99c25a7f_e791' cx='277' cy='163.36' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hartlepool' data-id='Hartlepool'/>\n   <circle id='svg_ed6fcace99c25a7f_e792' cx='252.89' cy='166.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hastings' data-id='Hastings'/>\n   <circle id='svg_ed6fcace99c25a7f_e793' cx='261.89' cy='165' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Havant' data-id='Havant'/>\n   <circle id='svg_ed6fcace99c25a7f_e794' cx='238.19' cy='174.69' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Havering' data-id='Havering'/>\n   <circle id='svg_ed6fcace99c25a7f_e795' cx='249.25' cy='174.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Herefordshire' data-id='Herefordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e796' cx='222.73' cy='172.21' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hertsmere' data-id='Hertsmere'/>\n   <circle id='svg_ed6fcace99c25a7f_e797' cx='247.7' cy='155.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='High Peak' data-id='High Peak'/>\n   <circle id='svg_ed6fcace99c25a7f_e798' cx='216.74' cy='174.53' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hillingdon' data-id='Hillingdon'/>\n   <circle id='svg_ed6fcace99c25a7f_e799' cx='259.68' cy='160.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hinckley and Bosworth' data-id='Hinckley and Bosworth'/>\n   <circle id='svg_ed6fcace99c25a7f_e800' cx='211.49' cy='170.62' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Horsham' data-id='Horsham'/>\n   <circle id='svg_ed6fcace99c25a7f_e801' cx='205.07' cy='164.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hounslow' data-id='Hounslow'/>\n   <circle id='svg_ed6fcace99c25a7f_e802' cx='232.63' cy='186.46' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Huntingdonshire' data-id='Huntingdonshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e803' cx='281.75' cy='167.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hyndburn' data-id='Hyndburn'/>\n   <circle id='svg_ed6fcace99c25a7f_e804' cx='247.54' cy='177.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ipswich' data-id='Ipswich'/>\n   <circle id='svg_ed6fcace99c25a7f_e805' cx='255.52' cy='160.35' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Isle of Anglesey' data-id='Isle of Anglesey'/>\n   <circle id='svg_ed6fcace99c25a7f_e806' cx='273.23' cy='178.11' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Isle of Wight' data-id='Isle of Wight'/>\n   <circle id='svg_ed6fcace99c25a7f_e807' cx='389.23' cy='168.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Isles of Scilly' data-id='Isles of Scilly'/>\n   <circle id='svg_ed6fcace99c25a7f_e808' cx='200.41' cy='159.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Islington' data-id='Islington'/>\n   <circle id='svg_ed6fcace99c25a7f_e809' cx='203.28' cy='162.91' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kensington and Chelsea' data-id='Kensington and Chelsea'/>\n   <circle id='svg_ed6fcace99c25a7f_e810' cx='272.65' cy='165.21' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='King&amp;#39;s Lynn and West Norfolk' data-id='King’s Lynn and West Norfolk'/>\n   <circle id='svg_ed6fcace99c25a7f_e811' cx='235.27' cy='155.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kingston upon Hull' data-id='Kingston upon Hull'/>\n   <circle id='svg_ed6fcace99c25a7f_e812' cx='204.1' cy='174.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kingston upon Thames' data-id='Kingston upon Thames'/>\n   <circle id='svg_ed6fcace99c25a7f_e813' cx='242.71' cy='178.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kirklees' data-id='Kirklees'/>\n   <circle id='svg_ed6fcace99c25a7f_e814' cx='256.44' cy='168.47' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Knowsley' data-id='Knowsley'/>\n   <circle id='svg_ed6fcace99c25a7f_e815' cx='187.95' cy='170.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lambeth' data-id='Lambeth'/>\n   <circle id='svg_ed6fcace99c25a7f_e816' cx='230.99' cy='173.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lancaster' data-id='Lancaster'/>\n   <circle id='svg_ed6fcace99c25a7f_e817' cx='215.48' cy='182.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Leeds' data-id='Leeds'/>\n   <circle id='svg_ed6fcace99c25a7f_e818' cx='212.68' cy='161.98' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Leicester' data-id='Leicester'/>\n   <circle id='svg_ed6fcace99c25a7f_e819' cx='243.79' cy='149.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lewes' data-id='Lewes'/>\n   <circle id='svg_ed6fcace99c25a7f_e820' cx='198.7' cy='167.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lewisham' data-id='Lewisham'/>\n   <circle id='svg_ed6fcace99c25a7f_e821' cx='247.78' cy='161.23' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lichfield' data-id='Lichfield'/>\n   <circle id='svg_ed6fcace99c25a7f_e822' cx='210.39' cy='177.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lincoln' data-id='Lincoln'/>\n   <circle id='svg_ed6fcace99c25a7f_e823' cx='219.4' cy='153.34' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Liverpool' data-id='Liverpool'/>\n   <circle id='svg_ed6fcace99c25a7f_e824' cx='221.61' cy='167.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Luton' data-id='Luton'/>\n   <circle id='svg_ed6fcace99c25a7f_e825' cx='240.55' cy='184.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Maidstone' data-id='Maidstone'/>\n   <circle id='svg_ed6fcace99c25a7f_e826' cx='232.22' cy='170.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Maldon' data-id='Maldon'/>\n   <circle id='svg_ed6fcace99c25a7f_e827' cx='270.5' cy='168.11' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Malvern Hills' data-id='Malvern Hills'/>\n   <circle id='svg_ed6fcace99c25a7f_e828' cx='206.87' cy='163.21' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Manchester' data-id='Manchester'/>\n   <circle id='svg_ed6fcace99c25a7f_e829' cx='275.5' cy='167.56' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mansfield' data-id='Mansfield'/>\n   <circle id='svg_ed6fcace99c25a7f_e830' cx='256.54' cy='175.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Medway' data-id='Medway'/>\n   <circle id='svg_ed6fcace99c25a7f_e831' cx='245.08' cy='183.23' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Melton' data-id='Melton'/>\n   <circle id='svg_ed6fcace99c25a7f_e832' cx='275.45' cy='177.54' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mendip' data-id='Mendip'/>\n   <circle id='svg_ed6fcace99c25a7f_e833' cx='330.86' cy='168.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Merthyr Tydfil' data-id='Merthyr Tydfil'/>\n   <circle id='svg_ed6fcace99c25a7f_e834' cx='194.75' cy='164.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Merton' data-id='Merton'/>\n   <circle id='svg_ed6fcace99c25a7f_e835' cx='252.27' cy='159.6' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mid Devon' data-id='Mid Devon'/>\n   <circle id='svg_ed6fcace99c25a7f_e836' cx='250.87' cy='183.63' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mid Suffolk' data-id='Mid Suffolk'/>\n   <circle id='svg_ed6fcace99c25a7f_e837' cx='218.49' cy='152.59' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mid Sussex' data-id='Mid Sussex'/>\n   <circle id='svg_ed6fcace99c25a7f_e838' cx='247.06' cy='149.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Middlesbrough' data-id='Middlesbrough'/>\n   <circle id='svg_ed6fcace99c25a7f_e839' cx='235.95' cy='169.56' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Milton Keynes' data-id='Milton Keynes'/>\n   <circle id='svg_ed6fcace99c25a7f_e840' cx='233.14' cy='181.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mole Valley' data-id='Mole Valley'/>\n   <circle id='svg_ed6fcace99c25a7f_e841' cx='245.79' cy='152.53' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Monmouthshire' data-id='Monmouthshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e842' cx='289.6' cy='171.54' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Neath Port Talbot' data-id='Neath Port Talbot'/>\n   <circle id='svg_ed6fcace99c25a7f_e843' cx='228.92' cy='177.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='New Forest' data-id='New Forest'/>\n   <circle id='svg_ed6fcace99c25a7f_e844' cx='242.24' cy='173.64' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newark and Sherwood' data-id='Newark and Sherwood'/>\n   <circle id='svg_ed6fcace99c25a7f_e845' cx='207.37' cy='180.34' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newcastle upon Tyne' data-id='Newcastle upon Tyne'/>\n   <circle id='svg_ed6fcace99c25a7f_e846' cx='220.27' cy='174.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newcastle-under-Lyme' data-id='Newcastle-under-Lyme'/>\n   <circle id='svg_ed6fcace99c25a7f_e847' cx='197.46' cy='176.6' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newham' data-id='Newham'/>\n   <circle id='svg_ed6fcace99c25a7f_e848' cx='257.97' cy='165.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newport' data-id='Newport'/>\n   <circle id='svg_ed6fcace99c25a7f_e849' cx='256.62' cy='161' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Devon' data-id='North Devon'/>\n   <circle id='svg_ed6fcace99c25a7f_e850' cx='267.06' cy='175.74' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North East Derbyshire' data-id='North East Derbyshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e851' cx='280.37' cy='173.13' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North East Lincolnshire' data-id='North East Lincolnshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e852' cx='215' cy='156.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Hertfordshire' data-id='North Hertfordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e853' cx='233.11' cy='176.84' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Kesteven' data-id='North Kesteven'/>\n   <circle id='svg_ed6fcace99c25a7f_e854' cx='254.04' cy='161.64' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Lincolnshire' data-id='North Lincolnshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e855' cx='268.57' cy='160.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Norfolk' data-id='North Norfolk'/>\n   <circle id='svg_ed6fcace99c25a7f_e856' cx='247.76' cy='182.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Northamptonshire' data-id='North Northamptonshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e857' cx='268.66' cy='174.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Somerset' data-id='North Somerset'/>\n   <circle id='svg_ed6fcace99c25a7f_e858' cx='247.23' cy='166.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Tyneside' data-id='North Tyneside'/>\n   <circle id='svg_ed6fcace99c25a7f_e859' cx='259.33' cy='171.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Warwickshire' data-id='North Warwickshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e860' cx='231.66' cy='156.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North West Leicestershire' data-id='North West Leicestershire'/>\n   <circle id='svg_ed6fcace99c25a7f_e861' cx='252.7' cy='149.6' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Northumberland' data-id='Northumberland'/>\n   <circle id='svg_ed6fcace99c25a7f_e862' cx='233.11' cy='157.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Norwich' data-id='Norwich'/>\n   <circle id='svg_ed6fcace99c25a7f_e863' cx='228.65' cy='173.11' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Nottingham' data-id='Nottingham'/>\n   <circle id='svg_ed6fcace99c25a7f_e864' cx='241.29' cy='162.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Nuneaton and Bedworth' data-id='Nuneaton and Bedworth'/>\n   <circle id='svg_ed6fcace99c25a7f_e865' cx='236.29' cy='167.79' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Oadby and Wigston' data-id='Oadby and Wigston'/>\n   <circle id='svg_ed6fcace99c25a7f_e866' cx='240.65' cy='166.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Oldham' data-id='Oldham'/>\n   <circle id='svg_ed6fcace99c25a7f_e867' cx='178.34' cy='168.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Oxford' data-id='Oxford'/>\n   <circle id='svg_ed6fcace99c25a7f_e868' cx='266.42' cy='162.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Pembrokeshire' data-id='Pembrokeshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e869' cx='253.49' cy='175.98' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Pendle' data-id='Pendle'/>\n   <circle id='svg_ed6fcace99c25a7f_e870' cx='254.02' cy='180.43' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Peterborough' data-id='Peterborough'/>\n   <circle id='svg_ed6fcace99c25a7f_e871' cx='240.32' cy='151.88' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Plymouth' data-id='Plymouth'/>\n   <circle id='svg_ed6fcace99c25a7f_e872' cx='223.12' cy='174.42' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Portsmouth' data-id='Portsmouth'/>\n   <circle id='svg_ed6fcace99c25a7f_e873' cx='250.16' cy='189.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Powys' data-id='Powys'/>\n   <circle id='svg_ed6fcace99c25a7f_e874' cx='234.55' cy='184.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Preston' data-id='Preston'/>\n   <circle id='svg_ed6fcace99c25a7f_e875' cx='203.08' cy='175.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Reading' data-id='Reading'/>\n   <circle id='svg_ed6fcace99c25a7f_e876' cx='204.07' cy='168.12' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Redbridge' data-id='Redbridge'/>\n   <circle id='svg_ed6fcace99c25a7f_e877' cx='270.75' cy='162.14' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Redcar and Cleveland' data-id='Redcar and Cleveland'/>\n   <circle id='svg_ed6fcace99c25a7f_e878' cx='235.77' cy='179.06' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Redditch' data-id='Redditch'/>\n   <circle id='svg_ed6fcace99c25a7f_e879' cx='212.99' cy='168.97' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Reigate and Banstead' data-id='Reigate and Banstead'/>\n   <circle id='svg_ed6fcace99c25a7f_e880' cx='287.69' cy='165.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rhondda Cynon Taf' data-id='Rhondda Cynon Taf'/>\n   <circle id='svg_ed6fcace99c25a7f_e881' cx='207' cy='156.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ribble Valley' data-id='Ribble Valley'/>\n   <circle id='svg_ed6fcace99c25a7f_e882' cx='205.96' cy='166.47' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Richmond upon Thames' data-id='Richmond upon Thames'/>\n   <circle id='svg_ed6fcace99c25a7f_e883' cx='230.08' cy='186.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Richmondshire' data-id='Richmondshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e884' cx='261.86' cy='174.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rochdale' data-id='Rochdale'/>\n   <circle id='svg_ed6fcace99c25a7f_e885' cx='244.9' cy='158' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rochford' data-id='Rochford'/>\n   <circle id='svg_ed6fcace99c25a7f_e886' cx='250.16' cy='167.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rossendale' data-id='Rossendale'/>\n   <circle id='svg_ed6fcace99c25a7f_e887' cx='243.2' cy='159.42' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rother' data-id='Rother'/>\n   <circle id='svg_ed6fcace99c25a7f_e888' cx='277.74' cy='165.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rotherham' data-id='Rotherham'/>\n   <circle id='svg_ed6fcace99c25a7f_e889' cx='231.31' cy='166.03' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rugby' data-id='Rugby'/>\n   <circle id='svg_ed6fcace99c25a7f_e890' cx='190.39' cy='169.5' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Runnymede' data-id='Runnymede'/>\n   <circle id='svg_ed6fcace99c25a7f_e891' cx='212.15' cy='172.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rushcliffe' data-id='Rushcliffe'/>\n   <circle id='svg_ed6fcace99c25a7f_e892' cx='214.27' cy='175.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rushmoor' data-id='Rushmoor'/>\n   <circle id='svg_ed6fcace99c25a7f_e893' cx='212.34' cy='158.61' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rutland' data-id='Rutland'/>\n   <circle id='svg_ed6fcace99c25a7f_e894' cx='223.94' cy='161.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ryedale' data-id='Ryedale'/>\n   <circle id='svg_ed6fcace99c25a7f_e895' cx='218.41' cy='170.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Salford' data-id='Salford'/>\n   <circle id='svg_ed6fcace99c25a7f_e896' cx='238.76' cy='179.22' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sandwell' data-id='Sandwell'/>\n   <circle id='svg_ed6fcace99c25a7f_e897' cx='290' cy='168.47' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Scarborough' data-id='Scarborough'/>\n   <circle id='svg_ed6fcace99c25a7f_e898' cx='231.04' cy='184.74' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sedgemoor' data-id='Sedgemoor'/>\n   <circle id='svg_ed6fcace99c25a7f_e899' cx='277.89' cy='169.73' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sefton' data-id='Sefton'/>\n   <circle id='svg_ed6fcace99c25a7f_e900' cx='226.46' cy='170.87' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Selby' data-id='Selby'/>\n   <circle id='svg_ed6fcace99c25a7f_e901' cx='222.03' cy='158.46' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sevenoaks' data-id='Sevenoaks'/>\n   <circle id='svg_ed6fcace99c25a7f_e902' cx='225.7' cy='162.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sheffield' data-id='Sheffield'/>\n   <circle id='svg_ed6fcace99c25a7f_e903' cx='244.51' cy='178' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Shropshire' data-id='Shropshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e904' cx='206.51' cy='159.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Slough' data-id='Slough'/>\n   <circle id='svg_ed6fcace99c25a7f_e905' cx='251.46' cy='151.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Solihull' data-id='Solihull'/>\n   <circle id='svg_ed6fcace99c25a7f_e906' cx='249.27' cy='152.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Somerset West and Taunton' data-id='Somerset West and Taunton'/>\n   <circle id='svg_ed6fcace99c25a7f_e907' cx='222.07' cy='181.47' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Cambridgeshire' data-id='South Cambridgeshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e908' cx='237.79' cy='172.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Derbyshire' data-id='South Derbyshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e909' cx='225.56' cy='158.3' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Gloucestershire' data-id='South Gloucestershire'/>\n   <circle id='svg_ed6fcace99c25a7f_e910' cx='250' cy='147.39' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Hams' data-id='South Hams'/>\n   <circle id='svg_ed6fcace99c25a7f_e911' cx='246.38' cy='165.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Holland' data-id='South Holland'/>\n   <circle id='svg_ed6fcace99c25a7f_e912' cx='245.44' cy='173.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Kesteven' data-id='South Kesteven'/>\n   <circle id='svg_ed6fcace99c25a7f_e913' cx='214.91' cy='164.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Lakeland' data-id='South Lakeland'/>\n   <circle id='svg_ed6fcace99c25a7f_e914' cx='246.23' cy='186.37' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Norfolk' data-id='South Norfolk'/>\n   <circle id='svg_ed6fcace99c25a7f_e915' cx='208.29' cy='173.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Oxfordshire' data-id='South Oxfordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e916' cx='235.93' cy='160.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Ribble' data-id='South Ribble'/>\n   <circle id='svg_ed6fcace99c25a7f_e917' cx='267.34' cy='170.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Somerset' data-id='South Somerset'/>\n   <circle id='svg_ed6fcace99c25a7f_e918' cx='242.39' cy='154.91' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Staffordshire' data-id='South Staffordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e919' cx='250.48' cy='156.4' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Tyneside' data-id='South Tyneside'/>\n   <circle id='svg_ed6fcace99c25a7f_e920' cx='217.64' cy='179.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Southampton' data-id='Southampton'/>\n   <circle id='svg_ed6fcace99c25a7f_e921' cx='259.78' cy='177.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Southend-on-Sea' data-id='Southend-on-Sea'/>\n   <circle id='svg_ed6fcace99c25a7f_e922' cx='185.34' cy='167.69' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Southwark' data-id='Southwark'/>\n   <circle id='svg_ed6fcace99c25a7f_e923' cx='234.19' cy='162.34' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Spelthorne' data-id='Spelthorne'/>\n   <circle id='svg_ed6fcace99c25a7f_e924' cx='209.85' cy='160.83' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='St Albans' data-id='St Albans'/>\n   <circle id='svg_ed6fcace99c25a7f_e925' cx='269.27' cy='163.39' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='St. Helens' data-id='St. Helens'/>\n   <circle id='svg_ed6fcace99c25a7f_e926' cx='221.99' cy='176.88' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stafford' data-id='Stafford'/>\n   <circle id='svg_ed6fcace99c25a7f_e927' cx='254.98' cy='155.58' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Staffordshire Moorlands' data-id='Staffordshire Moorlands'/>\n   <circle id='svg_ed6fcace99c25a7f_e928' cx='252.32' cy='169.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stevenage' data-id='Stevenage'/>\n   <circle id='svg_ed6fcace99c25a7f_e929' cx='241.27' cy='180.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stockport' data-id='Stockport'/>\n   <circle id='svg_ed6fcace99c25a7f_e930' cx='256.38' cy='183.76' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stockton-on-Tees' data-id='Stockton-on-Tees'/>\n   <circle id='svg_ed6fcace99c25a7f_e931' cx='269.32' cy='169.21' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stoke-on-Trent' data-id='Stoke-on-Trent'/>\n   <circle id='svg_ed6fcace99c25a7f_e932' cx='232.32' cy='151.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stratford-on-Avon' data-id='Stratford-on-Avon'/>\n   <circle id='svg_ed6fcace99c25a7f_e933' cx='232.01' cy='161.21' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stroud' data-id='Stroud'/>\n   <circle id='svg_ed6fcace99c25a7f_e934' cx='265.25' cy='167.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sunderland' data-id='Sunderland'/>\n   <circle id='svg_ed6fcace99c25a7f_e935' cx='223.55' cy='178.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Surrey Heath' data-id='Surrey Heath'/>\n   <circle id='svg_ed6fcace99c25a7f_e936' cx='203.51' cy='156.42' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sutton' data-id='Sutton'/>\n   <circle id='svg_ed6fcace99c25a7f_e937' cx='261.95' cy='169.65' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Swale' data-id='Swale'/>\n   <circle id='svg_ed6fcace99c25a7f_e938' cx='247.18' cy='188.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Swansea' data-id='Swansea'/>\n   <circle id='svg_ed6fcace99c25a7f_e939' cx='230.69' cy='177.64' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Swindon' data-id='Swindon'/>\n   <circle id='svg_ed6fcace99c25a7f_e940' cx='249.67' cy='169.39' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tameside' data-id='Tameside'/>\n   <circle id='svg_ed6fcace99c25a7f_e941' cx='283.85' cy='170.86' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tamworth' data-id='Tamworth'/>\n   <circle id='svg_ed6fcace99c25a7f_e942' cx='248.99' cy='185.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tandridge' data-id='Tandridge'/>\n   <circle id='svg_ed6fcace99c25a7f_e943' cx='254.52' cy='182.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Teignbridge' data-id='Teignbridge'/>\n   <circle id='svg_ed6fcace99c25a7f_e944' cx='251.48' cy='186.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Telford and Wrekin' data-id='Telford and Wrekin'/>\n   <circle id='svg_ed6fcace99c25a7f_e945' cx='270.56' cy='174.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tendring' data-id='Tendring'/>\n   <circle id='svg_ed6fcace99c25a7f_e946' cx='219.34' cy='171.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Test Valley' data-id='Test Valley'/>\n   <circle id='svg_ed6fcace99c25a7f_e947' cx='242.04' cy='164.31' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tewkesbury' data-id='Tewkesbury'/>\n   <circle id='svg_ed6fcace99c25a7f_e948' cx='262.87' cy='176.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Thanet' data-id='Thanet'/>\n   <circle id='svg_ed6fcace99c25a7f_e949' cx='215.91' cy='166.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Three Rivers' data-id='Three Rivers'/>\n   <circle id='svg_ed6fcace99c25a7f_e950' cx='228.07' cy='181.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Thurrock' data-id='Thurrock'/>\n   <circle id='svg_ed6fcace99c25a7f_e951' cx='254.91' cy='173.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tonbridge and Malling' data-id='Tonbridge and Malling'/>\n   <circle id='svg_ed6fcace99c25a7f_e952' cx='283.36' cy='165.23' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Torbay' data-id='Torbay'/>\n   <circle id='svg_ed6fcace99c25a7f_e953' cx='306.48' cy='167.87' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Torfaen' data-id='Torfaen'/>\n   <circle id='svg_ed6fcace99c25a7f_e954' cx='291.55' cy='167.27' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Torridge' data-id='Torridge'/>\n   <circle id='svg_ed6fcace99c25a7f_e955' cx='191.43' cy='165.22' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tower Hamlets' data-id='Tower Hamlets'/>\n   <circle id='svg_ed6fcace99c25a7f_e956' cx='231.45' cy='175.47' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Trafford' data-id='Trafford'/>\n   <circle id='svg_ed6fcace99c25a7f_e957' cx='236.72' cy='158.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tunbridge Wells' data-id='Tunbridge Wells'/>\n   <circle id='svg_ed6fcace99c25a7f_e958' cx='241.52' cy='152.82' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Uttlesford' data-id='Uttlesford'/>\n   <circle id='svg_ed6fcace99c25a7f_e959' cx='238.17' cy='165.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Vale of Glamorgan' data-id='Vale of Glamorgan'/>\n   <circle id='svg_ed6fcace99c25a7f_e960' cx='201.04' cy='172.14' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Vale of White Horse' data-id='Vale of White Horse'/>\n   <circle id='svg_ed6fcace99c25a7f_e961' cx='249.53' cy='158.36' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wakefield' data-id='Wakefield'/>\n   <circle id='svg_ed6fcace99c25a7f_e962' cx='246.79' cy='160.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Walsall' data-id='Walsall'/>\n   <circle id='svg_ed6fcace99c25a7f_e963' cx='205.65' cy='158.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Waltham Forest' data-id='Waltham Forest'/>\n   <circle id='svg_ed6fcace99c25a7f_e964' cx='195.56' cy='172.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wandsworth' data-id='Wandsworth'/>\n   <circle id='svg_ed6fcace99c25a7f_e965' cx='252.07' cy='154.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Warrington' data-id='Warrington'/>\n   <circle id='svg_ed6fcace99c25a7f_e966' cx='204.18' cy='161.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Warwick' data-id='Warwick'/>\n   <circle id='svg_ed6fcace99c25a7f_e967' cx='202.05' cy='160.12' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Watford' data-id='Watford'/>\n   <circle id='svg_ed6fcace99c25a7f_e968' cx='196.16' cy='165.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Waverley' data-id='Waverley'/>\n   <circle id='svg_ed6fcace99c25a7f_e969' cx='238.69' cy='156.4' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wealden' data-id='Wealden'/>\n   <circle id='svg_ed6fcace99c25a7f_e970' cx='205.24' cy='171.42' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Welwyn Hatfield' data-id='Welwyn Hatfield'/>\n   <circle id='svg_ed6fcace99c25a7f_e971' cx='220.98' cy='169.4' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Berkshire' data-id='West Berkshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e972' cx='272.76' cy='171.02' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Devon' data-id='West Devon'/>\n   <circle id='svg_ed6fcace99c25a7f_e973' cx='219.77' cy='164.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Lancashire' data-id='West Lancashire'/>\n   <circle id='svg_ed6fcace99c25a7f_e974' cx='274.09' cy='174.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Lindsey' data-id='West Lindsey'/>\n   <circle id='svg_ed6fcace99c25a7f_e975' cx='230.89' cy='182.35' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Northamptonshire' data-id='West Northamptonshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e976' cx='205.74' cy='179.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Oxfordshire' data-id='West Oxfordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e977' cx='213.51' cy='154.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Suffolk' data-id='West Suffolk'/>\n   <circle id='svg_ed6fcace99c25a7f_e978' cx='212.01' cy='165.54' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Westminster' data-id='Westminster'/>\n   <circle id='svg_ed6fcace99c25a7f_e979' cx='255.42' cy='177.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wigan' data-id='Wigan'/>\n   <circle id='svg_ed6fcace99c25a7f_e980' cx='238.15' cy='183.87' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wiltshire' data-id='Wiltshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e981' cx='197.07' cy='161.28' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Winchester' data-id='Winchester'/>\n   <circle id='svg_ed6fcace99c25a7f_e982' cx='200.34' cy='170.6' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Windsor and Maidenhead' data-id='Windsor and Maidenhead'/>\n   <circle id='svg_ed6fcace99c25a7f_e983' cx='273.3' cy='166.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wirral' data-id='Wirral'/>\n   <circle id='svg_ed6fcace99c25a7f_e984' cx='229.87' cy='168.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Woking' data-id='Woking'/>\n   <circle id='svg_ed6fcace99c25a7f_e985' cx='200.57' cy='177.64' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wokingham' data-id='Wokingham'/>\n   <circle id='svg_ed6fcace99c25a7f_e986' cx='246.83' cy='170.69' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wolverhampton' data-id='Wolverhampton'/>\n   <circle id='svg_ed6fcace99c25a7f_e987' cx='223.39' cy='156.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Worcester' data-id='Worcester'/>\n   <circle id='svg_ed6fcace99c25a7f_e988' cx='237.89' cy='154.01' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Worthing' data-id='Worthing'/>\n   <circle id='svg_ed6fcace99c25a7f_e989' cx='243.8' cy='187.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wrexham' data-id='Wrexham'/>\n   <circle id='svg_ed6fcace99c25a7f_e990' cx='248.22' cy='150.23' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wychavon' data-id='Wychavon'/>\n   <circle id='svg_ed6fcace99c25a7f_e991' cx='285.68' cy='168.64' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wyre' data-id='Wyre'/>\n   <circle id='svg_ed6fcace99c25a7f_e992' cx='239.9' cy='170.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wyre Forest' data-id='Wyre Forest'/>\n   <circle id='svg_ed6fcace99c25a7f_e993' cx='199.63' cy='165.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='York' data-id='York'/>\n   <circle id='svg_ed6fcace99c25a7f_e994' cx='270.58' cy='100.59' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Adur' data-id='Adur'/>\n   <circle id='svg_ed6fcace99c25a7f_e995' cx='271.1' cy='109.84' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Allerdale' data-id='Allerdale'/>\n   <circle id='svg_ed6fcace99c25a7f_e996' cx='273.92' cy='120.06' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Amber Valley' data-id='Amber Valley'/>\n   <circle id='svg_ed6fcace99c25a7f_e997' cx='246.55' cy='101.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Arun' data-id='Arun'/>\n   <circle id='svg_ed6fcace99c25a7f_e998' cx='293.73' cy='114.12' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ashfield' data-id='Ashfield'/>\n   <circle id='svg_ed6fcace99c25a7f_e999' cx='244.97' cy='109.08' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ashford' data-id='Ashford'/>\n   <circle id='svg_ed6fcace99c25a7f_e1000' cx='244.69' cy='95.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Babergh' data-id='Babergh'/>\n   <circle id='svg_ed6fcace99c25a7f_e1001' cx='226.74' cy='128.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barking and Dagenham' data-id='Barking and Dagenham'/>\n   <circle id='svg_ed6fcace99c25a7f_e1002' cx='215.05' cy='121.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barnet' data-id='Barnet'/>\n   <circle id='svg_ed6fcace99c25a7f_e1003' cx='293.48' cy='118.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barnsley' data-id='Barnsley'/>\n   <circle id='svg_ed6fcace99c25a7f_e1004' cx='291.4' cy='116.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barrow-in-Furness' data-id='Barrow-in-Furness'/>\n   <circle id='svg_ed6fcace99c25a7f_e1005' cx='252.45' cy='104.27' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Basildon' data-id='Basildon'/>\n   <circle id='svg_ed6fcace99c25a7f_e1006' cx='229.94' cy='98.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Basingstoke and Deane' data-id='Basingstoke and Deane'/>\n   <circle id='svg_ed6fcace99c25a7f_e1007' cx='281.95' cy='115.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bassetlaw' data-id='Bassetlaw'/>\n   <circle id='svg_ed6fcace99c25a7f_e1008' cx='219.24' cy='123.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bath and North East Somerset' data-id='Bath and North East Somerset'/>\n   <circle id='svg_ed6fcace99c25a7f_e1009' cx='231.09' cy='123.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bedford' data-id='Bedford'/>\n   <circle id='svg_ed6fcace99c25a7f_e1010' cx='228.94' cy='130.12' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bexley' data-id='Bexley'/>\n   <circle id='svg_ed6fcace99c25a7f_e1011' cx='258.1' cy='127.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Birmingham' data-id='Birmingham'/>\n   <circle id='svg_ed6fcace99c25a7f_e1012' cx='236.4' cy='101.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blaby' data-id='Blaby'/>\n   <circle id='svg_ed6fcace99c25a7f_e1013' cx='263.31' cy='127.8' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blackburn with Darwen' data-id='Blackburn with Darwen'/>\n   <circle id='svg_ed6fcace99c25a7f_e1014' cx='336.68' cy='112.27' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blackpool' data-id='Blackpool'/>\n   <circle id='svg_ed6fcace99c25a7f_e1015' cx='357.3' cy='113.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blaenau Gwent' data-id='Blaenau Gwent'/>\n   <circle id='svg_ed6fcace99c25a7f_e1016' cx='320.78' cy='112.19' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bolsover' data-id='Bolsover'/>\n   <circle id='svg_ed6fcace99c25a7f_e1017' cx='276.34' cy='108.84' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bolton' data-id='Bolton'/>\n   <circle id='svg_ed6fcace99c25a7f_e1018' cx='248.89' cy='99.22' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Boston' data-id='Boston'/>\n   <circle id='svg_ed6fcace99c25a7f_e1019' cx='246.17' cy='114.58' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bournemouth, Christchurch and Poole' data-id='Bournemouth, Christchurch and Poole'/>\n   <circle id='svg_ed6fcace99c25a7f_e1020' cx='210.91' cy='123.74' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bracknell Forest' data-id='Bracknell Forest'/>\n   <circle id='svg_ed6fcace99c25a7f_e1021' cx='265.84' cy='110.63' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bradford' data-id='Bradford'/>\n   <circle id='svg_ed6fcace99c25a7f_e1022' cx='261.87' cy='102.62' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Braintree' data-id='Braintree'/>\n   <circle id='svg_ed6fcace99c25a7f_e1023' cx='266.22' cy='118.28' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Breckland' data-id='Breckland'/>\n   <circle id='svg_ed6fcace99c25a7f_e1024' cx='217.11' cy='108.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Brent' data-id='Brent'/>\n   <circle id='svg_ed6fcace99c25a7f_e1025' cx='236.39' cy='121.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Brentwood' data-id='Brentwood'/>\n   <circle id='svg_ed6fcace99c25a7f_e1026' cx='322.72' cy='114.8' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bridgend' data-id='Bridgend'/>\n   <circle id='svg_ed6fcace99c25a7f_e1027' cx='236.54' cy='116.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Brighton and Hove' data-id='Brighton and Hove'/>\n   <circle id='svg_ed6fcace99c25a7f_e1028' cx='243.44' cy='94.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bristol' data-id='Bristol'/>\n   <circle id='svg_ed6fcace99c25a7f_e1029' cx='244.65' cy='117.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Broadland' data-id='Broadland'/>\n   <circle id='svg_ed6fcace99c25a7f_e1030' cx='223.2' cy='105.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bromley' data-id='Bromley'/>\n   <circle id='svg_ed6fcace99c25a7f_e1031' cx='264.01' cy='104.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bromsgrove' data-id='Bromsgrove'/>\n   <circle id='svg_ed6fcace99c25a7f_e1032' cx='226.04' cy='117.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Broxbourne' data-id='Broxbourne'/>\n   <circle id='svg_ed6fcace99c25a7f_e1033' cx='241.36' cy='107.94' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Broxtowe' data-id='Broxtowe'/>\n   <circle id='svg_ed6fcace99c25a7f_e1034' cx='220.84' cy='124.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Buckinghamshire' data-id='Buckinghamshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1035' cx='285.81' cy='104.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Burnley' data-id='Burnley'/>\n   <circle id='svg_ed6fcace99c25a7f_e1036' cx='262.56' cy='106.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bury' data-id='Bury'/>\n   <circle id='svg_ed6fcace99c25a7f_e1037' cx='337.12' cy='114.59' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Caerphilly' data-id='Caerphilly'/>\n   <circle id='svg_ed6fcace99c25a7f_e1038' cx='267.22' cy='106.84' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Calderdale' data-id='Calderdale'/>\n   <circle id='svg_ed6fcace99c25a7f_e1039' cx='188.57' cy='112.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cambridge' data-id='Cambridge'/>\n   <circle id='svg_ed6fcace99c25a7f_e1040' cx='236.15' cy='95.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Camden' data-id='Camden'/>\n   <circle id='svg_ed6fcace99c25a7f_e1041' cx='281.59' cy='120.13' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cannock Chase' data-id='Cannock Chase'/>\n   <circle id='svg_ed6fcace99c25a7f_e1042' cx='229.64' cy='107.35' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Canterbury' data-id='Canterbury'/>\n   <circle id='svg_ed6fcace99c25a7f_e1043' cx='271.18' cy='117.14' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cardiff' data-id='Cardiff'/>\n   <circle id='svg_ed6fcace99c25a7f_e1044' cx='292.95' cy='107.76' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Carlisle' data-id='Carlisle'/>\n   <circle id='svg_ed6fcace99c25a7f_e1045' cx='306.86' cy='111.79' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Carmarthenshire' data-id='Carmarthenshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1046' cx='251.96' cy='108.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Castle Point' data-id='Castle Point'/>\n   <circle id='svg_ed6fcace99c25a7f_e1047' cx='235.13' cy='100.12' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Central Bedfordshire' data-id='Central Bedfordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1048' cx='256.65' cy='106.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ceredigion' data-id='Ceredigion'/>\n   <circle id='svg_ed6fcace99c25a7f_e1049' cx='219.36' cy='106.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Charnwood' data-id='Charnwood'/>\n   <circle id='svg_ed6fcace99c25a7f_e1050' cx='227.82' cy='106.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chelmsford' data-id='Chelmsford'/>\n   <circle id='svg_ed6fcace99c25a7f_e1051' cx='234.65' cy='129.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cheltenham' data-id='Cheltenham'/>\n   <circle id='svg_ed6fcace99c25a7f_e1052' cx='220.46' cy='111.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cherwell' data-id='Cherwell'/>\n   <circle id='svg_ed6fcace99c25a7f_e1053' cx='254.83' cy='100.03' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cheshire East' data-id='Cheshire East'/>\n   <circle id='svg_ed6fcace99c25a7f_e1054' cx='263.25' cy='98.73' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cheshire West and Chester' data-id='Cheshire West and Chester'/>\n   <circle id='svg_ed6fcace99c25a7f_e1055' cx='305.65' cy='113.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chesterfield' data-id='Chesterfield'/>\n   <circle id='svg_ed6fcace99c25a7f_e1056' cx='236.51' cy='106.22' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chichester' data-id='Chichester'/>\n   <circle id='svg_ed6fcace99c25a7f_e1057' cx='274.39' cy='116.63' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chorley' data-id='Chorley'/>\n   <circle id='svg_ed6fcace99c25a7f_e1058' cx='179.75' cy='113.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='City of London' data-id='City of London'/>\n   <circle id='svg_ed6fcace99c25a7f_e1059' cx='223.99' cy='130.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Colchester' data-id='Colchester'/>\n   <circle id='svg_ed6fcace99c25a7f_e1060' cx='283.33' cy='116.36' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Conwy' data-id='Conwy'/>\n   <circle id='svg_ed6fcace99c25a7f_e1061' cx='289.04' cy='115.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Copeland' data-id='Copeland'/>\n   <circle id='svg_ed6fcace99c25a7f_e1062' cx='274.52' cy='103.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cornwall' data-id='Cornwall'/>\n   <circle id='svg_ed6fcace99c25a7f_e1063' cx='212.47' cy='103.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cotswold' data-id='Cotswold'/>\n   <circle id='svg_ed6fcace99c25a7f_e1064' cx='288.36' cy='108.47' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='County Durham' data-id='County Durham'/>\n   <circle id='svg_ed6fcace99c25a7f_e1065' cx='240.91' cy='128.93' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Coventry' data-id='Coventry'/>\n   <circle id='svg_ed6fcace99c25a7f_e1066' cx='240.82' cy='123.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Craven' data-id='Craven'/>\n   <circle id='svg_ed6fcace99c25a7f_e1067' cx='220.07' cy='128.91' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Crawley' data-id='Crawley'/>\n   <circle id='svg_ed6fcace99c25a7f_e1068' cx='227.42' cy='102.01' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Croydon' data-id='Croydon'/>\n   <circle id='svg_ed6fcace99c25a7f_e1069' cx='219.87' cy='97.88' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dacorum' data-id='Dacorum'/>\n   <circle id='svg_ed6fcace99c25a7f_e1070' cx='268.56' cy='119.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Darlington' data-id='Darlington'/>\n   <circle id='svg_ed6fcace99c25a7f_e1071' cx='216.82' cy='104.91' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dartford' data-id='Dartford'/>\n   <circle id='svg_ed6fcace99c25a7f_e1072' cx='290.94' cy='120.84' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Denbighshire' data-id='Denbighshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1073' cx='259.88' cy='104.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Derby' data-id='Derby'/>\n   <circle id='svg_ed6fcace99c25a7f_e1074' cx='252.09' cy='118.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Derbyshire Dales' data-id='Derbyshire Dales'/>\n   <circle id='svg_ed6fcace99c25a7f_e1075' cx='295.51' cy='112.64' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Doncaster' data-id='Doncaster'/>\n   <circle id='svg_ed6fcace99c25a7f_e1076' cx='250.1' cy='121.63' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dorset' data-id='Dorset'/>\n   <circle id='svg_ed6fcace99c25a7f_e1077' cx='257.17' cy='99.21' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dover' data-id='Dover'/>\n   <circle id='svg_ed6fcace99c25a7f_e1078' cx='270.59' cy='124.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dudley' data-id='Dudley'/>\n   <circle id='svg_ed6fcace99c25a7f_e1079' cx='217.56' cy='127.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ealing' data-id='Ealing'/>\n   <circle id='svg_ed6fcace99c25a7f_e1080' cx='232.02' cy='114.27' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Cambridgeshire' data-id='East Cambridgeshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1081' cx='239.27' cy='103.47' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Devon' data-id='East Devon'/>\n   <circle id='svg_ed6fcace99c25a7f_e1082' cx='233.51' cy='102.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Hampshire' data-id='East Hampshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1083' cx='213.05' cy='124.03' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Hertfordshire' data-id='East Hertfordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1084' cx='314.29' cy='110.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Lindsey' data-id='East Lindsey'/>\n   <circle id='svg_ed6fcace99c25a7f_e1085' cx='268.91' cy='104.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Riding of Yorkshire' data-id='East Riding of Yorkshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1086' cx='245.98' cy='125.61' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Staffordshire' data-id='East Staffordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1087' cx='273.27' cy='127.13' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Suffolk' data-id='East Suffolk'/>\n   <circle id='svg_ed6fcace99c25a7f_e1088' cx='262.69' cy='113.97' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Eastbourne' data-id='Eastbourne'/>\n   <circle id='svg_ed6fcace99c25a7f_e1089' cx='236.48' cy='126.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Eastleigh' data-id='Eastleigh'/>\n   <circle id='svg_ed6fcace99c25a7f_e1090' cx='229.48' cy='102.79' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Eden' data-id='Eden'/>\n   <circle id='svg_ed6fcace99c25a7f_e1091' cx='209.92' cy='114.63' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Elmbridge' data-id='Elmbridge'/>\n   <circle id='svg_ed6fcace99c25a7f_e1092' cx='232.24' cy='131.62' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Enfield' data-id='Enfield'/>\n   <circle id='svg_ed6fcace99c25a7f_e1093' cx='230.89' cy='109.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Epping Forest' data-id='Epping Forest'/>\n   <circle id='svg_ed6fcace99c25a7f_e1094' cx='209.57' cy='109.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Epsom and Ewell' data-id='Epsom and Ewell'/>\n   <circle id='svg_ed6fcace99c25a7f_e1095' cx='284.36' cy='109.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Erewash' data-id='Erewash'/>\n   <circle id='svg_ed6fcace99c25a7f_e1096' cx='241.38' cy='118.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Exeter' data-id='Exeter'/>\n   <circle id='svg_ed6fcace99c25a7f_e1097' cx='232.95' cy='122.13' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Fareham' data-id='Fareham'/>\n   <circle id='svg_ed6fcace99c25a7f_e1098' cx='261.44' cy='117.74' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Fenland' data-id='Fenland'/>\n   <circle id='svg_ed6fcace99c25a7f_e1099' cx='271.23' cy='102.56' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Flintshire' data-id='Flintshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1100' cx='272.61' cy='99.39' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Folkestone and Hythe' data-id='Folkestone and Hythe'/>\n   <circle id='svg_ed6fcace99c25a7f_e1101' cx='246.48' cy='112.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Forest of Dean' data-id='Forest of Dean'/>\n   <circle id='svg_ed6fcace99c25a7f_e1102' cx='266.69' cy='122.08' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Fylde' data-id='Fylde'/>\n   <circle id='svg_ed6fcace99c25a7f_e1103' cx='283.17' cy='111.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gateshead' data-id='Gateshead'/>\n   <circle id='svg_ed6fcace99c25a7f_e1104' cx='256.06' cy='102.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gedling' data-id='Gedling'/>\n   <circle id='svg_ed6fcace99c25a7f_e1105' cx='246.09' cy='103.56' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gloucester' data-id='Gloucester'/>\n   <circle id='svg_ed6fcace99c25a7f_e1106' cx='261.36' cy='110.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gosport' data-id='Gosport'/>\n   <circle id='svg_ed6fcace99c25a7f_e1107' cx='246.69' cy='129' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gravesham' data-id='Gravesham'/>\n   <circle id='svg_ed6fcace99c25a7f_e1108' cx='281.61' cy='110.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Great Yarmouth' data-id='Great Yarmouth'/>\n   <circle id='svg_ed6fcace99c25a7f_e1109' cx='222.6' cy='118.25' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Greenwich' data-id='Greenwich'/>\n   <circle id='svg_ed6fcace99c25a7f_e1110' cx='202.15' cy='114.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Guildford' data-id='Guildford'/>\n   <circle id='svg_ed6fcace99c25a7f_e1111' cx='246.52' cy='123.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gwynedd' data-id='Gwynedd'/>\n   <circle id='svg_ed6fcace99c25a7f_e1112' cx='217.44' cy='100.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hackney' data-id='Hackney'/>\n   <circle id='svg_ed6fcace99c25a7f_e1113' cx='311.78' cy='112.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Halton' data-id='Halton'/>\n   <circle id='svg_ed6fcace99c25a7f_e1114' cx='237.88' cy='118.73' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hambleton' data-id='Hambleton'/>\n   <circle id='svg_ed6fcace99c25a7f_e1115' cx='223.87' cy='96.59' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hammersmith and Fulham' data-id='Hammersmith and Fulham'/>\n   <circle id='svg_ed6fcace99c25a7f_e1116' cx='234.44' cy='97.74' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harborough' data-id='Harborough'/>\n   <circle id='svg_ed6fcace99c25a7f_e1117' cx='223.5' cy='113.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Haringey' data-id='Haringey'/>\n   <circle id='svg_ed6fcace99c25a7f_e1118' cx='240.24' cy='92.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harlow' data-id='Harlow'/>\n   <circle id='svg_ed6fcace99c25a7f_e1119' cx='235.91' cy='114.93' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harrogate' data-id='Harrogate'/>\n   <circle id='svg_ed6fcace99c25a7f_e1120' cx='213.26' cy='117.53' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harrow' data-id='Harrow'/>\n   <circle id='svg_ed6fcace99c25a7f_e1121' cx='217.03' cy='124.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hart' data-id='Hart'/>\n   <circle id='svg_ed6fcace99c25a7f_e1122' cx='330.51' cy='113.62' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hartlepool' data-id='Hartlepool'/>\n   <circle id='svg_ed6fcace99c25a7f_e1123' cx='297.23' cy='114.36' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hastings' data-id='Hastings'/>\n   <circle id='svg_ed6fcace99c25a7f_e1124' cx='266.25' cy='102.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Havant' data-id='Havant'/>\n   <circle id='svg_ed6fcace99c25a7f_e1125' cx='227.91' cy='115.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Havering' data-id='Havering'/>\n   <circle id='svg_ed6fcace99c25a7f_e1126' cx='254.64' cy='108.62' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Herefordshire' data-id='Herefordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1127' cx='221.22' cy='98.8' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hertsmere' data-id='Hertsmere'/>\n   <circle id='svg_ed6fcace99c25a7f_e1128' cx='256.03' cy='119.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='High Peak' data-id='High Peak'/>\n   <circle id='svg_ed6fcace99c25a7f_e1129' cx='207.23' cy='116.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hillingdon' data-id='Hillingdon'/>\n   <circle id='svg_ed6fcace99c25a7f_e1130' cx='247.19' cy='107.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hinckley and Bosworth' data-id='Hinckley and Bosworth'/>\n   <circle id='svg_ed6fcace99c25a7f_e1131' cx='220.79' cy='103.14' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Horsham' data-id='Horsham'/>\n   <circle id='svg_ed6fcace99c25a7f_e1132' cx='211.6' cy='106.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hounslow' data-id='Hounslow'/>\n   <circle id='svg_ed6fcace99c25a7f_e1133' cx='244.43' cy='128.31' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Huntingdonshire' data-id='Huntingdonshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1134' cx='275.53' cy='105.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hyndburn' data-id='Hyndburn'/>\n   <circle id='svg_ed6fcace99c25a7f_e1135' cx='241.39' cy='97.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ipswich' data-id='Ipswich'/>\n   <circle id='svg_ed6fcace99c25a7f_e1136' cx='263.66' cy='112.54' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Isle of Anglesey' data-id='Isle of Anglesey'/>\n   <circle id='svg_ed6fcace99c25a7f_e1137' cx='293.56' cy='109.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Isle of Wight' data-id='Isle of Wight'/>\n   <circle id='svg_ed6fcace99c25a7f_e1138' cx='252.46' cy='113.83' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Isles of Scilly' data-id='Isles of Scilly'/>\n   <circle id='svg_ed6fcace99c25a7f_e1139' cx='250.09' cy='111.28' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Islington' data-id='Islington'/>\n   <circle id='svg_ed6fcace99c25a7f_e1140' cx='226.18' cy='99.97' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kensington and Chelsea' data-id='Kensington and Chelsea'/>\n   <circle id='svg_ed6fcace99c25a7f_e1141' cx='269.47' cy='122.84' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='King&amp;#39;s Lynn and West Norfolk' data-id='King’s Lynn and West Norfolk'/>\n   <circle id='svg_ed6fcace99c25a7f_e1142' cx='291.28' cy='111.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kingston upon Hull' data-id='Kingston upon Hull'/>\n   <circle id='svg_ed6fcace99c25a7f_e1143' cx='212.45' cy='115.73' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kingston upon Thames' data-id='Kingston upon Thames'/>\n   <circle id='svg_ed6fcace99c25a7f_e1144' cx='253.57' cy='122.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kirklees' data-id='Kirklees'/>\n   <circle id='svg_ed6fcace99c25a7f_e1145' cx='315.01' cy='116.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Knowsley' data-id='Knowsley'/>\n   <circle id='svg_ed6fcace99c25a7f_e1146' cx='228.8' cy='97.25' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lambeth' data-id='Lambeth'/>\n   <circle id='svg_ed6fcace99c25a7f_e1147' cx='242.02' cy='121.21' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lancaster' data-id='Lancaster'/>\n   <circle id='svg_ed6fcace99c25a7f_e1148' cx='240.9' cy='102.74' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Leeds' data-id='Leeds'/>\n   <circle id='svg_ed6fcace99c25a7f_e1149' cx='235.66' cy='105.02' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Leicester' data-id='Leicester'/>\n   <circle id='svg_ed6fcace99c25a7f_e1150' cx='253.89' cy='126.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lewes' data-id='Lewes'/>\n   <circle id='svg_ed6fcace99c25a7f_e1151' cx='225.92' cy='108.74' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lewisham' data-id='Lewisham'/>\n   <circle id='svg_ed6fcace99c25a7f_e1152' cx='249.22' cy='125.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lichfield' data-id='Lichfield'/>\n   <circle id='svg_ed6fcace99c25a7f_e1153' cx='241.85' cy='131.83' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lincoln' data-id='Lincoln'/>\n   <circle id='svg_ed6fcace99c25a7f_e1154' cx='274.88' cy='111.72' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Liverpool' data-id='Liverpool'/>\n   <circle id='svg_ed6fcace99c25a7f_e1155' cx='229.45' cy='121.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Luton' data-id='Luton'/>\n   <circle id='svg_ed6fcace99c25a7f_e1156' cx='236.22' cy='131.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Maidstone' data-id='Maidstone'/>\n   <circle id='svg_ed6fcace99c25a7f_e1157' cx='238.53' cy='123.84' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Maldon' data-id='Maldon'/>\n   <circle id='svg_ed6fcace99c25a7f_e1158' cx='248.86' cy='120.54' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Malvern Hills' data-id='Malvern Hills'/>\n   <circle id='svg_ed6fcace99c25a7f_e1159' cx='247.92' cy='131.5' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Manchester' data-id='Manchester'/>\n   <circle id='svg_ed6fcace99c25a7f_e1160' cx='282.78' cy='121.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mansfield' data-id='Mansfield'/>\n   <circle id='svg_ed6fcace99c25a7f_e1161' cx='241.98' cy='110.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Medway' data-id='Medway'/>\n   <circle id='svg_ed6fcace99c25a7f_e1162' cx='235.34' cy='124.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Melton' data-id='Melton'/>\n   <circle id='svg_ed6fcace99c25a7f_e1163' cx='252.16' cy='123.5' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mendip' data-id='Mendip'/>\n   <circle id='svg_ed6fcace99c25a7f_e1164' cx='364.7' cy='113.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Merthyr Tydfil' data-id='Merthyr Tydfil'/>\n   <circle id='svg_ed6fcace99c25a7f_e1165' cx='206.2' cy='118.86' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Merton' data-id='Merton'/>\n   <circle id='svg_ed6fcace99c25a7f_e1166' cx='243.29' cy='115.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mid Devon' data-id='Mid Devon'/>\n   <circle id='svg_ed6fcace99c25a7f_e1167' cx='240.75' cy='113.22' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mid Suffolk' data-id='Mid Suffolk'/>\n   <circle id='svg_ed6fcace99c25a7f_e1168' cx='211.4' cy='118.43' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mid Sussex' data-id='Mid Sussex'/>\n   <circle id='svg_ed6fcace99c25a7f_e1169' cx='289.47' cy='106.27' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Middlesbrough' data-id='Middlesbrough'/>\n   <circle id='svg_ed6fcace99c25a7f_e1170' cx='218.83' cy='119.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Milton Keynes' data-id='Milton Keynes'/>\n   <circle id='svg_ed6fcace99c25a7f_e1171' cx='216.17' cy='98.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mole Valley' data-id='Mole Valley'/>\n   <circle id='svg_ed6fcace99c25a7f_e1172' cx='271.7' cy='120.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Monmouthshire' data-id='Monmouthshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1173' cx='323.03' cy='112.87' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Neath Port Talbot' data-id='Neath Port Talbot'/>\n   <circle id='svg_ed6fcace99c25a7f_e1174' cx='253.64' cy='103.86' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='New Forest' data-id='New Forest'/>\n   <circle id='svg_ed6fcace99c25a7f_e1175' cx='270.27' cy='115.35' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newark and Sherwood' data-id='Newark and Sherwood'/>\n   <circle id='svg_ed6fcace99c25a7f_e1176' cx='259.96' cy='123.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newcastle upon Tyne' data-id='Newcastle upon Tyne'/>\n   <circle id='svg_ed6fcace99c25a7f_e1177' cx='269.71' cy='107.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newcastle-under-Lyme' data-id='Newcastle-under-Lyme'/>\n   <circle id='svg_ed6fcace99c25a7f_e1178' cx='219.17' cy='102.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newham' data-id='Newham'/>\n   <circle id='svg_ed6fcace99c25a7f_e1179' cx='300.05' cy='116.8' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newport' data-id='Newport'/>\n   <circle id='svg_ed6fcace99c25a7f_e1180' cx='272.52' cy='113.49' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Devon' data-id='North Devon'/>\n   <circle id='svg_ed6fcace99c25a7f_e1181' cx='288.43' cy='119.93' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North East Derbyshire' data-id='North East Derbyshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1182' cx='267.3' cy='99.23' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North East Lincolnshire' data-id='North East Lincolnshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1183' cx='243.23' cy='105.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Hertfordshire' data-id='North Hertfordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1184' cx='249.91' cy='132.08' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Kesteven' data-id='North Kesteven'/>\n   <circle id='svg_ed6fcace99c25a7f_e1185' cx='267.25' cy='114.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Lincolnshire' data-id='North Lincolnshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1186' cx='262.41' cy='121.56' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Norfolk' data-id='North Norfolk'/>\n   <circle id='svg_ed6fcace99c25a7f_e1187' cx='247.34' cy='117.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Northamptonshire' data-id='North Northamptonshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1188' cx='264.95' cy='101.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Somerset' data-id='North Somerset'/>\n   <circle id='svg_ed6fcace99c25a7f_e1189' cx='273.99' cy='106.61' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Tyneside' data-id='North Tyneside'/>\n   <circle id='svg_ed6fcace99c25a7f_e1190' cx='260.43' cy='115.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Warwickshire' data-id='North Warwickshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1191' cx='248.51' cy='109.86' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North West Leicestershire' data-id='North West Leicestershire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1192' cx='274.8' cy='124.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Northumberland' data-id='Northumberland'/>\n   <circle id='svg_ed6fcace99c25a7f_e1193' cx='249.53' cy='115.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Norwich' data-id='Norwich'/>\n   <circle id='svg_ed6fcace99c25a7f_e1194' cx='243.86' cy='122.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Nottingham' data-id='Nottingham'/>\n   <circle id='svg_ed6fcace99c25a7f_e1195' cx='264.51' cy='108.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Nuneaton and Bedworth' data-id='Nuneaton and Bedworth'/>\n   <circle id='svg_ed6fcace99c25a7f_e1196' cx='234.73' cy='110' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Oadby and Wigston' data-id='Oadby and Wigston'/>\n   <circle id='svg_ed6fcace99c25a7f_e1197' cx='260.58' cy='100.79' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Oldham' data-id='Oldham'/>\n   <circle id='svg_ed6fcace99c25a7f_e1198' cx='187.05' cy='113.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Oxford' data-id='Oxford'/>\n   <circle id='svg_ed6fcace99c25a7f_e1199' cx='284.04' cy='118.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Pembrokeshire' data-id='Pembrokeshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1200' cx='253.4' cy='112.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Pendle' data-id='Pendle'/>\n   <circle id='svg_ed6fcace99c25a7f_e1201' cx='243.18' cy='126.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Peterborough' data-id='Peterborough'/>\n   <circle id='svg_ed6fcace99c25a7f_e1202' cx='273.42' cy='113.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Plymouth' data-id='Plymouth'/>\n   <circle id='svg_ed6fcace99c25a7f_e1203' cx='244.5' cy='106.34' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Portsmouth' data-id='Portsmouth'/>\n   <circle id='svg_ed6fcace99c25a7f_e1204' cx='274.09' cy='123.36' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Powys' data-id='Powys'/>\n   <circle id='svg_ed6fcace99c25a7f_e1205' cx='256.25' cy='123.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Preston' data-id='Preston'/>\n   <circle id='svg_ed6fcace99c25a7f_e1206' cx='214.26' cy='103.65' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Reading' data-id='Reading'/>\n   <circle id='svg_ed6fcace99c25a7f_e1207' cx='216.23' cy='112.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Redbridge' data-id='Redbridge'/>\n   <circle id='svg_ed6fcace99c25a7f_e1208' cx='310.83' cy='114.8' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Redcar and Cleveland' data-id='Redcar and Cleveland'/>\n   <circle id='svg_ed6fcace99c25a7f_e1209' cx='243.5' cy='133.63' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Redditch' data-id='Redditch'/>\n   <circle id='svg_ed6fcace99c25a7f_e1210' cx='221' cy='116.08' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Reigate and Banstead' data-id='Reigate and Banstead'/>\n   <circle id='svg_ed6fcace99c25a7f_e1211' cx='318.85' cy='114.63' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rhondda Cynon Taf' data-id='Rhondda Cynon Taf'/>\n   <circle id='svg_ed6fcace99c25a7f_e1212' cx='245.03' cy='120.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ribble Valley' data-id='Ribble Valley'/>\n   <circle id='svg_ed6fcace99c25a7f_e1213' cx='206.52' cy='112.56' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Richmond upon Thames' data-id='Richmond upon Thames'/>\n   <circle id='svg_ed6fcace99c25a7f_e1214' cx='237.54' cy='96.11' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Richmondshire' data-id='Richmondshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1215' cx='276.01' cy='120.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rochdale' data-id='Rochdale'/>\n   <circle id='svg_ed6fcace99c25a7f_e1216' cx='230.91' cy='118.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rochford' data-id='Rochford'/>\n   <circle id='svg_ed6fcace99c25a7f_e1217' cx='287.92' cy='117.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rossendale' data-id='Rossendale'/>\n   <circle id='svg_ed6fcace99c25a7f_e1218' cx='252.14' cy='99.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rother' data-id='Rother'/>\n   <circle id='svg_ed6fcace99c25a7f_e1219' cx='296.15' cy='118.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rotherham' data-id='Rotherham'/>\n   <circle id='svg_ed6fcace99c25a7f_e1220' cx='227.6' cy='124.22' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rugby' data-id='Rugby'/>\n   <circle id='svg_ed6fcace99c25a7f_e1221' cx='224.38' cy='121.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Runnymede' data-id='Runnymede'/>\n   <circle id='svg_ed6fcace99c25a7f_e1222' cx='242.85' cy='99.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rushcliffe' data-id='Rushcliffe'/>\n   <circle id='svg_ed6fcace99c25a7f_e1223' cx='223.11' cy='122.58' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rushmoor' data-id='Rushmoor'/>\n   <circle id='svg_ed6fcace99c25a7f_e1224' cx='208.09' cy='118.46' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rutland' data-id='Rutland'/>\n   <circle id='svg_ed6fcace99c25a7f_e1225' cx='239.42' cy='113.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ryedale' data-id='Ryedale'/>\n   <circle id='svg_ed6fcace99c25a7f_e1226' cx='245.41' cy='98.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Salford' data-id='Salford'/>\n   <circle id='svg_ed6fcace99c25a7f_e1227' cx='267.56' cy='111.6' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sandwell' data-id='Sandwell'/>\n   <circle id='svg_ed6fcace99c25a7f_e1228' cx='282.52' cy='105.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Scarborough' data-id='Scarborough'/>\n   <circle id='svg_ed6fcace99c25a7f_e1229' cx='278.39' cy='103.86' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sedgemoor' data-id='Sedgemoor'/>\n   <circle id='svg_ed6fcace99c25a7f_e1230' cx='294.01' cy='105.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sefton' data-id='Sefton'/>\n   <circle id='svg_ed6fcace99c25a7f_e1231' cx='233.52' cy='127.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Selby' data-id='Selby'/>\n   <circle id='svg_ed6fcace99c25a7f_e1232' cx='232.11' cy='95.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sevenoaks' data-id='Sevenoaks'/>\n   <circle id='svg_ed6fcace99c25a7f_e1233' cx='263.68' cy='120.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sheffield' data-id='Sheffield'/>\n   <circle id='svg_ed6fcace99c25a7f_e1234' cx='259.38' cy='112.08' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Shropshire' data-id='Shropshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1235' cx='207.82' cy='108.47' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Slough' data-id='Slough'/>\n   <circle id='svg_ed6fcace99c25a7f_e1236' cx='264.66' cy='116.37' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Solihull' data-id='Solihull'/>\n   <circle id='svg_ed6fcace99c25a7f_e1237' cx='255.69' cy='127.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Somerset West and Taunton' data-id='Somerset West and Taunton'/>\n   <circle id='svg_ed6fcace99c25a7f_e1238' cx='224.01' cy='113.11' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Cambridgeshire' data-id='South Cambridgeshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1239' cx='237.76' cy='108.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Derbyshire' data-id='South Derbyshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1240' cx='231.65' cy='104.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Gloucestershire' data-id='South Gloucestershire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1241' cx='261' cy='125.27' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Hams' data-id='South Hams'/>\n   <circle id='svg_ed6fcace99c25a7f_e1242' cx='265.81' cy='125.94' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Holland' data-id='South Holland'/>\n   <circle id='svg_ed6fcace99c25a7f_e1243' cx='250.71' cy='101.14' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Kesteven' data-id='South Kesteven'/>\n   <circle id='svg_ed6fcace99c25a7f_e1244' cx='246.4' cy='92.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Lakeland' data-id='South Lakeland'/>\n   <circle id='svg_ed6fcace99c25a7f_e1245' cx='249.26' cy='104.62' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Norfolk' data-id='South Norfolk'/>\n   <circle id='svg_ed6fcace99c25a7f_e1246' cx='220.89' cy='107.45' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Oxfordshire' data-id='South Oxfordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1247' cx='252.95' cy='95.08' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Ribble' data-id='South Ribble'/>\n   <circle id='svg_ed6fcace99c25a7f_e1248' cx='244.7' cy='131.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Somerset' data-id='South Somerset'/>\n   <circle id='svg_ed6fcace99c25a7f_e1249' cx='254.75' cy='117.3' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Staffordshire' data-id='South Staffordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1250' cx='315.91' cy='113.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Tyneside' data-id='South Tyneside'/>\n   <circle id='svg_ed6fcace99c25a7f_e1251' cx='229' cy='111.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Southampton' data-id='Southampton'/>\n   <circle id='svg_ed6fcace99c25a7f_e1252' cx='251.5' cy='116.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Southend-on-Sea' data-id='Southend-on-Sea'/>\n   <circle id='svg_ed6fcace99c25a7f_e1253' cx='215.09' cy='106.91' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Southwark' data-id='Southwark'/>\n   <circle id='svg_ed6fcace99c25a7f_e1254' cx='213.15' cy='110.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Spelthorne' data-id='Spelthorne'/>\n   <circle id='svg_ed6fcace99c25a7f_e1255' cx='216.18' cy='128.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='St Albans' data-id='St Albans'/>\n   <circle id='svg_ed6fcace99c25a7f_e1256' cx='285.77' cy='113.93' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='St. Helens' data-id='St. Helens'/>\n   <circle id='svg_ed6fcace99c25a7f_e1257' cx='251.91' cy='128.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stafford' data-id='Stafford'/>\n   <circle id='svg_ed6fcace99c25a7f_e1258' cx='274.2' cy='110' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Staffordshire Moorlands' data-id='Staffordshire Moorlands'/>\n   <circle id='svg_ed6fcace99c25a7f_e1259' cx='251.68' cy='96.62' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stevenage' data-id='Stevenage'/>\n   <circle id='svg_ed6fcace99c25a7f_e1260' cx='256.01' cy='110.94' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stockport' data-id='Stockport'/>\n   <circle id='svg_ed6fcace99c25a7f_e1261' cx='295.73' cy='108.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stockton-on-Tees' data-id='Stockton-on-Tees'/>\n   <circle id='svg_ed6fcace99c25a7f_e1262' cx='296.19' cy='110.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stoke-on-Trent' data-id='Stoke-on-Trent'/>\n   <circle id='svg_ed6fcace99c25a7f_e1263' cx='233.91' cy='107.58' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stratford-on-Avon' data-id='Stratford-on-Avon'/>\n   <circle id='svg_ed6fcace99c25a7f_e1264' cx='229.55' cy='125.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stroud' data-id='Stroud'/>\n   <circle id='svg_ed6fcace99c25a7f_e1265' cx='312.62' cy='113.46' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sunderland' data-id='Sunderland'/>\n   <circle id='svg_ed6fcace99c25a7f_e1266' cx='200.77' cy='112.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Surrey Heath' data-id='Surrey Heath'/>\n   <circle id='svg_ed6fcace99c25a7f_e1267' cx='225.22' cy='126.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sutton' data-id='Sutton'/>\n   <circle id='svg_ed6fcace99c25a7f_e1268' cx='257.07' cy='114.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Swale' data-id='Swale'/>\n   <circle id='svg_ed6fcace99c25a7f_e1269' cx='287.66' cy='113.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Swansea' data-id='Swansea'/>\n   <circle id='svg_ed6fcace99c25a7f_e1270' cx='234.34' cy='117.36' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Swindon' data-id='Swindon'/>\n   <circle id='svg_ed6fcace99c25a7f_e1271' cx='276.82' cy='114.79' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tameside' data-id='Tameside'/>\n   <circle id='svg_ed6fcace99c25a7f_e1272' cx='259.98' cy='108.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tamworth' data-id='Tamworth'/>\n   <circle id='svg_ed6fcace99c25a7f_e1273' cx='238.4' cy='98.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tandridge' data-id='Tandridge'/>\n   <circle id='svg_ed6fcace99c25a7f_e1274' cx='251.46' cy='106.4' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Teignbridge' data-id='Teignbridge'/>\n   <circle id='svg_ed6fcace99c25a7f_e1275' cx='271.78' cy='106.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Telford and Wrekin' data-id='Telford and Wrekin'/>\n   <circle id='svg_ed6fcace99c25a7f_e1276' cx='300.72' cy='112.5' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tendring' data-id='Tendring'/>\n   <circle id='svg_ed6fcace99c25a7f_e1277' cx='229.91' cy='116.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Test Valley' data-id='Test Valley'/>\n   <circle id='svg_ed6fcace99c25a7f_e1278' cx='240.53' cy='134.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tewkesbury' data-id='Tewkesbury'/>\n   <circle id='svg_ed6fcace99c25a7f_e1279' cx='295.64' cy='116.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Thanet' data-id='Thanet'/>\n   <circle id='svg_ed6fcace99c25a7f_e1280' cx='210.09' cy='104.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Three Rivers' data-id='Three Rivers'/>\n   <circle id='svg_ed6fcace99c25a7f_e1281' cx='226.92' cy='119.72' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Thurrock' data-id='Thurrock'/>\n   <circle id='svg_ed6fcace99c25a7f_e1282' cx='237.75' cy='128.79' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tonbridge and Malling' data-id='Tonbridge and Malling'/>\n   <circle id='svg_ed6fcace99c25a7f_e1283' cx='297.82' cy='108.27' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Torbay' data-id='Torbay'/>\n   <circle id='svg_ed6fcace99c25a7f_e1284' cx='337.54' cy='113.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Torfaen' data-id='Torfaen'/>\n   <circle id='svg_ed6fcace99c25a7f_e1285' cx='279.73' cy='112.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Torridge' data-id='Torridge'/>\n   <circle id='svg_ed6fcace99c25a7f_e1286' cx='220.53' cy='120.37' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tower Hamlets' data-id='Tower Hamlets'/>\n   <circle id='svg_ed6fcace99c25a7f_e1287' cx='249.66' cy='94.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Trafford' data-id='Trafford'/>\n   <circle id='svg_ed6fcace99c25a7f_e1288' cx='230.28' cy='128.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tunbridge Wells' data-id='Tunbridge Wells'/>\n   <circle id='svg_ed6fcace99c25a7f_e1289' cx='221.72' cy='109.59' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Uttlesford' data-id='Uttlesford'/>\n   <circle id='svg_ed6fcace99c25a7f_e1290' cx='280.29' cy='117.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Vale of Glamorgan' data-id='Vale of Glamorgan'/>\n   <circle id='svg_ed6fcace99c25a7f_e1291' cx='205.23' cy='109.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Vale of White Horse' data-id='Vale of White Horse'/>\n   <circle id='svg_ed6fcace99c25a7f_e1292' cx='283.55' cy='106.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wakefield' data-id='Wakefield'/>\n   <circle id='svg_ed6fcace99c25a7f_e1293' cx='279.63' cy='123.02' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Walsall' data-id='Walsall'/>\n   <circle id='svg_ed6fcace99c25a7f_e1294' cx='217.8' cy='110.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Waltham Forest' data-id='Waltham Forest'/>\n   <circle id='svg_ed6fcace99c25a7f_e1295' cx='212.04' cy='109.58' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wandsworth' data-id='Wandsworth'/>\n   <circle id='svg_ed6fcace99c25a7f_e1296' cx='251.08' cy='126.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Warrington' data-id='Warrington'/>\n   <circle id='svg_ed6fcace99c25a7f_e1297' cx='222.93' cy='100.93' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Warwick' data-id='Warwick'/>\n   <circle id='svg_ed6fcace99c25a7f_e1298' cx='217.25' cy='116.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Watford' data-id='Watford'/>\n   <circle id='svg_ed6fcace99c25a7f_e1299' cx='211.84' cy='121.61' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Waverley' data-id='Waverley'/>\n   <circle id='svg_ed6fcace99c25a7f_e1300' cx='246.44' cy='134.53' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wealden' data-id='Wealden'/>\n   <circle id='svg_ed6fcace99c25a7f_e1301' cx='219.42' cy='114.97' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Welwyn Hatfield' data-id='Welwyn Hatfield'/>\n   <circle id='svg_ed6fcace99c25a7f_e1302' cx='216.44' cy='120.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Berkshire' data-id='West Berkshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1303' cx='264.28' cy='124.02' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Devon' data-id='West Devon'/>\n   <circle id='svg_ed6fcace99c25a7f_e1304' cx='247.82' cy='96.25' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Lancashire' data-id='West Lancashire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1305' cx='259.81' cy='119.62' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Lindsey' data-id='West Lindsey'/>\n   <circle id='svg_ed6fcace99c25a7f_e1306' cx='226.78' cy='110.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Northamptonshire' data-id='West Northamptonshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1307' cx='224.65' cy='104.43' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Oxfordshire' data-id='West Oxfordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1308' cx='243.68' cy='111.84' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Suffolk' data-id='West Suffolk'/>\n   <circle id='svg_ed6fcace99c25a7f_e1309' cx='232.83' cy='112.47' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Westminster' data-id='Westminster'/>\n   <circle id='svg_ed6fcace99c25a7f_e1310' cx='281.34' cy='107.76' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wigan' data-id='Wigan'/>\n   <circle id='svg_ed6fcace99c25a7f_e1311' cx='235.03' cy='119.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wiltshire' data-id='Wiltshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1312' cx='221.49' cy='126.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Winchester' data-id='Winchester'/>\n   <circle id='svg_ed6fcace99c25a7f_e1313' cx='211.21' cy='112.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Windsor and Maidenhead' data-id='Windsor and Maidenhead'/>\n   <circle id='svg_ed6fcace99c25a7f_e1314' cx='288.47' cy='110.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wirral' data-id='Wirral'/>\n   <circle id='svg_ed6fcace99c25a7f_e1315' cx='215.77' cy='114.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Woking' data-id='Woking'/>\n   <circle id='svg_ed6fcace99c25a7f_e1316' cx='199.21' cy='114.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wokingham' data-id='Wokingham'/>\n   <circle id='svg_ed6fcace99c25a7f_e1317' cx='267.36' cy='126.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wolverhampton' data-id='Wolverhampton'/>\n   <circle id='svg_ed6fcace99c25a7f_e1318' cx='253.16' cy='131.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Worcester' data-id='Worcester'/>\n   <circle id='svg_ed6fcace99c25a7f_e1319' cx='244' cy='100.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Worthing' data-id='Worthing'/>\n   <circle id='svg_ed6fcace99c25a7f_e1320' cx='295.28' cy='120.28' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wrexham' data-id='Wrexham'/>\n   <circle id='svg_ed6fcace99c25a7f_e1321' cx='236.27' cy='111.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wychavon' data-id='Wychavon'/>\n   <circle id='svg_ed6fcace99c25a7f_e1322' cx='286.93' cy='122.37' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wyre' data-id='Wyre'/>\n   <circle id='svg_ed6fcace99c25a7f_e1323' cx='275.38' cy='118.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wyre Forest' data-id='Wyre Forest'/>\n   <circle id='svg_ed6fcace99c25a7f_e1324' cx='231' cy='100.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='York' data-id='York'/>\n   <circle id='svg_ed6fcace99c25a7f_e1325' cx='261.45' cy='68.27' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Adur' data-id='Adur'/>\n   <circle id='svg_ed6fcace99c25a7f_e1326' cx='358.19' cy='54.11' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Allerdale' data-id='Allerdale'/>\n   <circle id='svg_ed6fcace99c25a7f_e1327' cx='335.81' cy='55.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Amber Valley' data-id='Amber Valley'/>\n   <circle id='svg_ed6fcace99c25a7f_e1328' cx='306.04' cy='65.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Arun' data-id='Arun'/>\n   <circle id='svg_ed6fcace99c25a7f_e1329' cx='339.96' cy='65.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ashfield' data-id='Ashfield'/>\n   <circle id='svg_ed6fcace99c25a7f_e1330' cx='272.76' cy='54.59' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ashford' data-id='Ashford'/>\n   <circle id='svg_ed6fcace99c25a7f_e1331' cx='298.32' cy='37.13' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Babergh' data-id='Babergh'/>\n   <circle id='svg_ed6fcace99c25a7f_e1332' cx='224.44' cy='70.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barking and Dagenham' data-id='Barking and Dagenham'/>\n   <circle id='svg_ed6fcace99c25a7f_e1333' cx='244.81' cy='64.35' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barnet' data-id='Barnet'/>\n   <circle id='svg_ed6fcace99c25a7f_e1334' cx='311.08' cy='66.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barnsley' data-id='Barnsley'/>\n   <circle id='svg_ed6fcace99c25a7f_e1335' cx='369.42' cy='58.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Barrow-in-Furness' data-id='Barrow-in-Furness'/>\n   <circle id='svg_ed6fcace99c25a7f_e1336' cx='276.38' cy='71.36' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Basildon' data-id='Basildon'/>\n   <circle id='svg_ed6fcace99c25a7f_e1337' cx='269.23' cy='71.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Basingstoke and Deane' data-id='Basingstoke and Deane'/>\n   <circle id='svg_ed6fcace99c25a7f_e1338' cx='282.78' cy='70.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bassetlaw' data-id='Bassetlaw'/>\n   <circle id='svg_ed6fcace99c25a7f_e1339' cx='251.35' cy='62.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bath and North East Somerset' data-id='Bath and North East Somerset'/>\n   <circle id='svg_ed6fcace99c25a7f_e1340' cx='277.84' cy='64.43' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bedford' data-id='Bedford'/>\n   <circle id='svg_ed6fcace99c25a7f_e1341' cx='234.15' cy='43.37' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bexley' data-id='Bexley'/>\n   <circle id='svg_ed6fcace99c25a7f_e1342' cx='251.63' cy='43.08' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Birmingham' data-id='Birmingham'/>\n   <circle id='svg_ed6fcace99c25a7f_e1343' cx='310.53' cy='75.56' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blaby' data-id='Blaby'/>\n   <circle id='svg_ed6fcace99c25a7f_e1344' cx='256.85' cy='51.42' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blackburn with Darwen' data-id='Blackburn with Darwen'/>\n   <circle id='svg_ed6fcace99c25a7f_e1345' cx='343.8' cy='65.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blackpool' data-id='Blackpool'/>\n   <circle id='svg_ed6fcace99c25a7f_e1346' cx='289.63' cy='47.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Blaenau Gwent' data-id='Blaenau Gwent'/>\n   <circle id='svg_ed6fcace99c25a7f_e1347' cx='422.63' cy='57.87' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bolsover' data-id='Bolsover'/>\n   <circle id='svg_ed6fcace99c25a7f_e1348' cx='307.79' cy='72.73' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bolton' data-id='Bolton'/>\n   <circle id='svg_ed6fcace99c25a7f_e1349' cx='260.02' cy='44.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Boston' data-id='Boston'/>\n   <circle id='svg_ed6fcace99c25a7f_e1350' cx='293.49' cy='38.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bournemouth, Christchurch and Poole' data-id='Bournemouth, Christchurch and Poole'/>\n   <circle id='svg_ed6fcace99c25a7f_e1351' cx='221.25' cy='57.79' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bracknell Forest' data-id='Bracknell Forest'/>\n   <circle id='svg_ed6fcace99c25a7f_e1352' cx='280.15' cy='50.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bradford' data-id='Bradford'/>\n   <circle id='svg_ed6fcace99c25a7f_e1353' cx='263.1' cy='67.86' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Braintree' data-id='Braintree'/>\n   <circle id='svg_ed6fcace99c25a7f_e1354' cx='327.63' cy='51.02' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Breckland' data-id='Breckland'/>\n   <circle id='svg_ed6fcace99c25a7f_e1355' cx='195.79' cy='56.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Brent' data-id='Brent'/>\n   <circle id='svg_ed6fcace99c25a7f_e1356' cx='287.55' cy='68.83' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Brentwood' data-id='Brentwood'/>\n   <circle id='svg_ed6fcace99c25a7f_e1357' cx='315.99' cy='63.34' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bridgend' data-id='Bridgend'/>\n   <circle id='svg_ed6fcace99c25a7f_e1358' cx='263.26' cy='48.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Brighton and Hove' data-id='Brighton and Hove'/>\n   <circle id='svg_ed6fcace99c25a7f_e1359' cx='249.23' cy='76.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bristol' data-id='Bristol'/>\n   <circle id='svg_ed6fcace99c25a7f_e1360' cx='359.4' cy='61.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Broadland' data-id='Broadland'/>\n   <circle id='svg_ed6fcace99c25a7f_e1361' cx='269.23' cy='52.13' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bromley' data-id='Bromley'/>\n   <circle id='svg_ed6fcace99c25a7f_e1362' cx='215.71' cy='48.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bromsgrove' data-id='Bromsgrove'/>\n   <circle id='svg_ed6fcace99c25a7f_e1363' cx='221.91' cy='64.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Broxbourne' data-id='Broxbourne'/>\n   <circle id='svg_ed6fcace99c25a7f_e1364' cx='302.29' cy='54.4' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Broxtowe' data-id='Broxtowe'/>\n   <circle id='svg_ed6fcace99c25a7f_e1365' cx='256.57' cy='46.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Buckinghamshire' data-id='Buckinghamshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1366' cx='291.29' cy='44.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Burnley' data-id='Burnley'/>\n   <circle id='svg_ed6fcace99c25a7f_e1367' cx='274.44' cy='76.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Bury' data-id='Bury'/>\n   <circle id='svg_ed6fcace99c25a7f_e1368' cx='405.87' cy='59.83' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Caerphilly' data-id='Caerphilly'/>\n   <circle id='svg_ed6fcace99c25a7f_e1369' cx='322.92' cy='51.82' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Calderdale' data-id='Calderdale'/>\n   <circle id='svg_ed6fcace99c25a7f_e1370' cx='219.38' cy='65.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cambridge' data-id='Cambridge'/>\n   <circle id='svg_ed6fcace99c25a7f_e1371' cx='249.55' cy='57.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Camden' data-id='Camden'/>\n   <circle id='svg_ed6fcace99c25a7f_e1372' cx='292.17' cy='49.61' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cannock Chase' data-id='Cannock Chase'/>\n   <circle id='svg_ed6fcace99c25a7f_e1373' cx='283.03' cy='51.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Canterbury' data-id='Canterbury'/>\n   <circle id='svg_ed6fcace99c25a7f_e1374' cx='276.41' cy='52.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cardiff' data-id='Cardiff'/>\n   <circle id='svg_ed6fcace99c25a7f_e1375' cx='249.61' cy='67.02' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Carlisle' data-id='Carlisle'/>\n   <circle id='svg_ed6fcace99c25a7f_e1376' cx='333.94' cy='62.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Carmarthenshire' data-id='Carmarthenshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1377' cx='279.1' cy='45.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Castle Point' data-id='Castle Point'/>\n   <circle id='svg_ed6fcace99c25a7f_e1378' cx='288.42' cy='57.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Central Bedfordshire' data-id='Central Bedfordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1379' cx='288.24' cy='58.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ceredigion' data-id='Ceredigion'/>\n   <circle id='svg_ed6fcace99c25a7f_e1380' cx='291.26' cy='65.76' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Charnwood' data-id='Charnwood'/>\n   <circle id='svg_ed6fcace99c25a7f_e1381' cx='210.96' cy='67.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chelmsford' data-id='Chelmsford'/>\n   <circle id='svg_ed6fcace99c25a7f_e1382' cx='265.57' cy='50.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cheltenham' data-id='Cheltenham'/>\n   <circle id='svg_ed6fcace99c25a7f_e1383' cx='208.8' cy='52.62' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cherwell' data-id='Cherwell'/>\n   <circle id='svg_ed6fcace99c25a7f_e1384' cx='264.91' cy='55.64' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cheshire East' data-id='Cheshire East'/>\n   <circle id='svg_ed6fcace99c25a7f_e1385' cx='290.98' cy='76.42' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cheshire West and Chester' data-id='Cheshire West and Chester'/>\n   <circle id='svg_ed6fcace99c25a7f_e1386' cx='377.09' cy='57.54' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chesterfield' data-id='Chesterfield'/>\n   <circle id='svg_ed6fcace99c25a7f_e1387' cx='252.75' cy='45.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chichester' data-id='Chichester'/>\n   <circle id='svg_ed6fcace99c25a7f_e1388' cx='341.33' cy='52.54' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Chorley' data-id='Chorley'/>\n   <circle id='svg_ed6fcace99c25a7f_e1389' cx='217.95' cy='55.74' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='City of London' data-id='City of London'/>\n   <circle id='svg_ed6fcace99c25a7f_e1390' cx='256.45' cy='65.61' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Colchester' data-id='Colchester'/>\n   <circle id='svg_ed6fcace99c25a7f_e1391' cx='329.81' cy='63.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Conwy' data-id='Conwy'/>\n   <circle id='svg_ed6fcace99c25a7f_e1392' cx='382.97' cy='58.53' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Copeland' data-id='Copeland'/>\n   <circle id='svg_ed6fcace99c25a7f_e1393' cx='285.36' cy='53.8' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cornwall' data-id='Cornwall'/>\n   <circle id='svg_ed6fcace99c25a7f_e1394' cx='223.43' cy='54.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Cotswold' data-id='Cotswold'/>\n   <circle id='svg_ed6fcace99c25a7f_e1395' cx='315.48' cy='56.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='County Durham' data-id='County Durham'/>\n   <circle id='svg_ed6fcace99c25a7f_e1396' cx='238.79' cy='73.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Coventry' data-id='Coventry'/>\n   <circle id='svg_ed6fcace99c25a7f_e1397' cx='304.32' cy='59.69' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Craven' data-id='Craven'/>\n   <circle id='svg_ed6fcace99c25a7f_e1398' cx='192.54' cy='59.47' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Crawley' data-id='Crawley'/>\n   <circle id='svg_ed6fcace99c25a7f_e1399' cx='235.94' cy='49.46' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Croydon' data-id='Croydon'/>\n   <circle id='svg_ed6fcace99c25a7f_e1400' cx='232.71' cy='69.23' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dacorum' data-id='Dacorum'/>\n   <circle id='svg_ed6fcace99c25a7f_e1401' cx='341.69' cy='63.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Darlington' data-id='Darlington'/>\n   <circle id='svg_ed6fcace99c25a7f_e1402' cx='282.54' cy='46.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dartford' data-id='Dartford'/>\n   <circle id='svg_ed6fcace99c25a7f_e1403' cx='320.75' cy='47.82' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Denbighshire' data-id='Denbighshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1404' cx='303.89' cy='49.27' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Derby' data-id='Derby'/>\n   <circle id='svg_ed6fcace99c25a7f_e1405' cx='357.46' cy='59.84' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Derbyshire Dales' data-id='Derbyshire Dales'/>\n   <circle id='svg_ed6fcace99c25a7f_e1406' cx='298.8' cy='78.94' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Doncaster' data-id='Doncaster'/>\n   <circle id='svg_ed6fcace99c25a7f_e1407' cx='309.02' cy='67.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dorset' data-id='Dorset'/>\n   <circle id='svg_ed6fcace99c25a7f_e1408' cx='305.27' cy='55.84' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dover' data-id='Dover'/>\n   <circle id='svg_ed6fcace99c25a7f_e1409' cx='288.39' cy='78.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Dudley' data-id='Dudley'/>\n   <circle id='svg_ed6fcace99c25a7f_e1410' cx='243.38' cy='51.39' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ealing' data-id='Ealing'/>\n   <circle id='svg_ed6fcace99c25a7f_e1411' cx='247.27' cy='59.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Cambridgeshire' data-id='East Cambridgeshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1412' cx='295.42' cy='72.87' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Devon' data-id='East Devon'/>\n   <circle id='svg_ed6fcace99c25a7f_e1413' cx='238.47' cy='67.93' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Hampshire' data-id='East Hampshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1414' cx='243.13' cy='46.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Hertfordshire' data-id='East Hertfordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1415' cx='344.43' cy='57.46' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Lindsey' data-id='East Lindsey'/>\n   <circle id='svg_ed6fcace99c25a7f_e1416' cx='281.75' cy='56.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Riding of Yorkshire' data-id='East Riding of Yorkshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1417' cx='244.61' cy='74.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Staffordshire' data-id='East Staffordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1418' cx='317.33' cy='49.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='East Suffolk' data-id='East Suffolk'/>\n   <circle id='svg_ed6fcace99c25a7f_e1419' cx='295.71' cy='50.82' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Eastbourne' data-id='Eastbourne'/>\n   <circle id='svg_ed6fcace99c25a7f_e1420' cx='251.85' cy='64.46' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Eastleigh' data-id='Eastleigh'/>\n   <circle id='svg_ed6fcace99c25a7f_e1421' cx='245.08' cy='43.76' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Eden' data-id='Eden'/>\n   <circle id='svg_ed6fcace99c25a7f_e1422' cx='218.67' cy='48.94' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Elmbridge' data-id='Elmbridge'/>\n   <circle id='svg_ed6fcace99c25a7f_e1423' cx='231.49' cy='64.79' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Enfield' data-id='Enfield'/>\n   <circle id='svg_ed6fcace99c25a7f_e1424' cx='226.84' cy='52.22' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Epping Forest' data-id='Epping Forest'/>\n   <circle id='svg_ed6fcace99c25a7f_e1425' cx='241.33' cy='70.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Epsom and Ewell' data-id='Epsom and Ewell'/>\n   <circle id='svg_ed6fcace99c25a7f_e1426' cx='297.02' cy='70.11' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Erewash' data-id='Erewash'/>\n   <circle id='svg_ed6fcace99c25a7f_e1427' cx='225.66' cy='66.93' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Exeter' data-id='Exeter'/>\n   <circle id='svg_ed6fcace99c25a7f_e1428' cx='317.57' cy='66.3' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Fareham' data-id='Fareham'/>\n   <circle id='svg_ed6fcace99c25a7f_e1429' cx='284.11' cy='41.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Fenland' data-id='Fenland'/>\n   <circle id='svg_ed6fcace99c25a7f_e1430' cx='210.64' cy='49.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Flintshire' data-id='Flintshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1431' cx='276.59' cy='62.12' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Folkestone and Hythe' data-id='Folkestone and Hythe'/>\n   <circle id='svg_ed6fcace99c25a7f_e1432' cx='291.78' cy='71.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Forest of Dean' data-id='Forest of Dean'/>\n   <circle id='svg_ed6fcace99c25a7f_e1433' cx='374.55' cy='60.53' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Fylde' data-id='Fylde'/>\n   <circle id='svg_ed6fcace99c25a7f_e1434' cx='307.1' cy='60.82' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gateshead' data-id='Gateshead'/>\n   <circle id='svg_ed6fcace99c25a7f_e1435' cx='304.56' cy='39.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gedling' data-id='Gedling'/>\n   <circle id='svg_ed6fcace99c25a7f_e1436' cx='262.9' cy='77.64' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gloucester' data-id='Gloucester'/>\n   <circle id='svg_ed6fcace99c25a7f_e1437' cx='323.01' cy='65.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gosport' data-id='Gosport'/>\n   <circle id='svg_ed6fcace99c25a7f_e1438' cx='250.18' cy='71.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gravesham' data-id='Gravesham'/>\n   <circle id='svg_ed6fcace99c25a7f_e1439' cx='306.04' cy='45.87' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Great Yarmouth' data-id='Great Yarmouth'/>\n   <circle id='svg_ed6fcace99c25a7f_e1440' cx='224.57' cy='55.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Greenwich' data-id='Greenwich'/>\n   <circle id='svg_ed6fcace99c25a7f_e1441' cx='247.19' cy='49.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Guildford' data-id='Guildford'/>\n   <circle id='svg_ed6fcace99c25a7f_e1442' cx='227.07' cy='44.8' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Gwynedd' data-id='Gwynedd'/>\n   <circle id='svg_ed6fcace99c25a7f_e1443' cx='236.36' cy='58.82' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hackney' data-id='Hackney'/>\n   <circle id='svg_ed6fcace99c25a7f_e1444' cx='313.27' cy='54.3' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Halton' data-id='Halton'/>\n   <circle id='svg_ed6fcace99c25a7f_e1445' cx='300.67' cy='73.28' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hambleton' data-id='Hambleton'/>\n   <circle id='svg_ed6fcace99c25a7f_e1446' cx='243.25' cy='72.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hammersmith and Fulham' data-id='Hammersmith and Fulham'/>\n   <circle id='svg_ed6fcace99c25a7f_e1447' cx='363.05' cy='55.86' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harborough' data-id='Harborough'/>\n   <circle id='svg_ed6fcace99c25a7f_e1448' cx='230.82' cy='56.74' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Haringey' data-id='Haringey'/>\n   <circle id='svg_ed6fcace99c25a7f_e1449' cx='330.69' cy='58.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harlow' data-id='Harlow'/>\n   <circle id='svg_ed6fcace99c25a7f_e1450' cx='250.95' cy='52.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harrogate' data-id='Harrogate'/>\n   <circle id='svg_ed6fcace99c25a7f_e1451' cx='201.59' cy='59.58' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Harrow' data-id='Harrow'/>\n   <circle id='svg_ed6fcace99c25a7f_e1452' cx='233.61' cy='60.93' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hart' data-id='Hart'/>\n   <circle id='svg_ed6fcace99c25a7f_e1453' cx='309.22' cy='49.23' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hartlepool' data-id='Hartlepool'/>\n   <circle id='svg_ed6fcace99c25a7f_e1454' cx='272.76' cy='63.91' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hastings' data-id='Hastings'/>\n   <circle id='svg_ed6fcace99c25a7f_e1455' cx='296.25' cy='39.79' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Havant' data-id='Havant'/>\n   <circle id='svg_ed6fcace99c25a7f_e1456' cx='208.83' cy='54.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Havering' data-id='Havering'/>\n   <circle id='svg_ed6fcace99c25a7f_e1457' cx='288.36' cy='38.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Herefordshire' data-id='Herefordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1458' cx='212.73' cy='63.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hertsmere' data-id='Hertsmere'/>\n   <circle id='svg_ed6fcace99c25a7f_e1459' cx='263.47' cy='53.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='High Peak' data-id='High Peak'/>\n   <circle id='svg_ed6fcace99c25a7f_e1460' cx='209.23' cy='59.38' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hillingdon' data-id='Hillingdon'/>\n   <circle id='svg_ed6fcace99c25a7f_e1461' cx='308.57' cy='63.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hinckley and Bosworth' data-id='Hinckley and Bosworth'/>\n   <circle id='svg_ed6fcace99c25a7f_e1462' cx='239.36' cy='42.63' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Horsham' data-id='Horsham'/>\n   <circle id='svg_ed6fcace99c25a7f_e1463' cx='215.3' cy='60.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hounslow' data-id='Hounslow'/>\n   <circle id='svg_ed6fcace99c25a7f_e1464' cx='288.68' cy='68.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Huntingdonshire' data-id='Huntingdonshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1465' cx='333.97' cy='65.06' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Hyndburn' data-id='Hyndburn'/>\n   <circle id='svg_ed6fcace99c25a7f_e1466' cx='263.02' cy='58.08' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ipswich' data-id='Ipswich'/>\n   <circle id='svg_ed6fcace99c25a7f_e1467' cx='295.23' cy='45.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Isle of Anglesey' data-id='Isle of Anglesey'/>\n   <circle id='svg_ed6fcace99c25a7f_e1468' cx='314.36' cy='71.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Isle of Wight' data-id='Isle of Wight'/>\n   <circle id='svg_ed6fcace99c25a7f_e1469' cx='405.87' cy='57.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Isles of Scilly' data-id='Isles of Scilly'/>\n   <circle id='svg_ed6fcace99c25a7f_e1470' cx='234.51' cy='72.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Islington' data-id='Islington'/>\n   <circle id='svg_ed6fcace99c25a7f_e1471' cx='273.41' cy='49.95' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kensington and Chelsea' data-id='Kensington and Chelsea'/>\n   <circle id='svg_ed6fcace99c25a7f_e1472' cx='318.04' cy='53.39' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='King&amp;#39;s Lynn and West Norfolk' data-id='King’s Lynn and West Norfolk'/>\n   <circle id='svg_ed6fcace99c25a7f_e1473' cx='266.71' cy='41.13' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kingston upon Hull' data-id='Kingston upon Hull'/>\n   <circle id='svg_ed6fcace99c25a7f_e1474' cx='257.1' cy='60.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kingston upon Thames' data-id='Kingston upon Thames'/>\n   <circle id='svg_ed6fcace99c25a7f_e1475' cx='296.33' cy='64.61' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Kirklees' data-id='Kirklees'/>\n   <circle id='svg_ed6fcace99c25a7f_e1476' cx='340.03' cy='56.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Knowsley' data-id='Knowsley'/>\n   <circle id='svg_ed6fcace99c25a7f_e1477' cx='229.16' cy='72.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lambeth' data-id='Lambeth'/>\n   <circle id='svg_ed6fcace99c25a7f_e1478' cx='300.85' cy='51.65' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lancaster' data-id='Lancaster'/>\n   <circle id='svg_ed6fcace99c25a7f_e1479' cx='248.63' cy='39.5' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Leeds' data-id='Leeds'/>\n   <circle id='svg_ed6fcace99c25a7f_e1480' cx='220.32' cy='52.12' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Leicester' data-id='Leicester'/>\n   <circle id='svg_ed6fcace99c25a7f_e1481' cx='274.1' cy='40.69' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lewes' data-id='Lewes'/>\n   <circle id='svg_ed6fcace99c25a7f_e1482' cx='220.92' cy='71.88' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lewisham' data-id='Lewisham'/>\n   <circle id='svg_ed6fcace99c25a7f_e1483' cx='307.27' cy='41.39' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lichfield' data-id='Lichfield'/>\n   <circle id='svg_ed6fcace99c25a7f_e1484' cx='235.73' cy='68.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Lincoln' data-id='Lincoln'/>\n   <circle id='svg_ed6fcace99c25a7f_e1485' cx='273.15' cy='45.28' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Liverpool' data-id='Liverpool'/>\n   <circle id='svg_ed6fcace99c25a7f_e1486' cx='213.9' cy='66.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Luton' data-id='Luton'/>\n   <circle id='svg_ed6fcace99c25a7f_e1487' cx='242.61' cy='39.63' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Maidstone' data-id='Maidstone'/>\n   <circle id='svg_ed6fcace99c25a7f_e1488' cx='265.75' cy='60.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Maldon' data-id='Maldon'/>\n   <circle id='svg_ed6fcace99c25a7f_e1489' cx='280.26' cy='59.82' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Malvern Hills' data-id='Malvern Hills'/>\n   <circle id='svg_ed6fcace99c25a7f_e1490' cx='242.66' cy='56.6' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Manchester' data-id='Manchester'/>\n   <circle id='svg_ed6fcace99c25a7f_e1491' cx='288.21' cy='48.47' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mansfield' data-id='Mansfield'/>\n   <circle id='svg_ed6fcace99c25a7f_e1492' cx='281.84' cy='65.69' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Medway' data-id='Medway'/>\n   <circle id='svg_ed6fcace99c25a7f_e1493' cx='303.76' cy='70.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Melton' data-id='Melton'/>\n   <circle id='svg_ed6fcace99c25a7f_e1494' cx='300.14' cy='67.91' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mendip' data-id='Mendip'/>\n   <circle id='svg_ed6fcace99c25a7f_e1495' cx='353.85' cy='59.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Merthyr Tydfil' data-id='Merthyr Tydfil'/>\n   <circle id='svg_ed6fcace99c25a7f_e1496' cx='237.73' cy='39.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Merton' data-id='Merton'/>\n   <circle id='svg_ed6fcace99c25a7f_e1497' cx='301.63' cy='62.42' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mid Devon' data-id='Mid Devon'/>\n   <circle id='svg_ed6fcace99c25a7f_e1498' cx='281.73' cy='75.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mid Suffolk' data-id='Mid Suffolk'/>\n   <circle id='svg_ed6fcace99c25a7f_e1499' cx='267.47' cy='66.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mid Sussex' data-id='Mid Sussex'/>\n   <circle id='svg_ed6fcace99c25a7f_e1500' cx='281.51' cy='41.15' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Middlesbrough' data-id='Middlesbrough'/>\n   <circle id='svg_ed6fcace99c25a7f_e1501' cx='261.91' cy='48.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Milton Keynes' data-id='Milton Keynes'/>\n   <circle id='svg_ed6fcace99c25a7f_e1502' cx='268.17' cy='47.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Mole Valley' data-id='Mole Valley'/>\n   <circle id='svg_ed6fcace99c25a7f_e1503' cx='347.09' cy='61.13' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Monmouthshire' data-id='Monmouthshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1504' cx='353.78' cy='56.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Neath Port Talbot' data-id='Neath Port Talbot'/>\n   <circle id='svg_ed6fcace99c25a7f_e1505' cx='331.33' cy='48.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='New Forest' data-id='New Forest'/>\n   <circle id='svg_ed6fcace99c25a7f_e1506' cx='294.84' cy='67.35' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newark and Sherwood' data-id='Newark and Sherwood'/>\n   <circle id='svg_ed6fcace99c25a7f_e1507' cx='264.38' cy='75.19' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newcastle upon Tyne' data-id='Newcastle upon Tyne'/>\n   <circle id='svg_ed6fcace99c25a7f_e1508' cx='300.45' cy='46.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newcastle-under-Lyme' data-id='Newcastle-under-Lyme'/>\n   <circle id='svg_ed6fcace99c25a7f_e1509' cx='204.62' cy='64.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newham' data-id='Newham'/>\n   <circle id='svg_ed6fcace99c25a7f_e1510' cx='322.63' cy='63.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Newport' data-id='Newport'/>\n   <circle id='svg_ed6fcace99c25a7f_e1511' cx='294.73' cy='56.34' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Devon' data-id='North Devon'/>\n   <circle id='svg_ed6fcace99c25a7f_e1512' cx='296.25' cy='75.64' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North East Derbyshire' data-id='North East Derbyshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1513' cx='343.75' cy='50.91' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North East Lincolnshire' data-id='North East Lincolnshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1514' cx='213.09' cy='51.94' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Hertfordshire' data-id='North Hertfordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1515' cx='264.24' cy='43.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Kesteven' data-id='North Kesteven'/>\n   <circle id='svg_ed6fcace99c25a7f_e1516' cx='241.52' cy='50.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Lincolnshire' data-id='North Lincolnshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1517' cx='243.64' cy='61.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Norfolk' data-id='North Norfolk'/>\n   <circle id='svg_ed6fcace99c25a7f_e1518' cx='234.73' cy='63.28' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Northamptonshire' data-id='North Northamptonshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1519' cx='343.01' cy='58.97' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Somerset' data-id='North Somerset'/>\n   <circle id='svg_ed6fcace99c25a7f_e1520' cx='320.86' cy='69.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Tyneside' data-id='North Tyneside'/>\n   <circle id='svg_ed6fcace99c25a7f_e1521' cx='322.35' cy='57.47' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North Warwickshire' data-id='North Warwickshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1522' cx='238.99' cy='62.97' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='North West Leicestershire' data-id='North West Leicestershire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1523' cx='370.14' cy='60.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Northumberland' data-id='Northumberland'/>\n   <circle id='svg_ed6fcace99c25a7f_e1524' cx='287.28' cy='43.58' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Norwich' data-id='Norwich'/>\n   <circle id='svg_ed6fcace99c25a7f_e1525' cx='283.93' cy='61.07' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Nottingham' data-id='Nottingham'/>\n   <circle id='svg_ed6fcace99c25a7f_e1526' cx='267.21' cy='56.87' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Nuneaton and Bedworth' data-id='Nuneaton and Bedworth'/>\n   <circle id='svg_ed6fcace99c25a7f_e1527' cx='239.48' cy='75.78' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Oadby and Wigston' data-id='Oadby and Wigston'/>\n   <circle id='svg_ed6fcace99c25a7f_e1528' cx='292.71' cy='60.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Oldham' data-id='Oldham'/>\n   <circle id='svg_ed6fcace99c25a7f_e1529' cx='202.08' cy='54.03' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Oxford' data-id='Oxford'/>\n   <circle id='svg_ed6fcace99c25a7f_e1530' cx='339.31' cy='51.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Pembrokeshire' data-id='Pembrokeshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1531' cx='244.74' cy='54.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Pendle' data-id='Pendle'/>\n   <circle id='svg_ed6fcace99c25a7f_e1532' cx='263.39' cy='72.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Peterborough' data-id='Peterborough'/>\n   <circle id='svg_ed6fcace99c25a7f_e1533' cx='290.75' cy='41.76' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Plymouth' data-id='Plymouth'/>\n   <circle id='svg_ed6fcace99c25a7f_e1534' cx='263.83' cy='62.97' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Portsmouth' data-id='Portsmouth'/>\n   <circle id='svg_ed6fcace99c25a7f_e1535' cx='333.97' cy='53.12' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Powys' data-id='Powys'/>\n   <circle id='svg_ed6fcace99c25a7f_e1536' cx='253.22' cy='69.12' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Preston' data-id='Preston'/>\n   <circle id='svg_ed6fcace99c25a7f_e1537' cx='217.27' cy='68.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Reading' data-id='Reading'/>\n   <circle id='svg_ed6fcace99c25a7f_e1538' cx='222.85' cy='68.58' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Redbridge' data-id='Redbridge'/>\n   <circle id='svg_ed6fcace99c25a7f_e1539' cx='402.64' cy='56.93' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Redcar and Cleveland' data-id='Redcar and Cleveland'/>\n   <circle id='svg_ed6fcace99c25a7f_e1540' cx='356.97' cy='56.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Redditch' data-id='Redditch'/>\n   <circle id='svg_ed6fcace99c25a7f_e1541' cx='238.62' cy='47.87' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Reigate and Banstead' data-id='Reigate and Banstead'/>\n   <circle id='svg_ed6fcace99c25a7f_e1542' cx='326.13' cy='56.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rhondda Cynon Taf' data-id='Rhondda Cynon Taf'/>\n   <circle id='svg_ed6fcace99c25a7f_e1543' cx='371.14' cy='56.22' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ribble Valley' data-id='Ribble Valley'/>\n   <circle id='svg_ed6fcace99c25a7f_e1544' cx='214.79' cy='54.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Richmond upon Thames' data-id='Richmond upon Thames'/>\n   <circle id='svg_ed6fcace99c25a7f_e1545' cx='220.32' cy='59.1' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Richmondshire' data-id='Richmondshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1546' cx='323.36' cy='54.68' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rochdale' data-id='Rochdale'/>\n   <circle id='svg_ed6fcace99c25a7f_e1547' cx='279.77' cy='69.08' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rochford' data-id='Rochford'/>\n   <circle id='svg_ed6fcace99c25a7f_e1548' cx='407.85' cy='58.86' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rossendale' data-id='Rossendale'/>\n   <circle id='svg_ed6fcace99c25a7f_e1549' cx='309.39' cy='58.37' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rother' data-id='Rother'/>\n   <circle id='svg_ed6fcace99c25a7f_e1550' cx='290.1' cy='52.46' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rotherham' data-id='Rotherham'/>\n   <circle id='svg_ed6fcace99c25a7f_e1551' cx='311.24' cy='49.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rugby' data-id='Rugby'/>\n   <circle id='svg_ed6fcace99c25a7f_e1552' cx='205.74' cy='57.31' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Runnymede' data-id='Runnymede'/>\n   <circle id='svg_ed6fcace99c25a7f_e1553' cx='244.05' cy='41.03' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rushcliffe' data-id='Rushcliffe'/>\n   <circle id='svg_ed6fcace99c25a7f_e1554' cx='218.62' cy='62.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rushmoor' data-id='Rushmoor'/>\n   <circle id='svg_ed6fcace99c25a7f_e1555' cx='195.9' cy='60.77' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Rutland' data-id='Rutland'/>\n   <circle id='svg_ed6fcace99c25a7f_e1556' cx='271.12' cy='61.61' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Ryedale' data-id='Ryedale'/>\n   <circle id='svg_ed6fcace99c25a7f_e1557' cx='299.38' cy='57.03' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Salford' data-id='Salford'/>\n   <circle id='svg_ed6fcace99c25a7f_e1558' cx='265.42' cy='70.26' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sandwell' data-id='Sandwell'/>\n   <circle id='svg_ed6fcace99c25a7f_e1559' cx='325.26' cy='67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Scarborough' data-id='Scarborough'/>\n   <circle id='svg_ed6fcace99c25a7f_e1560' cx='245.43' cy='69.44' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sedgemoor' data-id='Sedgemoor'/>\n   <circle id='svg_ed6fcace99c25a7f_e1561' cx='293.86' cy='78.27' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sefton' data-id='Sefton'/>\n   <circle id='svg_ed6fcace99c25a7f_e1562' cx='340.75' cy='61.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Selby' data-id='Selby'/>\n   <circle id='svg_ed6fcace99c25a7f_e1563' cx='242.65' cy='77.48' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sevenoaks' data-id='Sevenoaks'/>\n   <circle id='svg_ed6fcace99c25a7f_e1564' cx='256.69' cy='70.35' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sheffield' data-id='Sheffield'/>\n   <circle id='svg_ed6fcace99c25a7f_e1565' cx='275.9' cy='66.75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Shropshire' data-id='Shropshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1566' cx='197.81' cy='57.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Slough' data-id='Slough'/>\n   <circle id='svg_ed6fcace99c25a7f_e1567' cx='251.79' cy='54.97' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Solihull' data-id='Solihull'/>\n   <circle id='svg_ed6fcace99c25a7f_e1568' cx='351.32' cy='54.36' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Somerset West and Taunton' data-id='Somerset West and Taunton'/>\n   <circle id='svg_ed6fcace99c25a7f_e1569' cx='307.88' cy='53.61' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Cambridgeshire' data-id='South Cambridgeshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1570' cx='255.4' cy='75' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Derbyshire' data-id='South Derbyshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1571' cx='262.58' cy='38.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Gloucestershire' data-id='South Gloucestershire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1572' cx='301.7' cy='40.98' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Hams' data-id='South Hams'/>\n   <circle id='svg_ed6fcace99c25a7f_e1573' cx='256.03' cy='56.17' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Holland' data-id='South Holland'/>\n   <circle id='svg_ed6fcace99c25a7f_e1574' cx='286.87' cy='63.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Kesteven' data-id='South Kesteven'/>\n   <circle id='svg_ed6fcace99c25a7f_e1575' cx='295.85' cy='61.85' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Lakeland' data-id='South Lakeland'/>\n   <circle id='svg_ed6fcace99c25a7f_e1576' cx='308.68' cy='44.42' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Norfolk' data-id='South Norfolk'/>\n   <circle id='svg_ed6fcace99c25a7f_e1577' cx='224.36' cy='46.87' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Oxfordshire' data-id='South Oxfordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1578' cx='249.87' cy='47.65' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Ribble' data-id='South Ribble'/>\n   <circle id='svg_ed6fcace99c25a7f_e1579' cx='338.6' cy='60.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Somerset' data-id='South Somerset'/>\n   <circle id='svg_ed6fcace99c25a7f_e1580' cx='273.98' cy='59.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Staffordshire' data-id='South Staffordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1581' cx='326.36' cy='61.52' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='South Tyneside' data-id='South Tyneside'/>\n   <circle id='svg_ed6fcace99c25a7f_e1582' cx='272.65' cy='73.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Southampton' data-id='Southampton'/>\n   <circle id='svg_ed6fcace99c25a7f_e1583' cx='324.13' cy='49.19' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Southend-on-Sea' data-id='Southend-on-Sea'/>\n   <circle id='svg_ed6fcace99c25a7f_e1584' cx='183.58' cy='58.23' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Southwark' data-id='Southwark'/>\n   <circle id='svg_ed6fcace99c25a7f_e1585' cx='238.86' cy='52.86' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Spelthorne' data-id='Spelthorne'/>\n   <circle id='svg_ed6fcace99c25a7f_e1586' cx='277.02' cy='43.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='St Albans' data-id='St Albans'/>\n   <circle id='svg_ed6fcace99c25a7f_e1587' cx='296.25' cy='53.58' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='St. Helens' data-id='St. Helens'/>\n   <circle id='svg_ed6fcace99c25a7f_e1588' cx='313.56' cy='46.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stafford' data-id='Stafford'/>\n   <circle id='svg_ed6fcace99c25a7f_e1589' cx='365.07' cy='58.36' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Staffordshire Moorlands' data-id='Staffordshire Moorlands'/>\n   <circle id='svg_ed6fcace99c25a7f_e1590' cx='277.13' cy='73.66' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stevenage' data-id='Stevenage'/>\n   <circle id='svg_ed6fcace99c25a7f_e1591' cx='311.27' cy='70.83' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stockport' data-id='Stockport'/>\n   <circle id='svg_ed6fcace99c25a7f_e1592' cx='330.38' cy='53.82' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stockton-on-Tees' data-id='Stockton-on-Tees'/>\n   <circle id='svg_ed6fcace99c25a7f_e1593' cx='285.15' cy='73.29' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stoke-on-Trent' data-id='Stoke-on-Trent'/>\n   <circle id='svg_ed6fcace99c25a7f_e1594' cx='291.05' cy='55.06' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stratford-on-Avon' data-id='Stratford-on-Avon'/>\n   <circle id='svg_ed6fcace99c25a7f_e1595' cx='258.35' cy='72.86' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Stroud' data-id='Stroud'/>\n   <circle id='svg_ed6fcace99c25a7f_e1596' cx='352.84' cy='62.34' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sunderland' data-id='Sunderland'/>\n   <circle id='svg_ed6fcace99c25a7f_e1597' cx='207.48' cy='61.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Surrey Heath' data-id='Surrey Heath'/>\n   <circle id='svg_ed6fcace99c25a7f_e1598' cx='233.17' cy='52.37' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Sutton' data-id='Sutton'/>\n   <circle id='svg_ed6fcace99c25a7f_e1599' cx='290.73' cy='63.05' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Swale' data-id='Swale'/>\n   <circle id='svg_ed6fcace99c25a7f_e1600' cx='332.07' cy='67.64' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Swansea' data-id='Swansea'/>\n   <circle id='svg_ed6fcace99c25a7f_e1601' cx='297.5' cy='59.09' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Swindon' data-id='Swindon'/>\n   <circle id='svg_ed6fcace99c25a7f_e1602' cx='305.22' cy='76.22' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tameside' data-id='Tameside'/>\n   <circle id='svg_ed6fcace99c25a7f_e1603' cx='277.69' cy='55.2' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tamworth' data-id='Tamworth'/>\n   <circle id='svg_ed6fcace99c25a7f_e1604' cx='262.38' cy='58.53' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tandridge' data-id='Tandridge'/>\n   <circle id='svg_ed6fcace99c25a7f_e1605' cx='313.27' cy='62.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Teignbridge' data-id='Teignbridge'/>\n   <circle id='svg_ed6fcace99c25a7f_e1606' cx='266.89' cy='76.22' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Telford and Wrekin' data-id='Telford and Wrekin'/>\n   <circle id='svg_ed6fcace99c25a7f_e1607' cx='303.12' cy='64.98' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tendring' data-id='Tendring'/>\n   <circle id='svg_ed6fcace99c25a7f_e1608' cx='273.27' cy='68.55' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Test Valley' data-id='Test Valley'/>\n   <circle id='svg_ed6fcace99c25a7f_e1609' cx='302.17' cy='75.73' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tewkesbury' data-id='Tewkesbury'/>\n   <circle id='svg_ed6fcace99c25a7f_e1610' cx='310.65' cy='58.16' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Thanet' data-id='Thanet'/>\n   <circle id='svg_ed6fcace99c25a7f_e1611' cx='220.82' cy='45.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Three Rivers' data-id='Three Rivers'/>\n   <circle id='svg_ed6fcace99c25a7f_e1612' cx='232.69' cy='48.28' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Thurrock' data-id='Thurrock'/>\n   <circle id='svg_ed6fcace99c25a7f_e1613' cx='319.7' cy='59.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tonbridge and Malling' data-id='Tonbridge and Malling'/>\n   <circle id='svg_ed6fcace99c25a7f_e1614' cx='306.04' cy='70.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Torbay' data-id='Torbay'/>\n   <circle id='svg_ed6fcace99c25a7f_e1615' cx='354.05' cy='52.99' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Torfaen' data-id='Torfaen'/>\n   <circle id='svg_ed6fcace99c25a7f_e1616' cx='296.96' cy='42.56' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Torridge' data-id='Torridge'/>\n   <circle id='svg_ed6fcace99c25a7f_e1617' cx='224.34' cy='61.41' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tower Hamlets' data-id='Tower Hamlets'/>\n   <circle id='svg_ed6fcace99c25a7f_e1618' cx='251.64' cy='73.97' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Trafford' data-id='Trafford'/>\n   <circle id='svg_ed6fcace99c25a7f_e1619' cx='237.85' cy='77.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Tunbridge Wells' data-id='Tunbridge Wells'/>\n   <circle id='svg_ed6fcace99c25a7f_e1620' cx='225.53' cy='48.62' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Uttlesford' data-id='Uttlesford'/>\n   <circle id='svg_ed6fcace99c25a7f_e1621' cx='310.18' cy='40.73' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Vale of Glamorgan' data-id='Vale of Glamorgan'/>\n   <circle id='svg_ed6fcace99c25a7f_e1622' cx='238.4' cy='57.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Vale of White Horse' data-id='Vale of White Horse'/>\n   <circle id='svg_ed6fcace99c25a7f_e1623' cx='342.5' cy='54.8' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wakefield' data-id='Wakefield'/>\n   <circle id='svg_ed6fcace99c25a7f_e1624' cx='323.92' cy='60.27' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Walsall' data-id='Walsall'/>\n   <circle id='svg_ed6fcace99c25a7f_e1625' cx='211.68' cy='57.57' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Waltham Forest' data-id='Waltham Forest'/>\n   <circle id='svg_ed6fcace99c25a7f_e1626' cx='222.31' cy='50.62' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wandsworth' data-id='Wandsworth'/>\n   <circle id='svg_ed6fcace99c25a7f_e1627' cx='303.48' cy='43.97' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Warrington' data-id='Warrington'/>\n   <circle id='svg_ed6fcace99c25a7f_e1628' cx='241.2' cy='44.9' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Warwick' data-id='Warwick'/>\n   <circle id='svg_ed6fcace99c25a7f_e1629' cx='208.8' cy='63.84' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Watford' data-id='Watford'/>\n   <circle id='svg_ed6fcace99c25a7f_e1630' cx='240.56' cy='65.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Waverley' data-id='Waverley'/>\n   <circle id='svg_ed6fcace99c25a7f_e1631' cx='290.08' cy='73.56' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wealden' data-id='Wealden'/>\n   <circle id='svg_ed6fcace99c25a7f_e1632' cx='226.99' cy='59.62' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Welwyn Hatfield' data-id='Welwyn Hatfield'/>\n   <circle id='svg_ed6fcace99c25a7f_e1633' cx='235.04' cy='45.18' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Berkshire' data-id='West Berkshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1634' cx='240.49' cy='55.32' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Devon' data-id='West Devon'/>\n   <circle id='svg_ed6fcace99c25a7f_e1635' cx='253.74' cy='59.7' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Lancashire' data-id='West Lancashire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1636' cx='365.53' cy='53.67' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Lindsey' data-id='West Lindsey'/>\n   <circle id='svg_ed6fcace99c25a7f_e1637' cx='242.9' cy='67.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Northamptonshire' data-id='West Northamptonshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1638' cx='259.51' cy='53.71' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Oxfordshire' data-id='West Oxfordshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1639' cx='234.52' cy='54.33' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='West Suffolk' data-id='West Suffolk'/>\n   <circle id='svg_ed6fcace99c25a7f_e1640' cx='253.38' cy='50.28' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Westminster' data-id='Westminster'/>\n   <circle id='svg_ed6fcace99c25a7f_e1641' cx='297.49' cy='48.08' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wigan' data-id='Wigan'/>\n   <circle id='svg_ed6fcace99c25a7f_e1642' cx='255.23' cy='40.88' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wiltshire' data-id='Wiltshire'/>\n   <circle id='svg_ed6fcace99c25a7f_e1643' cx='259.8' cy='63.35' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Winchester' data-id='Winchester'/>\n   <circle id='svg_ed6fcace99c25a7f_e1644' cx='258.31' cy='41.81' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Windsor and Maidenhead' data-id='Windsor and Maidenhead'/>\n   <circle id='svg_ed6fcace99c25a7f_e1645' cx='369.22' cy='62.34' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wirral' data-id='Wirral'/>\n   <circle id='svg_ed6fcace99c25a7f_e1646' cx='224.92' cy='63.24' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Woking' data-id='Woking'/>\n   <circle id='svg_ed6fcace99c25a7f_e1647' cx='265.02' cy='65.4' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wokingham' data-id='Wokingham'/>\n   <circle id='svg_ed6fcace99c25a7f_e1648' cx='242.6' cy='60.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wolverhampton' data-id='Wolverhampton'/>\n   <circle id='svg_ed6fcace99c25a7f_e1649' cx='274.94' cy='57.51' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Worcester' data-id='Worcester'/>\n   <circle id='svg_ed6fcace99c25a7f_e1650' cx='306.51' cy='50.96' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Worthing' data-id='Worthing'/>\n   <circle id='svg_ed6fcace99c25a7f_e1651' cx='276.3' cy='48.27' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wrexham' data-id='Wrexham'/>\n   <circle id='svg_ed6fcace99c25a7f_e1652' cx='265.09' cy='45.88' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wychavon' data-id='Wychavon'/>\n   <circle id='svg_ed6fcace99c25a7f_e1653' cx='354.05' cy='63.04' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wyre' data-id='Wyre'/>\n   <circle id='svg_ed6fcace99c25a7f_e1654' cx='333.12' cy='57.89' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='Wyre Forest' data-id='Wyre Forest'/>\n   <circle id='svg_ed6fcace99c25a7f_e1655' cx='272.64' cy='42.92' r='1.47pt' fill='#018E42' fill-opacity='0.7' stroke='#018E42' stroke-opacity='0.7' stroke-width='0.71' stroke-linejoin='round' stroke-linecap='round' title='York' data-id='York'/>\n  <\/g>\n  <g clip-path='url(#svg_ed6fcace99c25a7f_c1)'>\n   <text x='58.39' y='281.98' font-size='6.6pt' font-family='Arial' fill='#4D4D4D' fill-opacity='1'>Gay or Lesbian<\/text>\n   <text x='23.17' y='226.83' font-size='6.6pt' font-family='Arial' fill='#4D4D4D' fill-opacity='1'>Straight or Heterosexual<\/text>\n   <text x='84.83' y='171.68' font-size='6.6pt' font-family='Arial' fill='#4D4D4D' fill-opacity='1'>Bisexual<\/text>\n   <text x='63.78' y='116.53' font-size='6.6pt' font-family='Arial' fill='#4D4D4D' fill-opacity='1'>Not answered<\/text>\n   <text x='9.96' y='61.38' font-size='6.6pt' font-family='Arial' fill='#4D4D4D' fill-opacity='1'>All other sexual orientations<\/text>\n   <text x='137.21' y='323.15' font-size='6.6pt' font-family='Arial' fill='#4D4D4D' fill-opacity='1'>0<\/text>\n   <text x='203.76' y='323.15' font-size='6.6pt' font-family='Arial' fill='#4D4D4D' fill-opacity='1'>5<\/text>\n   <text x='267.86' y='323.15' font-size='6.6pt' font-family='Arial' fill='#4D4D4D' fill-opacity='1'>10<\/text>\n   <text x='334.42' y='323.15' font-size='6.6pt' font-family='Arial' fill='#4D4D4D' fill-opacity='1'>15<\/text>\n   <text x='400.97' y='323.15' font-size='6.6pt' font-family='Arial' fill='#4D4D4D' fill-opacity='1'>20<\/text>\n   <text x='467.52' y='323.15' font-size='6.6pt' font-family='Arial' fill='#4D4D4D' fill-opacity='1'>25<\/text>\n   <text x='438.46' y='334.82' font-size='7.43pt' font-family='Arial'>Percentage<\/text>\n   <text x='9.96' y='17.84' font-size='8.25pt' font-family='Arial'>Percentage of population in each area reporting bad or very bad health by sexual orientation<\/text>\n   <text x='87.24' y='348.19' font-size='6.6pt' font-family='Arial'>Source: General health by sexual orientation from Office for National Statistics | Graphic: Nicola Rennie<\/text>\n  <\/g>\n <\/g>\n<\/svg>","js":null,"uid":"svg_ed6fcace99c25a7f","ratio":1.4,"settings":{"tooltip":{"css":".tooltip_SVGID_ { padding: 5pt;\n        font-size: 1rem;\n        background-color: #FFFFFF;\n        border-radius: 3px;\n        line-height: 1;\n        color: #000000; ; position:absolute;pointer-events:none;z-index:999;}","placement":"doc","opacity":0.9,"offx":10,"offy":10,"use_cursor_pos":true,"use_fill":false,"use_stroke":false,"delay_over":200,"delay_out":500},"hover":{"css":".hover_data_SVGID_ { fill:#F7D002;stroke:#000000;r:6px;opacity:1; }","reactive":true,"nearest_distance":null},"hover_inv":{"css":".hover_inv_SVGID_ { opacity:0.3; }"},"hover_key":{"css":".hover_key_SVGID_ { fill:orange;stroke:black;cursor:pointer; }\ntext.hover_key_SVGID_ { stroke:none;fill:orange; }\ncircle.hover_key_SVGID_ { fill:orange;stroke:black; }\nline.hover_key_SVGID_, polyline.hover_key_SVGID_ { fill:none;stroke:orange; }\nrect.hover_key_SVGID_, polygon.hover_key_SVGID_, path.hover_key_SVGID_ { fill:orange;stroke:none; }\nimage.hover_key_SVGID_ { stroke:orange; }","reactive":true},"hover_theme":{"css":".hover_theme_SVGID_ { fill:orange;stroke:black;cursor:pointer; }\ntext.hover_theme_SVGID_ { stroke:none;fill:orange; }\ncircle.hover_theme_SVGID_ { fill:orange;stroke:black; }\nline.hover_theme_SVGID_, polyline.hover_theme_SVGID_ { fill:none;stroke:orange; }\nrect.hover_theme_SVGID_, polygon.hover_theme_SVGID_, path.hover_theme_SVGID_ { fill:orange;stroke:none; }\nimage.hover_theme_SVGID_ { stroke:orange; }","reactive":true},"select":{"css":".select_data_SVGID_ { fill:red;stroke:black;cursor:pointer; }\ntext.select_data_SVGID_ { stroke:none;fill:red; }\ncircle.select_data_SVGID_ { fill:red;stroke:black; }\nline.select_data_SVGID_, polyline.select_data_SVGID_ { fill:none;stroke:red; }\nrect.select_data_SVGID_, polygon.select_data_SVGID_, path.select_data_SVGID_ { fill:red;stroke:none; }\nimage.select_data_SVGID_ { stroke:red; }","type":"multiple","only_shiny":true,"selected":[]},"select_inv":{"css":""},"select_key":{"css":".select_key_SVGID_ { fill:red;stroke:black;cursor:pointer; }\ntext.select_key_SVGID_ { stroke:none;fill:red; }\ncircle.select_key_SVGID_ { fill:red;stroke:black; }\nline.select_key_SVGID_, polyline.select_key_SVGID_ { fill:none;stroke:red; }\nrect.select_key_SVGID_, polygon.select_key_SVGID_, path.select_key_SVGID_ { fill:red;stroke:none; }\nimage.select_key_SVGID_ { stroke:red; }","type":"single","only_shiny":true,"selected":[]},"select_theme":{"css":".select_theme_SVGID_ { fill:red;stroke:black;cursor:pointer; }\ntext.select_theme_SVGID_ { stroke:none;fill:red; }\ncircle.select_theme_SVGID_ { fill:red;stroke:black; }\nline.select_theme_SVGID_, polyline.select_theme_SVGID_ { fill:none;stroke:red; }\nrect.select_theme_SVGID_, polygon.select_theme_SVGID_, path.select_theme_SVGID_ { fill:red;stroke:none; }\nimage.select_theme_SVGID_ { stroke:red; }","type":"single","only_shiny":true,"selected":[]},"zoom":{"min":1,"max":1,"duration":300,"default_on":false},"toolbar":{"position":"topright","pngname":"diagram","tooltips":null,"fixed":false,"hidden":[],"delay_over":200,"delay_out":500},"sizing":{"rescale":true,"width":1}}},"evals":[],"jsHooks":[]}</script>
</div>
</div>
<p>And now we have a functional, aesthetically pleasing interactive beeswarm chart!</p>
<div class="callout callout-style-default callout-warning callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Warning</span>Is your chart (still) accessible?
</div>
</div>
<div class="callout-body-container callout-body">
<p>Remember that adding interactivity into your chart can impact the accessibility of it. You should add a text description of the chart that can be accessed by screen readers, and provide an alternative way to access the data i.e.&nbsp;through an accessible data download.</p>
<p>Ideally, you should also do some post-processing of your <code>ggiraph</code> chart to make sure that the <code>&lt;svg&gt;</code> contains an <code>aria-label</code> describing the data, as well as <code>tabindex</code> and <code>role</code>. How you do that will depend on how you are publishing your chart. You might find <code>htmlwidgets::onRender()</code> useful for injecting these elements when the chart is rendered.</p>
</div>
</div>
</section>
<section id="resources" class="level2">
<h2 class="anchored" data-anchor-id="resources">Resources</h2>
<p>Ready to make your own interactive beeswarm charts? Here are a few resources you might find helpful:</p>
<ul>
<li>The <a href="https://github.com/eclarke/ggbeeswarm" target="_blank"><code>ggbeeswarm</code> GitHub repository</a> contains several different examples, including ways to customise the layout.</li>
<li>The <a href="https://www.ardata.fr/ggiraph-book/" target="_blank"><code>ggiraph</code> book</a> has lots of examples of making interactive charts, including dealing with fonts and using them in Shiny apps.</li>
<li>I did a talk at EdinbR last year, where I show how to create interactive charts using either <code>ggiraph</code> or Observable. Check out the <a href="https://nrennie.rbind.io/talks/edinbR-interactive-charts/" target="_blank">slides</a> for some step-by-step examples.</li>
</ul>
<p>Want to see an interactive beeswarm chart in action? Have a look at my <a href="https://nrennie.rbind.io/statistical-performance-indicators/" target="_blank">article on statistical performance indicators around the world</a>.</p>


</section>

<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-reuse"><h2 class="anchored quarto-appendix-heading">Reuse</h2><div class="quarto-appendix-contents"><div><a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></div></div></section><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Citation</h2><div><div class="quarto-appendix-secondary-label">BibTeX citation:</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{rennie2026,
  author = {Rennie, Nicola},
  title = {Interactive Beeswarm Charts in {R}},
  date = {2026-02-27},
  url = {https://nrennie.com/blog/2026-02-27-interactive-beeswarm-r/},
  langid = {en}
}
</code></pre><div class="quarto-appendix-secondary-label">For attribution, please cite this work as:</div><div id="ref-rennie2026" class="csl-entry quarto-appendix-citeas">
Rennie, Nicola. 2026. <span>“Interactive Beeswarm Charts in R.”</span>
February 27. <a href="https://nrennie.com/blog/2026-02-27-interactive-beeswarm-r/">https://nrennie.com/blog/2026-02-27-interactive-beeswarm-r/</a>.
</div></div></section></div> ]]></description>
  <category>Data Visualisation</category>
  <category>R</category>
  <guid>https://nrennie.com/blog/2026-02-27-interactive-beeswarm-r/</guid>
  <pubDate>Fri, 27 Feb 2026 00:00:00 GMT</pubDate>
  <media:content url="https://nrennie.com/blog/2026-02-27-interactive-beeswarm-r/featured.png" medium="image" type="image/png" height="103" width="144"/>
</item>
<item>
  <title>How to create a more accessible line chart</title>
  <dc:creator>Nicola Rennie</dc:creator>
  <link>https://nrennie.com/blog/2026-01-12-accessible-line-chart/</link>
  <description><![CDATA[ 





<p>It’s a myth that accessibility means compromising on aesthetics. Instead, as <a href="https://openvisualizationacademy.beehiiv.com/p/designing-for-everyone" target="_blank">Michela Tjan</a> writes, accessibility means prioritising communication. In this blog post, we’re going to walk through an example of creating a line chart and transforming it to make it more accessible as well as more aesthetic.</p>
<section id="transforming-a-line-chart" class="level2">
<h2 class="anchored" data-anchor-id="transforming-a-line-chart">Transforming a line chart</h2>
<p>Let’s say I have data where the observations:</p>
<ul>
<li>are continuous;</li>
<li>and are recorded over time;</li>
<li>for four different categories (A. B, C, D)</li>
</ul>
<p>The first chart type that most likely comes to mind is a line chart, with four different lines (one for each category).</p>
<p>Let’s simulate some data and create a line chart using <code>ggplot2</code>.</p>
<div class="cell">
<details class="code-fold">
<summary>Code</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb1-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(tidyverse)</span>
<span id="cb1-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(ggtext)</span>
<span id="cb1-3"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(ggnewscale)</span>
<span id="cb1-4"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(gghighlight)</span>
<span id="cb1-5"></span>
<span id="cb1-6"></span>
<span id="cb1-7"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Colours -----------------------------------------------------------------</span></span>
<span id="cb1-8"></span>
<span id="cb1-9">okabeito_colors_list <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(</span>
<span id="cb1-10">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">orange =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#E69F00"</span>,</span>
<span id="cb1-11">  <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">`</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">light blue</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">`</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">=</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#56B4E9"</span>,</span>
<span id="cb1-12">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">green =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#009E73"</span>,</span>
<span id="cb1-13">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">yellow =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#F0E442"</span>,</span>
<span id="cb1-14">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">blue =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#0072B2"</span>,</span>
<span id="cb1-15">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">red =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#D55E00"</span>,</span>
<span id="cb1-16">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">purple =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#CC79A7"</span>,</span>
<span id="cb1-17">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">grey =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#999999"</span>,</span>
<span id="cb1-18">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">black =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#000000"</span>,</span>
<span id="cb1-19">  <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">`</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">sky blue</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">`</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">=</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#56B4E9"</span>,</span>
<span id="cb1-20">  <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">`</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">bluish green</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">`</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">=</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#009E73"</span>,</span>
<span id="cb1-21">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">vermillion =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#D55E00"</span>,</span>
<span id="cb1-22">  <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">`</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">reddish purple</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">`</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">=</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#CC79A7"</span>,</span>
<span id="cb1-23">  <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">`</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">dark yellow</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">`</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">=</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#F5C710"</span>,</span>
<span id="cb1-24">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">amber =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#F5C710"</span></span>
<span id="cb1-25">)</span>
<span id="cb1-26">okabeito <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">unname</span>(okabeito_colors_list)[<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">4</span>]</span>
<span id="cb1-27"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">names</span>(okabeito) <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">paste</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Statement"</span>, LETTERS[<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">4</span>])</span>
<span id="cb1-28"></span>
<span id="cb1-29">new_palette <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(okabeito[<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span>], okabeito_colors_list[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"amber"</span>])</span>
<span id="cb1-30"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">names</span>(new_palette) <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">paste</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Statement"</span>, LETTERS[<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">4</span>])</span>
<span id="cb1-31"></span>
<span id="cb1-32"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Nice data ---------------------------------------------------------------</span></span>
<span id="cb1-33"></span>
<span id="cb1-34"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">set.seed</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1234</span>)</span>
<span id="cb1-35">raw_data <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span></span>
<span id="cb1-36">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">data.frame</span>(</span>
<span id="cb1-37">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">seq</span>(</span>
<span id="cb1-38">      <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">as.Date</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"01-01-2024"</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">tryFormats =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"%d-%m-%Y"</span>),</span>
<span id="cb1-39">      <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">as.Date</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"01-12-2024"</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">tryFormats =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"%d-%m-%Y"</span>),</span>
<span id="cb1-40">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">by =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"months"</span></span>
<span id="cb1-41">    ),</span>
<span id="cb1-42">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y1 =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">rnorm</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">12</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">40</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">100</span>,</span>
<span id="cb1-43">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y2 =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">rnorm</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">12</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">30</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">100</span>,</span>
<span id="cb1-44">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y3 =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">rnorm</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">12</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">100</span></span>
<span id="cb1-45">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb1-46">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y0 =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">seq</span>(<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.5</span>, <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.8</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">length.out =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">12</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">rnorm</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">12</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.05</span>))</span>
<span id="cb1-47"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">colnames</span>(raw_data) <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"x"</span>, <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">paste</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Statement"</span>, LETTERS[<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">4</span>]))</span>
<span id="cb1-48">plot_data <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> raw_data <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb1-49">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">pivot_longer</span>(</span>
<span id="cb1-50">    <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span>x,</span>
<span id="cb1-51">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">names_to =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"category"</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">values_to =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"y"</span></span>
<span id="cb1-52">  )</span>
<span id="cb1-53">plot_data <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> raw_data <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb1-54">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">pivot_longer</span>(</span>
<span id="cb1-55">    <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span>x,</span>
<span id="cb1-56">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">names_to =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"category"</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">values_to =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"y"</span></span>
<span id="cb1-57">  )</span>
<span id="cb1-58"></span>
<span id="cb1-59"></span>
<span id="cb1-60"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Messy data --------------------------------------------------------------</span></span>
<span id="cb1-61"></span>
<span id="cb1-62"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">set.seed</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1234</span>)</span>
<span id="cb1-63">raw_data2 <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span></span>
<span id="cb1-64">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">data.frame</span>(</span>
<span id="cb1-65">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">seq</span>(</span>
<span id="cb1-66">      <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">as.Date</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"01-01-2024"</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">tryFormats =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"%d-%m-%Y"</span>),</span>
<span id="cb1-67">      <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">as.Date</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"01-12-2024"</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">tryFormats =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"%d-%m-%Y"</span>),</span>
<span id="cb1-68">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">by =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"months"</span></span>
<span id="cb1-69">    ),</span>
<span id="cb1-70">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y1 =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">runif</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">12</span>),</span>
<span id="cb1-71">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y2 =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">runif</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">12</span>),</span>
<span id="cb1-72">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y3 =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">runif</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">12</span>)</span>
<span id="cb1-73">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb1-74">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y0 =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">rnorm</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">12</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.1</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">cumsum</span>(y1) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">max</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">cumsum</span>(y1)))</span>
<span id="cb1-75"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">colnames</span>(raw_data2) <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"x"</span>, <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">paste</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Statement"</span>, LETTERS[<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">4</span>]))</span>
<span id="cb1-76">plot_data2 <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> raw_data2 <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb1-77">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">pivot_longer</span>(</span>
<span id="cb1-78">    <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span>x,</span>
<span id="cb1-79">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">names_to =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"category"</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">values_to =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"y"</span></span>
<span id="cb1-80">  )</span></code></pre></div></div>
</details>
</div>
<div class="callout callout-style-default callout-note callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Note
</div>
</div>
<div class="callout-body-container callout-body">
<p>Although the examples here are created using <code>ggplot2</code> in R, this is primarily for demonstration purposes and isn’t intended to call out inaccessibility in <code>ggplot2</code> over other choices. The advice and warnings reply regardless of which software you are using.</p>
</div>
</div>
<div class="cell">
<details class="code-fold">
<summary>Code</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb2-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme_set</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme_grey</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">base_size =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">11</span>))</span>
<span id="cb2-2">g0 <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>(</span>
<span id="cb2-3">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> plot_data,</span>
<span id="cb2-4">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> x, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> y, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">colour =</span> category)</span>
<span id="cb2-5">) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb2-6">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_line</span>()</span>
<span id="cb2-7">g0</span></code></pre></div></div>
</details>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-2-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1"><img src="https://nrennie.com/blog/2026-01-12-accessible-line-chart/index_files/figure-html/unnamed-chunk-2-1.png" class="img-fluid figure-img" style="width:100.0%" alt="A line chart with four lines. Three of the lines are quite flat, the other is increasing. The lines are quite thin and coloured pink, green, purple, and blue, against a grey background. A legend is on the right hand side."></a></p>
</figure>
</div>
</div>
</div>
<p>There are many things that we can do to improve this line chart, both in terms of accessibility and aesthetics. Regardless of your software choice, don’t assume default settings are well-chosen.</p>
<section id="sizing" class="level3">
<h3 class="anchored" data-anchor-id="sizing">Sizing</h3>
<p>The first thing that jumps out at me in the default chart, is how thin the lines are and how that makes them quite difficult to see. The default font size is also quite small. Let’s increase the line width and font size. If we had points or bars in our chart, we would also want to increase the size of the points and the line width of the bar outlines.</p>
<div class="cell">
<details class="code-fold">
<summary>Code</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb3-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme_set</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme_grey</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">base_size =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">16</span>))</span>
<span id="cb3-2">g <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>(</span>
<span id="cb3-3">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> plot_data,</span>
<span id="cb3-4">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> x, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> y, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">colour =</span> category)</span>
<span id="cb3-5">) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb3-6">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_line</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">linewidth =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>)</span>
<span id="cb3-7">g</span></code></pre></div></div>
</details>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-3-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-2"><img src="https://nrennie.com/blog/2026-01-12-accessible-line-chart/index_files/figure-html/unnamed-chunk-3-1.png" class="img-fluid figure-img" style="width:100.0%" alt="An updated version of the previous chart where the four lines are thicker and the text size is larger."></a></p>
</figure>
</div>
</div>
</div>
<p>Problems resulting from small sizes for fonts and lines are often amplified when viewing charts on smaller screens e.g.&nbsp;on mobile. People shouldn’t have to zoom in to see your chart.</p>
</section>
<section id="colours" class="level3">
<h3 class="anchored" data-anchor-id="colours">Colours</h3>
<p>Let’s move on to thinking about the line colours. Ideally, we want the line colours to be distinguishable from each other, and also from the background.</p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Tip
</div>
</div>
<div class="callout-body-container callout-body">
<p>The WCAG (<a href="https://www.w3.org/TR/WCAG22/" target="_blank">Web Content Accessibility Guidelines</a>) require specific colour contrast ratios for text and graphics to ensure readability: 4.5:1 for normal text and 3:1 for large text or UI components. This guidance isn’t written with data visualisation in mind so it can be tricky to apply in the context of charts.</p>
<p>APCA (<a href="https://apcacontrast.com/" target="_blank">Advanced Perceptual Contrast Algorithm</a>) includes checks for contrast at different line widths and sizes, so might be more helpful when choosing colours for e.g.&nbsp;lines vs areas in charts.</p>
</div>
</div>
<p>The first thing we can check is whether the default colours are appropriate and accessible for people with colour vision deficiency. There are many different tools that you can use to simulate colour-blindness, both for palettes in general and for the way a chart might appear. A quick way to check whether your colours are likely to be colour-blind-friendly, is to see how the image would look printed in black and white. You can use simple image editing tools to desaturate the image, or if viewing in a browser use File -&gt; Print to PDF.</p>
<p>Let’s see what our default colours look like in greyscale:</p>
<div class="cell">
<details class="code-fold">
<summary>Code</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb4" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb4-1">des <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">function</span>(c) colorspace<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">desaturate</span>(c, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">severity =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>)</span>
<span id="cb4-2">g_des <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> colorblindr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">edit_colors</span>(g, des)</span>
<span id="cb4-3"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">plot</span>(g_des)</span></code></pre></div></div>
</details>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-4-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-3"><img src="https://nrennie.com/blog/2026-01-12-accessible-line-chart/index_files/figure-html/unnamed-chunk-4-1.png" class="img-fluid figure-img" style="width:100.0%" alt="A desaturated, greyscale version of the previous chart image. The four lines are the same shade of grey and impossible to tell apart."></a></p>
</figure>
</div>
</div>
</div>
<p>Since all of the default colours are equally bright, in greyscale they look identical and there’s no way to tell apart the lines.</p>
<p>So how do you choose a <strong>good</strong> colour palette? There isn’t a single colour palette that is the best colour palette for everyone. For example, some people may require high contrast colours whilst other people may require lower contrast. However, some colour palettes are better than others.</p>
<p>There are a couple of good default options. The colours in the <a href="https://malcolmbarrett.github.io/ggokabeito/reference/palette_okabe_ito.html" target="_blank">Okabe-Ito</a> palette were chosen specifically to be distinguishable by those with the three frequent forms of colour-blindness. Since version 4.0.0, it’s been the default colour palette for base R plots. <a href="https://sronpersonalpages.nl/~pault/" target="_blank">Paul Tol</a> also introduced several colour-blind-friendly palettes, including high contrast options.</p>
<p>Let’s replace our default line chart colours with the Okabe-Ito palette. We’ll also remove the grey background from the chart and replace it with white to increase the contrast between the lines and the background.</p>
<div class="cell">
<details class="code-fold">
<summary>Code</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb5" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb5-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme_set</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme_minimal</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">base_size =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">16</span>))</span>
<span id="cb5-2">g <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> g <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_colour_manual</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">values =</span> okabeito)</span>
<span id="cb5-3">g</span></code></pre></div></div>
</details>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-5-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-4"><img src="https://nrennie.com/blog/2026-01-12-accessible-line-chart/index_files/figure-html/unnamed-chunk-5-1.png" class="img-fluid figure-img" style="width:100.0%" alt="An updated version of the line chart where the lines are now coloured yellow, orange, blue, and green and the background is white."></a></p>
</figure>
</div>
</div>
</div>
<p>I particularly like <a href="https://projects.susielu.com/viz-palette?colors=%5B%22#e69f00%22,%22#56b4e9%22,%22#009e73%22,%22#f0e442%22%5D&amp;backgroundColor=%22white%22&amp;fontColor=%22black%22&amp;mode=%22normal%22" target="_blank">Viz Palette</a> for evaluating colour palette options. It gives you some sample charts, and simulates how they are likely to look to people with different types of colour vision deficiency. The feature I appreciate the most is the report on how distinguishable colours are at different line widths. For example, colours may be okay for use in an area chart but not for a line chart.</p>
</section>
<section id="dont-rely-on-colour" class="level3">
<h3 class="anchored" data-anchor-id="dont-rely-on-colour">Don’t rely on colour</h3>
<p>Regardless of how well chosen you think your colours are, it’s important never to rely on them as the only method of distinguishing groups. When creating line charts, an easy way to improve the accessibility of your chart is to add category names to the end of each line as a direct label.</p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Tip
</div>
</div>
<div class="callout-body-container callout-body">
<p>If you choose to use coloured text for the labels, the colours don’t need to be an <em>exact</em> match to the line colour. Here, the shade of yellow used for the <code>Statement D</code> label is slightly darker than the yellow for the line. This is because the text lines are slightly thinner and so benefit from slightly higher contrast.</p>
</div>
</div>
<div class="cell">
<details class="code-fold">
<summary>Code</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb6" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb6-1">g <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> g <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb6-2">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_point</span>(</span>
<span id="cb6-3">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">slice_max</span>(plot_data, x),</span>
<span id="cb6-4">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">size =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">4</span></span>
<span id="cb6-5">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb6-6">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">new_scale_colour</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb6-7">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_colour_manual</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">values =</span> new_palette) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb6-8">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_text</span>(</span>
<span id="cb6-9">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">slice_max</span>(plot_data, x),</span>
<span id="cb6-10">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">label =</span> category, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">colour =</span> category),</span>
<span id="cb6-11">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">hjust =</span> <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.1</span>,</span>
<span id="cb6-12">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">size.unit =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"pt"</span>,</span>
<span id="cb6-13">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">size =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">14</span></span>
<span id="cb6-14">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb6-15">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_x_date</span>(</span>
<span id="cb6-16">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">date_labels =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"%b"</span>,</span>
<span id="cb6-17">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">breaks =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">seq</span>(</span>
<span id="cb6-18">      <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">as.Date</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"01-01-2024"</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">tryFormats =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"%d-%m-%Y"</span>),</span>
<span id="cb6-19">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">length.out =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">4</span>,</span>
<span id="cb6-20">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">by =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"3 months"</span></span>
<span id="cb6-21">    ),</span>
<span id="cb6-22">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">limits =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(</span>
<span id="cb6-23">      <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">as.Date</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"01-01-2024"</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">tryFormats =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"%d-%m-%Y"</span>),</span>
<span id="cb6-24">      <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">as.Date</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"01-02-2025"</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">tryFormats =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"%d-%m-%Y"</span>)</span>
<span id="cb6-25">    )</span>
<span id="cb6-26">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb6-27">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">legend.position =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"none"</span>)</span>
<span id="cb6-28">g</span></code></pre></div></div>
</details>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-6-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-5"><img src="https://nrennie.com/blog/2026-01-12-accessible-line-chart/index_files/figure-html/unnamed-chunk-6-1.png" class="img-fluid figure-img" style="width:100.0%" alt="An updated version of the previous chart with text labels identifying each line added at the right hand side where the line ends. The legend has been removed."></a></p>
</figure>
</div>
</div>
</div>
<p>Now, we have a much more accessible chart. There’s still some more work we can do around chart text but before we do that, let’s double check if this approach to line charts is always sufficient.</p>
<p>Let’s say we have a second data set. It’s still the same <em>type</em> of data e.g.&nbsp;continuous observations for four categories over time. Surely the same chart type should work for the same data type? Let’s check.</p>
<div class="cell">
<details class="code-fold">
<summary>Code</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb7" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb7-1">g2 <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>(</span>
<span id="cb7-2">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> plot_data2,</span>
<span id="cb7-3">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> x, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> y, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">colour =</span> category)</span>
<span id="cb7-4">) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb7-5">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_line</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">linewidth =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb7-6">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_colour_manual</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">values =</span> okabeito, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">guide =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"none"</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb7-7">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_x_date</span>(</span>
<span id="cb7-8">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">date_labels =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"%b"</span>,</span>
<span id="cb7-9">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">breaks =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">seq</span>(</span>
<span id="cb7-10">      <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">as.Date</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"01-01-2024"</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">tryFormats =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"%d-%m-%Y"</span>),</span>
<span id="cb7-11">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">length.out =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">4</span>,</span>
<span id="cb7-12">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">by =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"3 months"</span></span>
<span id="cb7-13">    ),</span>
<span id="cb7-14">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">limits =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(</span>
<span id="cb7-15">      <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">as.Date</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"01-01-2024"</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">tryFormats =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"%d-%m-%Y"</span>),</span>
<span id="cb7-16">      <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">as.Date</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"04-02-2025"</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">tryFormats =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"%d-%m-%Y"</span>)</span>
<span id="cb7-17">    )</span>
<span id="cb7-18">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb7-19">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">legend.position =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"none"</span>)</span>
<span id="cb7-20">g2 <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb7-21">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_point</span>(</span>
<span id="cb7-22">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">slice_max</span>(plot_data2, x),</span>
<span id="cb7-23">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">size =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">4</span></span>
<span id="cb7-24">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb7-25">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">new_scale_colour</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb7-26">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_colour_manual</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">values =</span> new_palette, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">guide =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"none"</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb7-27">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_text</span>(</span>
<span id="cb7-28">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">slice_max</span>(plot_data2, x),</span>
<span id="cb7-29">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">label =</span> category, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">colour =</span> category),</span>
<span id="cb7-30">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">hjust =</span> <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.1</span>,</span>
<span id="cb7-31">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">size.unit =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"pt"</span>,</span>
<span id="cb7-32">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">size =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">14</span></span>
<span id="cb7-33">  )</span></code></pre></div></div>
</details>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-7-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-6"><img src="https://nrennie.com/blog/2026-01-12-accessible-line-chart/index_files/figure-html/unnamed-chunk-7-1.png" class="img-fluid figure-img" style="width:100.0%" alt="The same styled chart as in the previous image but with different data. Although one line is still increasing, the lines are much more jagged and overlap more."></a></p>
</figure>
</div>
</div>
</div>
<p>Regardless of how well you can distinguish colours, it’s really hard to distinguish the lines from each other here. There’s lots of crossing over, and so the direct labels become ineffective.</p>
<p>Using different line types (e.g.&nbsp;dashed, dotted) is often suggested as a potential solution. However, using lines that are less <em>complete</em> compared to a solid line has the effect of reducing contrast of the line with the background and so it’s often not a great solution.</p>
<p>A similar but alternative approach is to use different symbols along each category line. So let’s try that.</p>
<div class="cell">
<details class="code-fold">
<summary>Code</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb8" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb8-1">g2 <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb8-2">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_text</span>(</span>
<span id="cb8-3">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">slice_max</span>(plot_data2, x),</span>
<span id="cb8-4">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">label =</span> category, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">colour =</span> category),</span>
<span id="cb8-5">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">hjust =</span> <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.1</span>,</span>
<span id="cb8-6">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">size.unit =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"pt"</span>,</span>
<span id="cb8-7">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">size =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">14</span></span>
<span id="cb8-8">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb8-9">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">new_scale_colour</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb8-10">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_colour_manual</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">values =</span> new_palette) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb8-11">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_point</span>(</span>
<span id="cb8-12">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">shape =</span> category, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">colour =</span> category),</span>
<span id="cb8-13">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">size =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">6</span></span>
<span id="cb8-14">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb8-15">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme</span>(</span>
<span id="cb8-16">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">legend.position =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"bottom"</span>,</span>
<span id="cb8-17">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">legend.title =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">element_blank</span>()</span>
<span id="cb8-18">  )</span></code></pre></div></div>
</details>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-8-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-7"><img src="https://nrennie.com/blog/2026-01-12-accessible-line-chart/index_files/figure-html/unnamed-chunk-8-1.png" class="img-fluid figure-img" style="width:100.0%" alt="The same chart as in the previous image but with the different symbols added alogn each line, including circles, triangles, squares, and crosses. A legend is added at the bottom. It looks busy and quite ugly."></a></p>
</figure>
</div>
</div>
</div>
<p>It’s might be more accessible in terms of distinguishing categories but it’s actually less accessible in terms of how easy it is to read and interpret. With a quick glance, how easy is it to see which line(s) are increasing? Not very.</p>
<p>Choosing a chart type isn’t just about the <em>type</em> of data, it’s also about the values in the data you are plotting. Sometimes you have to adapt or even throw away the chart you’ve made if it doesn’t work for your data.</p>
</section>
<section id="change-the-chart-type" class="level3">
<h3 class="anchored" data-anchor-id="change-the-chart-type">Change the chart type</h3>
<p>A good alternative to <em>spaghetti</em> line charts is small multiple line charts. Here, instead of one plot showing all four categories in different colours, we create four small line charts, each highlighting one category.</p>
<div class="cell">
<details class="code-fold">
<summary>Code</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb9" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb9-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme_set</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme_bw</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">base_size =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">16</span>))</span>
<span id="cb9-2">g2 <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">facet_wrap</span>(<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">~</span>category) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb9-3">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">gghighlight</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">use_direct_label =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">FALSE</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb9-4">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_x_date</span>(</span>
<span id="cb9-5">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">date_labels =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"%b"</span>,</span>
<span id="cb9-6">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">breaks =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">seq</span>(</span>
<span id="cb9-7">      <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">as.Date</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"01-01-2024"</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">tryFormats =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"%d-%m-%Y"</span>),</span>
<span id="cb9-8">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">length.out =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">4</span>,</span>
<span id="cb9-9">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">by =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"3 months"</span></span>
<span id="cb9-10">    ),</span>
<span id="cb9-11">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">limits =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(</span>
<span id="cb9-12">      <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">as.Date</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"01-01-2024"</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">tryFormats =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"%d-%m-%Y"</span>),</span>
<span id="cb9-13">      <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">as.Date</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"15-12-2024"</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">tryFormats =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"%d-%m-%Y"</span>)</span>
<span id="cb9-14">    )</span>
<span id="cb9-15">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb9-16">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">axis.title =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">element_blank</span>())</span></code></pre></div></div>
</details>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-9-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-8"><img src="https://nrennie.com/blog/2026-01-12-accessible-line-chart/index_files/figure-html/unnamed-chunk-9-1.png" class="img-fluid figure-img" style="width:100.0%" alt="Four small multiple line charts each with four lines. Three of the lines on each chart are shown in grey, and a different one is highlighted on each chart. The four highlighted lines are still different colours."></a></p>
</figure>
</div>
</div>
</div>
<p>The grey lines in the background still allow comparisons between categories, but it’s much easier to see the trend for each individual category now. However, with this new version of the chart, do we actually need colour? No, we don’t. Since the categories are on separately labelled charts, there’s no need for colours (or symbols) to differentiate. When thinking about colours in charts, we don’t want to rely on colour and we don’t want to over use colour. Let’s instead use it to highlight lines, rather than decorate with extra colours.</p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Tip
</div>
</div>
<div class="callout-body-container callout-body">
<p>If using brand colours in your charts is important to you, then small multiple charts with a single highlight colour will also likely look more on-brand than a single line chart with 4 or more colours. You can create a chart that is more accessible, more aesthetic, and more on-brand all at the same time!</p>
</div>
</div>
<div class="cell">
<details class="code-fold">
<summary>Code</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb10" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb10-1">g2 <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> g2 <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">facet_wrap</span>(<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">~</span>category) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb10-2">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_colour_manual</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">values =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">rep</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#91171F"</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5</span>)) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb10-3">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">gghighlight</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">use_direct_label =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">FALSE</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb10-4">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_x_date</span>(</span>
<span id="cb10-5">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">date_labels =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"%b"</span>,</span>
<span id="cb10-6">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">breaks =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">seq</span>(</span>
<span id="cb10-7">      <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">as.Date</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"01-01-2024"</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">tryFormats =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"%d-%m-%Y"</span>),</span>
<span id="cb10-8">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">length.out =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">4</span>,</span>
<span id="cb10-9">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">by =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"3 months"</span></span>
<span id="cb10-10">    ),</span>
<span id="cb10-11">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">limits =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(</span>
<span id="cb10-12">      <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">as.Date</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"01-01-2024"</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">tryFormats =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"%d-%m-%Y"</span>),</span>
<span id="cb10-13">      <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">as.Date</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"15-12-2024"</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">tryFormats =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"%d-%m-%Y"</span>)</span>
<span id="cb10-14">    )</span>
<span id="cb10-15">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb10-16">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">axis.title =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">element_blank</span>())</span>
<span id="cb10-17">g2</span></code></pre></div></div>
</details>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-10-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-9"><img src="https://nrennie.com/blog/2026-01-12-accessible-line-chart/index_files/figure-html/unnamed-chunk-10-1.png" class="img-fluid figure-img" style="width:100.0%" alt="The same chart as before but with the four highlighted lines now the same colour of red across all four."></a></p>
</figure>
</div>
</div>
</div>
</section>
<section id="make-use-of-chart-text" class="level3">
<h3 class="anchored" data-anchor-id="make-use-of-chart-text">Make use of chart text</h3>
<p>We can further improve our transformed chart by adding text, and adding it thoughtfully. A few tips for text:</p>
<ul>
<li>Chart text should be horizontal. People shouldn’t have to twist their neck to read category or axis labels.</li>
<li>Choose a sensible font. Much like colours, there isn’t a single font that’s the best choice for everyone. However, choose one that is familiar and where all letters and numbers are distinguishable. For example, make sure you check that an upper-case <code>I</code>, number <code>1</code>, and lower-case <code>l</code> look different.</li>
<li>Use <strong>narrative titles</strong> to summarise the chart. The title should describe the main trend in the chart. <a href="https://service-manual.ons.gov.uk/data-visualisation/guidance/chart-text#chart-titles" target="_blank">Users are more likely to understand and remember the main trend</a> from a chart where it is also in the chart title.</li>
</ul>
<p>We should also make sure that the y-axis labels are well-presented. Percentage data is often recorded between 0 and 1, but if we don’t transform that axis to be between 0 and 100% it’s not always clear whether a value of e.g.&nbsp;0.2 represents 20% or 0.2%.</p>
<div class="cell">
<details class="code-fold">
<summary>Code</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb11" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb11-1">g2_final <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> g2 <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">labs</span>(</span>
<span id="cb11-2">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">title =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Agreement with statement D increased during 2024"</span>,</span>
<span id="cb11-3">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">subtitle =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Percentage of people agreeing"</span>,</span>
<span id="cb11-4">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">NULL</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">NULL</span>,</span>
<span id="cb11-5">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">caption =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Source: Data simulated from a Uniform distribution"</span></span>
<span id="cb11-6">) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb11-7">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_y_continuous</span>(</span>
<span id="cb11-8">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">limits =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>),</span>
<span id="cb11-9">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">labels =</span> scales<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">label_percent</span>()</span>
<span id="cb11-10">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb11-11">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme</span>(</span>
<span id="cb11-12">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">plot.title =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">element_textbox_simple</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">face =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"bold"</span>),</span>
<span id="cb11-13">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">plot.subtitle =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">element_text</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">colour =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"grey50"</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">margin =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">margin</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">t =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">b =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5</span>)),</span>
<span id="cb11-14">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">plot.caption =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">element_text</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">hjust =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">colour =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"grey50"</span>),</span>
<span id="cb11-15">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">plot.title.position =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"plot"</span>,</span>
<span id="cb11-16">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">plot.caption.position =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"plot"</span>,</span>
<span id="cb11-17">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">axis.title =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">element_blank</span>()</span>
<span id="cb11-18">  )</span>
<span id="cb11-19">g2_final</span></code></pre></div></div>
</details>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-11-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-10"><img src="https://nrennie.com/blog/2026-01-12-accessible-line-chart/index_files/figure-html/unnamed-chunk-11-1.png" class="img-fluid figure-img" style="width:100.0%" alt="The same chart as before but with a narrative title reading Agreement with statement D increased during 2024 added."></a></p>
</figure>
</div>
</div>
</div>
</section>
<section id="before-and-after" class="level3">
<h3 class="anchored" data-anchor-id="before-and-after">Before and after</h3>
<p>Let’s compare what the default chart looks like (for our second messier dataset), with our transformed version.</p>
<div class="columns">
<div class="column">
<div class="cell">
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-12-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-11"><img src="https://nrennie.com/blog/2026-01-12-accessible-line-chart/index_files/figure-html/unnamed-chunk-12-1.png" class="img-fluid figure-img" style="width:100.0%" alt="A line chart with four lines. Three of the lines are very jagged, the other is increasing. The lines are quite thin and coloured pink, green, purple, and blue, against a grey background. A legend is on the right hand side. It's difficult to see the lines."></a></p>
</figure>
</div>
</div>
</div>
</div><div class="column">
<div class="cell">
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-13-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-12"><img src="https://nrennie.com/blog/2026-01-12-accessible-line-chart/index_files/figure-html/unnamed-chunk-13-1.png" class="img-fluid figure-img" style="width:100.0%" alt="Four small multiple line charts each with four lines. Three of the lines on each chart are shown in grey, and a different one is highlighted in red on each chart. The increasing trend in one of the categories is easy to see. A narrative title reads Agreement with statement D increased during 2024."></a></p>
</figure>
</div>
</div>
</div>
</div>
</div>
<p>I hope you’ll agree that the transformed version is much easier to read, more accessible, and more aesthetically pleasing.</p>
</section>
</section>
<section id="chart-alternatives" class="level2">
<h2 class="anchored" data-anchor-id="chart-alternatives">Chart alternatives</h2>
<p>When producing a chart, make sure you include <strong>alt text</strong> describing the chart. Alt text is read out by screen readers or used in place of an image if internet connection is poor. Amy Cesal’s advice for <a href="https://medium.com/nightingale/writing-alt-text-for-data-visualization-2a218ef43f81" target="_blank">Writing Alt Text for Data Visualization</a> is especially useful.</p>
<p><a href="images/alt_text.png" class="lightbox" data-gallery="quarto-lightbox-gallery-13"><img src="https://nrennie.com/blog/2026-01-12-accessible-line-chart/images/alt_text.png" class="img-fluid" style="width:100.0%" alt="A screenshot from the alt text which sats that is should include the chart type, type of data, the reason for including the chart, and a link to the data source"></a></p>
<p>Some software such as Word or PowerPoint may try to auto-generate alt text for images, including charts. It’s important that you check this yourself and re-write if needed, since auto-generated alt text often misses the <em>what’s the point?</em> aspect of the chart.</p>
<p>Make sure you also provide access to the data in the chart e.g.&nbsp;in the form of an accessible spreadsheet. This allows people who prefer table formats or who use a screen reader to interact with the data.</p>
</section>
<section id="summary" class="level2">
<h2 class="anchored" data-anchor-id="summary">Summary</h2>
<p>There’s isn’t an easy, formulaic way of designing the <em>best</em> and most accessible chart based solely on what type of data you have. And there isn’t a chart that <em>is</em> the best and most accessible chart for everyone because different people have different needs. The key things to think about are:</p>
<ul>
<li>What are you trying to show?</li>
<li>Who are you trying to show it to?</li>
<li>What type of data do you have and what are the values in that data?</li>
<li>What is the clearest way to communicate what you’re trying to show to as much of your audience as you can?</li>
</ul>
<p>You need to start by asking yourself those questions, actively trying different things, and being willing to throw them away if it’s not working. But mostly, if you’re designing things for humans, one of the best things you can do is go and talk to those humans about what they need.</p>
<div class="callout callout-style-default callout-note callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Note
</div>
</div>
<div class="callout-body-container callout-body">
<p>One thing I haven’t mentioned in this blog post is <strong>interactivity</strong>, and I’m not going to go into detail here because it’s a very big topic on it’s own. All I will say is that, interactivity done well can improve accessibility. Interactivity done badly can make it worse.</p>
<p>You can find some information on interactivity in data visualisation in the <a href="https://nrennie.rbind.io/talks/rss-conference-accessibility-official-statistics/" target="_blank">Accessibility in official statistics resources</a> from an RSS conference session in September 2025.</p>
</div>
</div>
</section>
<section id="resources" class="level2">
<h2 class="anchored" data-anchor-id="resources">Resources</h2>
<p>I’ll be speaking at <strong>Statistics for Every Body: Inclusive Data Communication for Audiences with Visual and Auditory Impairments</strong>. This is an online event jointly organised by the Celebrating Diversity SIG and the Statistical Ambassadors of the Royal Statistical Society. The event takes place on Wednesday 28th January 2026 from 12:00 - 13:30, and you can register via the <a href="https://rss.org.uk/training-events/events/events-2026/special-interest-group/statistics-for-every-body-(online)/" target="_blank">RSS website</a>. The <a href="https://nrennie.rbind.io/talks/rss-audio-visual-accessibility/" target="_blank">slides</a> will be available online soon.</p>
<p>The <a href="https://github.com/dataviza11y/resources" target="_blank">Dataviz Accessibility Resources list on GitHub</a> provides a non-exhaustive and in-progress list of people and resources in accessibility and data visualisation.</p>


</section>

<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-reuse"><h2 class="anchored quarto-appendix-heading">Reuse</h2><div class="quarto-appendix-contents"><div><a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></div></div></section><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Citation</h2><div><div class="quarto-appendix-secondary-label">BibTeX citation:</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{rennie2026,
  author = {Rennie, Nicola},
  title = {How to Create a More Accessible Line Chart},
  date = {2026-01-12},
  url = {https://nrennie.com/blog/2026-01-12-accessible-line-chart/},
  langid = {en}
}
</code></pre><div class="quarto-appendix-secondary-label">For attribution, please cite this work as:</div><div id="ref-rennie2026" class="csl-entry quarto-appendix-citeas">
Rennie, Nicola. 2026. <span>“How to Create a More Accessible Line
Chart.”</span> January 12. <a href="https://nrennie.com/blog/2026-01-12-accessible-line-chart/">https://nrennie.com/blog/2026-01-12-accessible-line-chart/</a>.
</div></div></section></div> ]]></description>
  <category>Data Visualisation</category>
  <category>R</category>
  <guid>https://nrennie.com/blog/2026-01-12-accessible-line-chart/</guid>
  <pubDate>Mon, 12 Jan 2026 00:00:00 GMT</pubDate>
  <media:content url="https://nrennie.com/blog/2026-01-12-accessible-line-chart/featured.png" medium="image" type="image/png" height="103" width="144"/>
</item>
<item>
  <title>My year in data visualisation</title>
  <dc:creator>Nicola Rennie</dc:creator>
  <link>https://nrennie.com/blog/2025-12-09-year-in-data-viz-2025/</link>
  <description><![CDATA[ 





<p>To close out 2025, here’s a quick round up of some of the things I’ve been up to, alongside highlighting some of my favourite data visualisations I’ve seen this year!</p>
<section id="looking-back-on-2025" class="level2">
<h2 class="anchored" data-anchor-id="looking-back-on-2025">Looking back on 2025</h2>
<p>2025 has been a very busy year! In March, I <a href="https://www.linkedin.com/posts/nicola-rennie_rstats-dataviz-datascience-activity-7300559300257607684-zUaO" target="_blank">changed jobs</a> and I’m now very lucky to work on data visualisation projects full time!</p>
<p>The other big data visualisation-related news for me this year is that the online version of my book is now available! <em>The Art of Data Visualization with <code>ggplot2</code></em> is a book of data visualisation case studies showing the end-to-end process of building charts, starting from data acquisition to custom styling, entirely in R.</p>
<div class="callout callout-style-default callout-important no-icon callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon no-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Important</span>The Art of Data Visualization with <code>ggplot2</code>
</div>
</div>
<div class="callout-body-container callout-body">
<p><em>The Art of Data Visualization with <code>ggplot2</code></em> will soon be published by CRC Press. You can read the online version at <a href="https://nrennie.rbind.io/art-of-viz/" target="_blank">nrennie.rbind.io/art-of-viz</a>.</p>
</div>
</div>
<p>I delivered 21 public talks and workshops this year, with about half of them being in-person. A personal highlight was giving the keynote at <a href="https://wombat2025.numbat.space/" target="_blank">WOMBAT</a> in Melbourne. You can find the resources for most of these talks linked on <a href="https://nrennie.rbind.io/talks/" target="_blank">my website</a>.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/melbourne.jpg" class="lightbox" data-gallery="quarto-lightbox-gallery-1" title="Looking along the Yarra River (Birrarung) in Melbourne"><img src="https://nrennie.com/blog/2025-12-09-year-in-data-viz-2025/images/melbourne.jpg" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt="Photo looking down the Yarra in Melbourne"></a></p>
</figure>
</div>
<figcaption>Looking along the Yarra River (Birrarung) in Melbourne</figcaption>
</figure>
</div>
<p>I also finally got around to bringing together most of the charts and maps I’ve made over the last five years into one place - a <a href="https://nrennie.rbind.io/viz-gallery/" target="_blank">visualisation gallery</a> where you can browse charts by year and the software used to make them. I’d forgotten I’d made some of those charts so it was a nice trip down memory lane bringing them together! In 2026, I’ll be working to add links to code and interactive versions within the gallery.</p>
<p>Here’s one more (very abstract) chart summarising my year in data visualisation 👇 Can you guess what the four variables are?</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/year-in-viz.png" class="lightbox" data-gallery="quarto-lightbox-gallery-2"><img src="https://nrennie.com/blog/2025-12-09-year-in-data-viz-2025/images/year-in-viz.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt="Abstract chart consisting of four timeline charts with bars, lines, and dots"></a></p>
</figure>
</div>
<section id="favourite-things-ive-made" class="level3">
<h3 class="anchored" data-anchor-id="favourite-things-ive-made">Favourite things I’ve made</h3>
<p>This one isn’t really a data visualisation as such, but building a TARDIS from scratch was fun project and I learnt a lot in the process. There are multiple datasets sitting behind this, specifying every rectangle, line, and letter - which were all populated by hand! Then I used D3 to actually build it and add the interactivity, which you can explore <a href="https://nrennie.rbind.io/doctor-who/" target="_blank">online</a>. You can also read the <a href="https://nrennie.rbind.io/blog/build-your-own-tardis-d3/" target="_blank">blog post explaining how it was built</a>.</p>
<p><img src="https://nrennie.rbind.io/viz-gallery/images/JavaScript/2025/tardis.gif" class="img-fluid quarto-figure quarto-figure-center" style="width:100.0%" alt="Gif of screen recording showing tooltips on TARDIS from Doctor Who revealing fun facts"> In terms of more traditional data visualisations, one of my favourite ones to make was this small multiple chart of how passport strengths have changed over time in different continents. Although if I could change one thing, I’d switch the yellow for something with a bit more contrast!</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="https://raw.githubusercontent.com/nrennie/tidytuesday/refs/heads/main/2025/2025-09-09/20250909.png" class="lightbox" data-gallery="quarto-lightbox-gallery-3"><img src="https://raw.githubusercontent.com/nrennie/tidytuesday/refs/heads/main/2025/2025-09-09/20250909.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt="Small multiples chart of passport strength over time"></a></p>
</figure>
</div>
</section>
<section id="favourite-things-ive-seen" class="level3">
<h3 class="anchored" data-anchor-id="favourite-things-ive-seen">Favourite things I’ve seen</h3>
<p>These are a few of my favourite things (that are related to data visualisation and that I’ve seen for the first time in 2025):</p>
<ul>
<li><p>The <a href="https://github.com/MikeLydeamore/ggplot2-battles" target="_blank"><code>ggplot2</code> battles</a> from <a href="https://github.com/MikeLydeamore/ggplot2-battles" target="_blank">Mike Lydeamore</a> is one of the coolest things I’ve seen! It challenges users to recreate a <code>ggplot2</code> chart as closely as possible using R code directly in their browser. It’s a really unique teaching resource, and it’s all powered by webR in the background!</p></li>
<li><p>I’ve really enjoyed playing with <a href="https://svelteplot.dev/" target="_blank">SveltePlot</a> so far, which brings the grammar of graphics to Svelte. The documentation is also incredibly good with a use gallery of examples and the accompanying code.</p></li>
<li><p>I absolutely love sketchy looking charts and have been using <a href="https://roughjs.com/" target="_blank">Rough.js</a> for a while, so I’m really excited to see <a href="https://observablehq.com/@jwolondon/making-plot-sketchy?collection=@jwolondon/sketchy" target="_blank">Making Plot Sketchy</a> - an Observable Plot plugin to render Observable charts in Rough.js sketchy style!</p></li>
</ul>
</section>
</section>
<section id="five-years-of-tidytuesday" class="level2">
<h2 class="anchored" data-anchor-id="five-years-of-tidytuesday">Five years of TidyTuesday</h2>
<p>The end of 2025 also marks five full years of <a href="https://github.com/rfordatascience/tidytuesday" target="_blank">TidyTuesday</a> contributions for me!</p>
<p>Although TidyTuesday has been around since 2018, it was only in January 2021 that I started making charts every week and posting them on social media. Here’s the very first chart I made 👇</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="https://raw.githubusercontent.com/nrennie/tidytuesday/refs/heads/main/2021/05-01-2021/05012021.jpg" class="lightbox" data-gallery="quarto-lightbox-gallery-4"><img src="https://raw.githubusercontent.com/nrennie/tidytuesday/refs/heads/main/2021/05-01-2021/05012021.jpg" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt="Gantt chart showing transit projects over time which are colour coded by costs"></a></p>
</figure>
</div>
<p>I don’t think I had any idea how long I’d keep going with TidyTuesday or how far it would take me. I certainly never expected to be sitting here having just finished writing a book about some of the charts I’ve made on those Tuesday evenings!</p>
<p>For me, TidyTuesday is first and foremost a place to play with data and learn new things - trying different programming languages (Python, Julia, JavaScript); figuring out how to make a new chart type; and playing with ideas to see what works. If you’re wondering whether or not to make and share something for TidyTuesday, I’d highly recommend it.</p>
<p>Here’s to another year of TidyTuesday in 2026!</p>
</section>
<section id="whats-next-in-2026" class="level2">
<h2 class="anchored" data-anchor-id="whats-next-in-2026">What’s next in 2026?</h2>
<p>I have quite a few talks and workshops already lined up for the first half of 2026 - with more details coming soon! Registration is open for <a href="https://rss.org.uk/training-events/events/events-2026/special-interest-group/statistics-for-every-body-(online)/" target="_blank">Statistics for Every Body: Inclusive Data Communication for Audiences with Visual and Auditory Impairments</a> which will take place online on Wednesday 28 January 2026, 12.00PM - 1.30PM (GMT) and is free to attend. Alongside other speakers, I’ll be talking about some <a href="https://nrennie.rbind.io/talks/rss-audio-visual-accessibility/" target="_blank">practical tips for making visual outputs more accessible</a>.</p>
<p>The print version of <a href="https://nrennie.rbind.io/art-of-viz/" target="_blank">The Art of Data Visualization with <code>ggplot2</code></a> will also be available in 2026 - keep your eyes peeled for further information!</p>


</section>

<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-reuse"><h2 class="anchored quarto-appendix-heading">Reuse</h2><div class="quarto-appendix-contents"><div><a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></div></div></section><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Citation</h2><div><div class="quarto-appendix-secondary-label">BibTeX citation:</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{rennie2025,
  author = {Rennie, Nicola},
  title = {My Year in Data Visualisation},
  date = {2025-12-09},
  url = {https://nrennie.com/blog/2025-12-09-year-in-data-viz-2025/},
  langid = {en}
}
</code></pre><div class="quarto-appendix-secondary-label">For attribution, please cite this work as:</div><div id="ref-rennie2025" class="csl-entry quarto-appendix-citeas">
Rennie, Nicola. 2025. <span>“My Year in Data Visualisation.”</span>
December 9. <a href="https://nrennie.com/blog/2025-12-09-year-in-data-viz-2025/">https://nrennie.com/blog/2025-12-09-year-in-data-viz-2025/</a>.
</div></div></section></div> ]]></description>
  <category>R</category>
  <category>Data Visualisation</category>
  <category>TidyTuesday</category>
  <guid>https://nrennie.com/blog/2025-12-09-year-in-data-viz-2025/</guid>
  <pubDate>Tue, 09 Dec 2025 00:00:00 GMT</pubDate>
  <media:content url="https://nrennie.com/blog/2025-12-09-year-in-data-viz-2025/featured.png" medium="image" type="image/png" height="103" width="144"/>
</item>
<item>
  <title>Create custom GPS route maps in R</title>
  <dc:creator>Nicola Rennie</dc:creator>
  <link>https://nrennie.com/blog/2025-11-23-gps-route-map-r/</link>
  <description><![CDATA[ 





<p>Ever thought about using R to make a poster? This blog post is going to walk through the process of creating a custom GPS route map that you can print out and hang on the wall. So whether you’re a runner or cyclist looking to make some new home decor (or you need a gift idea for someone who is) or just looking to learn a bit more about the things you can do with spatial data in R, then read on!</p>
<div class="callout callout-style-default callout-note callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Note
</div>
</div>
<div class="callout-body-container callout-body">
<p>It’s currently November which means it’s the month of the <a href="https://30daymapchallenge.com/" target="_blank">#30DayMapChallenge</a>! This map is a recreation of <a href="https://github.com/nrennie/30DayMapChallenge/tree/main/2025" target="_blank">one I created</a> for the “My Data” prompt on day 4 of the 2025 edition of the challenge.</p>
</div>
</div>
<section id="data" class="level2">
<h2 class="anchored" data-anchor-id="data">Data</h2>
<p>We’re going to be using two different sources of spatial data for this map:</p>
<ul>
<li>A GPS file of a run route or race that you have recorded or downloaded; and</li>
<li>Background data from OpenStreetMap that we’ll be accessing through the <strong><code>osmdata</code></strong> R package.</li>
</ul>
<div class="callout callout-style-default callout-note callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Note
</div>
</div>
<div class="callout-body-container callout-body">
<p>I’ll be talking about plotting a <em>run</em> throughout this blog post, but it works for any GPS data. Substitute the word <em>run</em> for cycle, walk, drive, or something else.</p>
</div>
</div>
<section id="loading-gps-data" class="level3">
<h3 class="anchored" data-anchor-id="loading-gps-data">Loading GPS data</h3>
<p>If you use a GPS watch and/or app to track your runs, you should be able to download a <code>.gpx</code> file for a specific run. If you don’t, many races will have a <code>.gpx</code> file for the route somewhere on their website that you can use instead.</p>
<p>To make it easier for you to run the code in the examples below, we’ll use a GPS file for the route of the Strathearn Marathon that you can dowload from the <a href="https://www.strathearnharriers.org.uk/our-races/strathearn-marathon/route-map" target="_blank">race website</a>. Assuming that you’ve managed to obtain a <code>.gpx</code> file of the route you want to plot, we can load it into R using the <strong><code>gpx</code></strong> package:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb1-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(gpx)</span>
<span id="cb1-2">raw_gpx <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">read_gpx</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"strathearn-marathon.gpx"</span>)</span></code></pre></div></div>
</div>
</section>
<section id="processing-gps-data" class="level3">
<h3 class="anchored" data-anchor-id="processing-gps-data">Processing GPS data</h3>
<p>We need to do a little bit of processing on the GPS data to get it into the right shape for plotting on a map. Let’s start by loading in the <strong><code>tidyverse</code></strong> and <strong><code>sf</code></strong> packages for data processing and working with spatial data, respectively.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb2-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(tidyverse)</span>
<span id="cb2-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(sf)</span></code></pre></div></div>
</div>
<p>If you inspect the <code>raw_gpx</code> object, you’ll see that it’s a nested list of different R objects. We want to extract the complete race route from the <code>tracks</code> element, which we can do using the <code>$</code> operator. We’ll then convert it to a <code>tibble</code> to make it more pleasant to work with, before making it into a spatial data object using <code>st_as_sf()</code>. Note that we set the <code>crs</code> (coordinate reference system) as <code>4326</code> which is the code for the World Geodetic System 1984 (WGS 84), used as standard in global GPS systems.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb3-1">points_data <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> raw_gpx<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>tracks<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">`</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">Strathearn Marathon Complete</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">`</span> <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb3-2">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">as_tibble</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb3-3">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">st_as_sf</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">coords =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Longitude"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Latitude"</span>), <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">crs =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">4326</span>)</span></code></pre></div></div>
</div>
<p>The raw data is provided as a series of points, but we’re planning to plot the route that connects those points. Though we could do that within the plotting, it’s easier if we convert it to the correct type of spatial instead. We combine all of the points into one object, and then cast it to a line using <code>st_combine()</code> and <code>st_cast()</code>.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb4" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb4-1">line_data <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> points_data <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb4-2">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">st_combine</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb4-3">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">st_cast</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"LINESTRING"</span>)</span></code></pre></div></div>
</div>
</section>
<section id="background-map-data" class="level3">
<h3 class="anchored" data-anchor-id="background-map-data">Background map data</h3>
<p>Optionally, we might want to provide a little bit of context for the race route by including a minimal background map. Here, we’re going to add all of the other roads and footpaths that exist around the map in the background.</p>
<p>The first thing we need to do is get the bounding box for the race route i.e.&nbsp;the minimum and maximum latitude and longitude of the route. We can do this using the <code>st_bbox()</code> function from the <strong><code>sf</code></strong> package.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb5" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb5-1">bbx <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">st_bbox</span>(line_data)</span></code></pre></div></div>
</div>
<p>When we’re getting the background map data, we probably don’t want to just go exactly to the edges of the bounding box. Instead, it’s going to look much nicer if we add a little bit of a buffer around the edges. When working with distances, it’s often better to work in a local coordinate reference system rather than a global one. We’re going to convert our route data into the British National Grid (BNG) coordinate reference system (<code>27700</code>), apply the buffer, and then convert it back.</p>
<p>Let’s transform the data, and get an updated bounding box:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb6" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb6-1">line_proj <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">st_transform</span>(line_data, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">crs =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">27700</span>)</span>
<span id="cb6-2">bbx <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">st_bbox</span>(line_proj)</span></code></pre></div></div>
</div>
<p>Now we can add a buffer of 500 metres so the north, south, east, and west of the bounding box:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb7" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb7-1">buffer <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">500</span></span>
<span id="cb7-2">bbx_expanded <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> bbx</span>
<span id="cb7-3">bbx_expanded[<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"xmin"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"ymin"</span>)] <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> bbx_expanded[<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"xmin"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"ymin"</span>)] <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span> buffer</span>
<span id="cb7-4">bbx_expanded[<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"xmax"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"ymax"</span>)] <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> bbx_expanded[<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"xmax"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"ymax"</span>)] <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> buffer</span></code></pre></div></div>
</div>
<p>Before converting the new, expanded bounding box back to the original CRS:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb8" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb8-1">bbx_expanded <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">st_bbox</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">st_as_sfc</span>(bbx_expanded), <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">crs =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">27700</span>)</span>
<span id="cb8-2">bbx_expanded <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">st_transform</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">st_as_sfc</span>(bbx_expanded), <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">crs =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">4326</span>)</span></code></pre></div></div>
</div>
<blockquote class="blockquote">
<p>As suggested by <a href="https://github.com/geodarcy" target="_blank">geodarcy</a>, you could also use <code>st_buffer(units::set_units(500, "m"))</code> to add a buffer around the route data.</p>
</blockquote>
<p>Now, we’re ready to use the <strong><code>osmdata</code></strong> package to access OpenStreetMap to get the background data. We pass our bounding box into the <code>opq()</code> function to build an Overpass query, and then specify which features we want to return. Here I’ve returned objects which are classed as a <code>"highway"</code>, which includes both roads and footpaths. You can be more specific in your query depending on what type and how many roads you want to return. The area in this example is fairly rural, so I want all of the smaller paths too. If you’re plotting a much more urban, or larger area, you might only want to return the larger roads.</p>
<p>We also use the <code>osmdata_sf()</code> function to return an <code>sf</code> object to make it easier for plotting later on.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb9" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb9-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(osmdata)</span>
<span id="cb9-2">highways <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> bbx_expanded <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb9-3">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">opq</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb9-4">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">add_osm_feature</span>(</span>
<span id="cb9-5">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">key =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"highway"</span>,</span>
<span id="cb9-6">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">value =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(</span>
<span id="cb9-7">      <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"primary"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"secondary"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"tertiary"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"residential"</span>,</span>
<span id="cb9-8">      <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"living_street"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"service"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"unclassified"</span>,</span>
<span id="cb9-9">      <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"pedestrian"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"footway"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"track"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"path"</span></span>
<span id="cb9-10">    )</span>
<span id="cb9-11">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb9-12">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">osmdata_sf</span>()</span></code></pre></div></div>
</div>
<p>OpenStreetMap returns any road that exists inside our bounding box, but it doesn’t trim the road to the size of the bounding box itself. For example, if a road extends beyond the edges, it still returns the whole road. To make our map look nice, we want to trim off the straggly roads around the edges, and we can do that by using <code>st_crop()</code> to trim the lines returned to the edges of the bounding box.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb10" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb10-1">roads_cropped <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">st_crop</span>(highways<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>osm_lines, bbx_expanded)</span></code></pre></div></div>
</div>
</section>
</section>
<section id="making-the-map" class="level2">
<h2 class="anchored" data-anchor-id="making-the-map">Making the map</h2>
<p>Now that we have all of the data we need, we’re ready to start mapping!</p>
<section id="setting-up-chart-variables" class="level3">
<h3 class="anchored" data-anchor-id="setting-up-chart-variables">Setting up chart variables</h3>
<p>When you’re designing with the main purpose of making something aesthetically pleasing, it can take a little bit of trial and error to find the <em>right</em> colours and fonts. To make it easier to switch between different colours and fonts, I usually start by defining variables for them. This means that if I want to change the colour to something different, I only need to edit it in one place in my code.</p>
<p>Let’s start by loading and setting up our fonts. I often use the <strong><code>showtext</code></strong> package for fonts in R, because it gives easy access to <a href="https://fonts.google.com/" target="_blank">Google Fonts</a>. This means I never have to worry about me (or a collaborator) having the correct fonts installed on my laptop. We’re making a poster, so I’m going to pick a nice bold, display font. Here. I’ll use <em>Oswald</em>.</p>
<p>We run <code>showtext_auto()</code> to tell R that we’re using <strong><code>showtext</code></strong> for fonts, and then <code>showtext_opts()</code> to set our desired resolution. This helps to make sure that our fonts are sized correctly when we later save an image. Optionally, we also add a variable, <code>body_font</code>, to store the name of the font.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb11" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb11-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(showtext)</span>
<span id="cb11-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">font_add_google</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Oswald"</span>)</span>
<span id="cb11-3"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">showtext_auto</span>()</span>
<span id="cb11-4"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">showtext_opts</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">dpi =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">300</span>)</span>
<span id="cb11-5">body_font <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Oswald"</span></span></code></pre></div></div>
</div>
<p>We’re also going to set up variables for the colours of the map background, the route line, and the text using hex codes to specify the colours. The <code>map_route_col</code> variable will also serve as the main background colour, but you might choose to define another colour if you want to.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb12" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb12-1">map_bg_col <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#33658A"</span></span>
<span id="cb12-2">map_route_col <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"grey90"</span></span>
<span id="cb12-3">text_col <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"grey10"</span></span></code></pre></div></div>
</div>
<p>I want to add one more colour that will be used to draw the lines for roads and paths in the background of the map. When adding those lines, I want them to be similar to the <code>map_bg_col</code> colour, but slightly darker. One tool I often use when trying to find lighter or darker shades of a colour is <a href="https://coolors.co/92140c-fff8f0-33658a-ffcf99-7ea172" target="_blank">coolors.co</a>.</p>
<p>However, we can also do it programmatically using the <a href="https://github.com/cararthompson/monochromeR" target="_blank"><strong><code>monochromeR</code></strong> package from Cara Thompson</a>. Let’s start with the <code>map_bg_col</code> colour and see what some of the darker shades look like:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb13" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb13-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(monochromeR)</span>
<span id="cb13-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">generate_palette</span>(</span>
<span id="cb13-3">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">colour =</span> map_bg_col,</span>
<span id="cb13-4">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">modification =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"go_darker"</span>,</span>
<span id="cb13-5">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">n_colours =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">7</span>,</span>
<span id="cb13-6">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">view_palette =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">TRUE</span></span>
<span id="cb13-7">)</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-14-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1"><img src="https://nrennie.com/blog/2025-11-23-gps-route-map-r/index_files/figure-html/unnamed-chunk-14-1.png" class="img-fluid figure-img" width="1050"></a></p>
</figure>
</div>
</div>
<div class="cell-output cell-output-stdout">
<pre><code>[1] "#33658A" "#2C5777" "#254A65" "#1E3C52" "#172F40" "#11212E" "#0A141B"</code></pre>
</div>
</div>
<p>We can set the line colour to be the third of these values:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb15" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb15-1">map_line_col <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">generate_palette</span>(</span>
<span id="cb15-2">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">colour =</span> map_bg_col,</span>
<span id="cb15-3">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">modification =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"go_darker"</span>,</span>
<span id="cb15-4">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">n_colours =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">7</span></span>
<span id="cb15-5">)[<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span>]</span></code></pre></div></div>
</div>
</section>
<section id="plotting-an-initial-map" class="level3">
<h3 class="anchored" data-anchor-id="plotting-an-initial-map">Plotting an initial map</h3>
<p>Let’s get started …</p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span>Previewing plots
</div>
</div>
<div class="callout-body-container callout-body">
<p>If you’re planning to print your map and hang it on the wall, it’s a good idea to preview it at the same size and resolution that you’ll be printing it at. This helps to make sure the fonts and lines look goodwhen saved as a PNG file. If you’re an RStudio user, then either <strong><code>camcorder</code></strong> or <strong><code>ggview</code></strong> can help with those pesky differences between plot previews and the version saved with <code>ggsave()</code>.</p>
<p>The example below uses a height of 8 inches and a width of 6 inches.</p>
</div>
</div>
<p>Although we already have our colours set up, I tend not to add them on the first draft as the aim of that is just to check that the building blocks of the code work. Here, we start with <code>ggplot()</code> as we normally would, though leaving the <code>data</code> and <code>mapping</code> arguments blank as we’re using multiple different data sources.</p>
<p>We can use <code>geom_sf()</code> to add in the roads data from OpenStreetMap, noting that we don’t need to specify a mapping with <code>aes()</code> here because <strong><code>ggplot2</code></strong> knows how to interpret <code>sf</code> objects already. We then use <code>geom_sf()</code> again to add the data for the route on top. Finally, we take the first and last points of the route data and again plot them using <code>geom_sf()</code> to show the start and end points of the route.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb16" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb16-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb16-2">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_sf</span>(</span>
<span id="cb16-3">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> roads_cropped</span>
<span id="cb16-4">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb16-5">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_sf</span>(</span>
<span id="cb16-6">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> line_data</span>
<span id="cb16-7">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb16-8">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_sf</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">head</span>(points_data, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>)) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb16-9">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_sf</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">tail</span>(points_data, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>))</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-16-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-2"><img src="https://nrennie.com/blog/2025-11-23-gps-route-map-r/index_files/figure-html/unnamed-chunk-16-1.png" class="img-fluid figure-img" width="900"></a></p>
</figure>
</div>
</div>
</div>
<p>Arguably, since the start and end points are (almost) the same place, there’s a perhaps not much use in adding both so you might choose not to add them.</p>
</section>
<section id="styling-your-map" class="level3">
<h3 class="anchored" data-anchor-id="styling-your-map">Styling your map</h3>
<p>All of the lines are quite prominent on the initial draft, and it’s very hard to see the actual route on the first version since it sits directly on top of the background roads with the same colour and linewidth. Let’s start styling our map by updating the colours and linewidths for all of the basic <code>sf</code> objects.</p>
<p>We’ll also save the updated plot as a variable to keep our code tidy as we add more styling later on. To make sure that our roads go the edge of the plotting area, without the default padding around it, we set <code>expand = FALSE</code> inside <code>coord_sf()</code>:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb17" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb17-1">base_map <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb17-2">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_sf</span>(</span>
<span id="cb17-3">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> roads_cropped,</span>
<span id="cb17-4">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">colour =</span> map_line_col,</span>
<span id="cb17-5">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">linewidth =</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.5</span></span>
<span id="cb17-6">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb17-7">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_sf</span>(</span>
<span id="cb17-8">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> line_data,</span>
<span id="cb17-9">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">colour =</span> map_route_col,</span>
<span id="cb17-10">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">linewidth =</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">1.5</span></span>
<span id="cb17-11">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb17-12">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_sf</span>(</span>
<span id="cb17-13">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">head</span>(points_data, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>),</span>
<span id="cb17-14">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">colour =</span> map_route_col,</span>
<span id="cb17-15">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">size =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span></span>
<span id="cb17-16">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb17-17">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_sf</span>(</span>
<span id="cb17-18">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">tail</span>(points_data, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>),</span>
<span id="cb17-19">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">colour =</span> map_route_col,</span>
<span id="cb17-20">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">size =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span></span>
<span id="cb17-21">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb17-22">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">coord_sf</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">expand =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">FALSE</span>)</span>
<span id="cb17-23">base_map</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-17-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-3"><img src="https://nrennie.com/blog/2025-11-23-gps-route-map-r/index_files/figure-html/unnamed-chunk-17-1.png" class="img-fluid figure-img" width="900"></a></p>
</figure>
</div>
</div>
</div>
<p>This is already looking a lot neater than the first draft, though it’s still hard to see the route since it’s so close in colour to the background. Sometimes it’s more helpful to choose a bold, <em>ugly</em> colour for a first draft to check everything is working!</p>
<p>We have two more things to do before we’re finished making this map:</p>
<ul>
<li>Add some text with the race name and date (for example);</li>
<li>Apply the colours we’ve selected for the background.</li>
</ul>
<p>Let’s start with the text. Here, I’m going to set the title as the name of the race, and the subtitle as the date of the race. For both, I use <code>str_to_upper()</code> to format all of the text in uppercase, to give it more of a <em>poster</em> look.</p>
<p>For the caption, I want to include two different pieces of information: my name, and my race number. To make it clear they are separate pieces of information, I’m going to make one larger and darker. To apply formatting to only part of the text, we can add HTML <code>&lt;span&gt;&lt;/span&gt;</code> tags within the character string. Later, we’ll use the <strong><code>ggtext</code></strong> package to make sure the HTML formats correctly. Alternatively, you can use the <strong><code>marquee</code></strong> package in a similar way.</p>
<p>We also use the <strong><code>glue</code></strong> package here to pull in the variable we set earlier for the text colour.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb18" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb18-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(glue)</span>
<span id="cb18-2">text_map <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> base_map <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb18-3">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">labs</span>(</span>
<span id="cb18-4">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">title =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">str_to_upper</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Strathearn Marathon"</span>),</span>
<span id="cb18-5">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">subtitle =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">str_to_upper</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"12 June 2016"</span>),</span>
<span id="cb18-6">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">caption =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">glue</span>(</span>
<span id="cb18-7">      <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"&lt;span style='color: {text_col}; font-size:16pt;'&gt;**NICOLA RENNIE**&lt;/span&gt; #168"</span></span>
<span id="cb18-8">    )</span>
<span id="cb18-9">  )</span></code></pre></div></div>
</div>
<p>The last step is to tell <strong><code>ggplot2</code></strong> to use <strong><code>ggtext</code></strong> for the caption, remove the extra parts of the theming we don’t want, and apply our colours. We can remove most of the default theme parts using <code>theme_void()</code>, setting the default font and size at the same time.</p>
<p>We then adjust the plot (default white) and panel (default grey) backgrounds to our colour variables, adjust the margins, and style the text. Here, I use a slight transparency on the subtitle and caption to get a lighter shade.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb19" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb19-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(ggtext)</span>
<span id="cb19-2">text_map <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb19-3">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme_void</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">base_family =</span> body_font, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">base_size =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">13</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb19-4">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme</span>(</span>
<span id="cb19-5">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">panel.background =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">element_rect</span>(</span>
<span id="cb19-6">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">fill =</span> map_bg_col, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">colour =</span> map_bg_col</span>
<span id="cb19-7">    ),</span>
<span id="cb19-8">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">plot.background =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">element_rect</span>(</span>
<span id="cb19-9">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">fill =</span> map_route_col, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">colour =</span> map_route_col</span>
<span id="cb19-10">    ),</span>
<span id="cb19-11">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">plot.margin =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">margin</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">20</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">20</span>),</span>
<span id="cb19-12">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">plot.title =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">element_text</span>(</span>
<span id="cb19-13">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">colour =</span> text_col,</span>
<span id="cb19-14">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">hjust =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>,</span>
<span id="cb19-15">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">lineheight =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>,</span>
<span id="cb19-16">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">face =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"bold"</span>,</span>
<span id="cb19-17">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">size =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">rel</span>(<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">1.6</span>)</span>
<span id="cb19-18">    ),</span>
<span id="cb19-19">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">plot.subtitle =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">element_text</span>(</span>
<span id="cb19-20">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">colour =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">alpha</span>(text_col, <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.7</span>),</span>
<span id="cb19-21">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">hjust =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>,</span>
<span id="cb19-22">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">margin =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">margin</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">b =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">t =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5</span>),</span>
<span id="cb19-23">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">lineheight =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span></span>
<span id="cb19-24">    ),</span>
<span id="cb19-25">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">plot.caption =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">element_textbox_simple</span>(</span>
<span id="cb19-26">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">colour =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">alpha</span>(text_col, <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.7</span>),</span>
<span id="cb19-27">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">hjust =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>,</span>
<span id="cb19-28">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">halign =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>,</span>
<span id="cb19-29">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">margin =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">margin</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">b =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">t =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span>),</span>
<span id="cb19-30">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">lineheight =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span></span>
<span id="cb19-31">    )</span>
<span id="cb19-32">  )</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-19-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-4"><img src="https://nrennie.com/blog/2025-11-23-gps-route-map-r/index_files/figure-html/unnamed-chunk-19-1.png" class="img-fluid figure-img" width="900"></a></p>
</figure>
</div>
</div>
</div>
<p>Finally, we can save our map as a PNG file (or your preferred format) ready for printing! Since we’re using spatial data which has it’s own fixed aspect ratio this sometimes means there’s a little bit of extra white space either at the top/bottom or left/right of the saved chart. Setting the <code>bg</code> element equal to our chosen background colour fixes this.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb20" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb20-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggsave</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"strathearn-map.png"</span>,</span>
<span id="cb20-2">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">height =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">8</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">width =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">6</span>,</span>
<span id="cb20-3">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">bg =</span> map_route_col</span>
<span id="cb20-4">)</span></code></pre></div></div>
</div>
<p>Now you’re ready to get it printed and framed!</p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span>Looking for more map tutorials in R?
</div>
</div>
<div class="callout-body-container callout-body">
<p>There’s a whole section on visualizing spatial data in <a href="https://nrennie.rbind.io/art-of-viz/spatial.html" target="_blank">The Art of Visualization with <code>ggplot2</code></a> where you can learn how to make choropleth maps, plot world maps with custom legends, and create small multiple grid maps.</p>
</div>
</div>


</section>
</section>

<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-reuse"><h2 class="anchored quarto-appendix-heading">Reuse</h2><div class="quarto-appendix-contents"><div><a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></div></div></section><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Citation</h2><div><div class="quarto-appendix-secondary-label">BibTeX citation:</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{rennie2025,
  author = {Rennie, Nicola},
  title = {Create Custom {GPS} Route Maps in {R}},
  date = {2025-11-23},
  url = {https://nrennie.com/blog/2025-11-23-gps-route-map-r/},
  langid = {en}
}
</code></pre><div class="quarto-appendix-secondary-label">For attribution, please cite this work as:</div><div id="ref-rennie2025" class="csl-entry quarto-appendix-citeas">
Rennie, Nicola. 2025. <span>“Create Custom GPS Route Maps in R.”</span>
November 23. <a href="https://nrennie.com/blog/2025-11-23-gps-route-map-r/">https://nrennie.com/blog/2025-11-23-gps-route-map-r/</a>.
</div></div></section></div> ]]></description>
  <category>Data Visualisation</category>
  <category>R</category>
  <category>Maps</category>
  <guid>https://nrennie.com/blog/2025-11-23-gps-route-map-r/</guid>
  <pubDate>Sun, 23 Nov 2025 00:00:00 GMT</pubDate>
  <media:content url="https://nrennie.com/blog/2025-11-23-gps-route-map-r/featured.png" medium="image" type="image/png" height="103" width="144"/>
</item>
<item>
  <title>Generative AI for Data Visualisation</title>
  <dc:creator>Nicola Rennie</dc:creator>
  <link>https://nrennie.com/blog/2025-10-08-gen-ai-data-viz/</link>
  <description><![CDATA[ 





<p>Generative AI tools have been around for a little while now, and they’re mostly advertised as being able to help you with writing, coding, and reasoning. Different AI tools are designed for different types of tasks, so I wanted to see how some of the most commonly used tools compare to each other when used for data visualisation. I’m going to compare four different generative AI tools - ChatGPT, Claude, Copilot, and Gemini. Using the free tier of each tool, I’m going to give them two different datasets with a prompt to create a chart.</p>
<section id="prompts" class="level2">
<h2 class="anchored" data-anchor-id="prompts">Prompts</h2>
<p>I didn’t want to use well-known datasets like <code>penguins</code> or <code>titanic</code> since there are so many examples of charts of those datasets already in existence. I wanted to see how well they would do with new(ish) data. If you’ve been following these blog posts for a little while, it’s probably not a surprise that I turned to <a href="https://github.com/rfordatascience/tidytuesday/" target="_blank">TidyTuesday</a> to find some data!</p>
<section id="prompt-1-weather-forecast-data" class="level3">
<h3 class="anchored" data-anchor-id="prompt-1-weather-forecast-data">Prompt 1: weather forecast data</h3>
<p>The first dataset used gives information on <a href="https://github.com/rfordatascience/tidytuesday/tree/main/data/2022/2022-12-20" target="_blank">weather forecast accuracy</a> from the <a href="https://www.weather.gov/" target="_blank">USA National Weather Service</a>. It contains data on the observed and predicted (at 12, 24, 36, and 48 hours before) temperature and precipitation levels for different cities in the USA, between January 2021 and June 2022.</p>
<p>I pre-processed the data to focus on a single city (Syracuse), single year (2021), and one type of forecast (12 hours before). This was mainly to make the data small enough for uploading to different generative AI websites. The data look like this:</p>
<div class="cell">
<details class="code-fold">
<summary>Code</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb1-1">tuesdata <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> tidytuesdayR<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">tt_load</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"2022-12-20"</span>)</span>
<span id="cb1-2">weather_forecasts <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> tuesdata<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>weather_forecasts</span>
<span id="cb1-3">weather <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> weather_forecasts <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb1-4">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">filter</span>(</span>
<span id="cb1-5">    city <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">==</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"SYRACUSE"</span>,</span>
<span id="cb1-6">    lubridate<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">year</span>(date) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">==</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2021</span>,</span>
<span id="cb1-7">    forecast_hours_before <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">==</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">12</span></span>
<span id="cb1-8">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb1-9">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">select</span>(date, high_or_low, forecast_temp, observed_temp)</span></code></pre></div></div>
</details>
</div>
<div class="cell">
<div class="cell-output-display">
<div style="border: 1px solid #ddd; padding: 0px; overflow-y: scroll; height:200px; ">
<table class="table table-striped caption-top table-sm small">
<thead>
<tr class="header">
<th data-quarto-table-cell-role="th" style="text-align: left; position: sticky; top: 0; background-color: #FFFFFF;">date</th>
<th data-quarto-table-cell-role="th" style="text-align: left; position: sticky; top: 0; background-color: #FFFFFF;">high_or_low</th>
<th data-quarto-table-cell-role="th" style="text-align: right; position: sticky; top: 0; background-color: #FFFFFF;">forecast_temp</th>
<th data-quarto-table-cell-role="th" style="text-align: right; position: sticky; top: 0; background-color: #FFFFFF;">observed_temp</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;">2021-01-30</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">18</td>
<td style="text-align: right;">23</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-01-30</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">-3</td>
<td style="text-align: right;">6</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-01-31</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">22</td>
<td style="text-align: right;">22</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-01-31</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">16</td>
<td style="text-align: right;">16</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-02-01</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">30</td>
<td style="text-align: right;">30</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-02-01</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">21</td>
<td style="text-align: right;">20</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-02-02</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">29</td>
<td style="text-align: right;">27</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-02-02</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">24</td>
<td style="text-align: right;">25</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-02-03</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">30</td>
<td style="text-align: right;">30</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-02-03</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">21</td>
<td style="text-align: right;">19</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-02-04</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">33</td>
<td style="text-align: right;">37</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-02-04</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">23</td>
<td style="text-align: right;">22</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-02-05</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">38</td>
<td style="text-align: right;">44</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-02-05</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">20</td>
<td style="text-align: right;">26</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-02-06</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">27</td>
<td style="text-align: right;">30</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-02-06</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">12</td>
<td style="text-align: right;">8</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-02-07</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">29</td>
<td style="text-align: right;">27</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-02-07</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">11</td>
<td style="text-align: right;">10</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-02-08</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">22</td>
<td style="text-align: right;">23</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-02-08</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">16</td>
<td style="text-align: right;">16</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-02-09</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">30</td>
<td style="text-align: right;">28</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-02-09</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">16</td>
<td style="text-align: right;">18</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-02-10</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">25</td>
<td style="text-align: right;">26</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-02-10</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">17</td>
<td style="text-align: right;">18</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-02-11</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">24</td>
<td style="text-align: right;">26</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-02-11</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">2</td>
<td style="text-align: right;">-1</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-02-12</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">16</td>
<td style="text-align: right;">18</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-02-12</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">2</td>
<td style="text-align: right;">2</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-02-13</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">21</td>
<td style="text-align: right;">22</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-02-13</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">17</td>
<td style="text-align: right;">20</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-02-14</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">27</td>
<td style="text-align: right;">25</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-02-14</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">NA</td>
<td style="text-align: right;">20</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-02-15</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">27</td>
<td style="text-align: right;">28</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-02-15</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">24</td>
<td style="text-align: right;">24</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-02-16</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">37</td>
<td style="text-align: right;">35</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-02-16</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">11</td>
<td style="text-align: right;">7</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-02-17</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">22</td>
<td style="text-align: right;">25</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-02-17</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">13</td>
<td style="text-align: right;">16</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-02-18</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">30</td>
<td style="text-align: right;">27</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-02-18</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">22</td>
<td style="text-align: right;">22</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-02-19</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">33</td>
<td style="text-align: right;">31</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-02-19</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">20</td>
<td style="text-align: right;">20</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-02-20</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">28</td>
<td style="text-align: right;">29</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-02-20</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">14</td>
<td style="text-align: right;">9</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-02-21</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">30</td>
<td style="text-align: right;">34</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-02-21</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">19</td>
<td style="text-align: right;">20</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-02-22</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">36</td>
<td style="text-align: right;">37</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-02-22</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">28</td>
<td style="text-align: right;">30</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-02-23</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">37</td>
<td style="text-align: right;">37</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-02-23</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">31</td>
<td style="text-align: right;">31</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-02-24</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">47</td>
<td style="text-align: right;">52</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-02-24</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">27</td>
<td style="text-align: right;">33</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-02-25</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">33</td>
<td style="text-align: right;">35</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-02-25</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">23</td>
<td style="text-align: right;">25</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-02-26</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">40</td>
<td style="text-align: right;">41</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-02-26</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">28</td>
<td style="text-align: right;">27</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-02-27</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">43</td>
<td style="text-align: right;">47</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-02-27</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">29</td>
<td style="text-align: right;">27</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-02-28</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">44</td>
<td style="text-align: right;">44</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-02-28</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">38</td>
<td style="text-align: right;">39</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-03-01</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">40</td>
<td style="text-align: right;">42</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-03-01</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">13</td>
<td style="text-align: right;">10</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-03-02</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">26</td>
<td style="text-align: right;">25</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-03-02</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">22</td>
<td style="text-align: right;">20</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-03-03</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">41</td>
<td style="text-align: right;">43</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-03-03</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">24</td>
<td style="text-align: right;">27</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-03-04</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">28</td>
<td style="text-align: right;">30</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-03-04</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">15</td>
<td style="text-align: right;">16</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-03-05</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">28</td>
<td style="text-align: right;">32</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-03-05</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">17</td>
<td style="text-align: right;">17</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-03-06</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">24</td>
<td style="text-align: right;">24</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-03-06</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">15</td>
<td style="text-align: right;">9</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-03-07</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">26</td>
<td style="text-align: right;">29</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-03-07</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">10</td>
<td style="text-align: right;">8</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-03-08</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">39</td>
<td style="text-align: right;">37</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-03-08</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">34</td>
<td style="text-align: right;">28</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-03-09</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">43</td>
<td style="text-align: right;">50</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-03-09</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">23</td>
<td style="text-align: right;">24</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-03-10</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">59</td>
<td style="text-align: right;">65</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-03-10</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">44</td>
<td style="text-align: right;">48</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-03-11</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">67</td>
<td style="text-align: right;">73</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-03-11</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">39</td>
<td style="text-align: right;">39</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-03-12</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">54</td>
<td style="text-align: right;">58</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-03-12</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">23</td>
<td style="text-align: right;">24</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-03-13</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">36</td>
<td style="text-align: right;">40</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-03-13</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">30</td>
<td style="text-align: right;">32</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-03-14</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">36</td>
<td style="text-align: right;">38</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-03-14</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">13</td>
<td style="text-align: right;">16</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-03-15</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">28</td>
<td style="text-align: right;">28</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-03-15</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">10</td>
<td style="text-align: right;">17</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-03-16</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">39</td>
<td style="text-align: right;">43</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-03-16</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">32</td>
<td style="text-align: right;">34</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-03-17</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">50</td>
<td style="text-align: right;">52</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-03-17</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">37</td>
<td style="text-align: right;">33</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-03-18</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">42</td>
<td style="text-align: right;">43</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-03-18</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">20</td>
<td style="text-align: right;">22</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-03-19</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">36</td>
<td style="text-align: right;">36</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-03-19</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">20</td>
<td style="text-align: right;">20</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-03-20</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">55</td>
<td style="text-align: right;">57</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-03-20</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">26</td>
<td style="text-align: right;">25</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-03-21</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">63</td>
<td style="text-align: right;">65</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-03-21</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">30</td>
<td style="text-align: right;">29</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-03-22</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">68</td>
<td style="text-align: right;">70</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-03-22</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">36</td>
<td style="text-align: right;">33</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-03-23</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">69</td>
<td style="text-align: right;">70</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-03-23</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">46</td>
<td style="text-align: right;">48</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-03-24</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">60</td>
<td style="text-align: right;">60</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-03-24</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">50</td>
<td style="text-align: right;">44</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-03-25</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">76</td>
<td style="text-align: right;">76</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-03-25</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">59</td>
<td style="text-align: right;">60</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-03-26</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">66</td>
<td style="text-align: right;">71</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-03-26</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">37</td>
<td style="text-align: right;">38</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-03-27</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">57</td>
<td style="text-align: right;">52</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-03-27</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">44</td>
<td style="text-align: right;">43</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-03-28</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">62</td>
<td style="text-align: right;">62</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-03-28</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">33</td>
<td style="text-align: right;">34</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-03-29</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">43</td>
<td style="text-align: right;">44</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-03-29</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">28</td>
<td style="text-align: right;">30</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-03-30</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">68</td>
<td style="text-align: right;">71</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-03-30</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">51</td>
<td style="text-align: right;">55</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-03-31</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">57</td>
<td style="text-align: right;">60</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-03-31</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">32</td>
<td style="text-align: right;">33</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-04-01</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">37</td>
<td style="text-align: right;">40</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-04-01</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">22</td>
<td style="text-align: right;">24</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-04-02</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">38</td>
<td style="text-align: right;">38</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-04-02</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">21</td>
<td style="text-align: right;">25</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-04-03</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">51</td>
<td style="text-align: right;">50</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-04-03</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">33</td>
<td style="text-align: right;">36</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-04-04</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">57</td>
<td style="text-align: right;">59</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-04-04</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">33</td>
<td style="text-align: right;">33</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-04-05</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">57</td>
<td style="text-align: right;">57</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-04-05</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">30</td>
<td style="text-align: right;">30</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-04-06</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">62</td>
<td style="text-align: right;">63</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-04-06</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">37</td>
<td style="text-align: right;">44</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-04-07</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">70</td>
<td style="text-align: right;">73</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-04-07</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">44</td>
<td style="text-align: right;">45</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-04-08</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">78</td>
<td style="text-align: right;">80</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-04-08</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">NA</td>
<td style="text-align: right;">57</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-04-09</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">68</td>
<td style="text-align: right;">71</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-04-09</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">50</td>
<td style="text-align: right;">45</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-04-10</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">82</td>
<td style="text-align: right;">81</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-04-10</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">55</td>
<td style="text-align: right;">58</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-04-11</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">71</td>
<td style="text-align: right;">72</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-04-11</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">49</td>
<td style="text-align: right;">49</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-04-12</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">56</td>
<td style="text-align: right;">54</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-04-12</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">44</td>
<td style="text-align: right;">39</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-04-13</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">65</td>
<td style="text-align: right;">67</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-04-13</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">45</td>
<td style="text-align: right;">41</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-04-14</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">69</td>
<td style="text-align: right;">71</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-04-14</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">45</td>
<td style="text-align: right;">48</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-04-15</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">48</td>
<td style="text-align: right;">51</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-04-15</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">38</td>
<td style="text-align: right;">40</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-04-16</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">47</td>
<td style="text-align: right;">47</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-04-16</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">37</td>
<td style="text-align: right;">38</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-04-17</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">53</td>
<td style="text-align: right;">56</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-04-17</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">40</td>
<td style="text-align: right;">44</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-04-18</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">60</td>
<td style="text-align: right;">64</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-04-18</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">40</td>
<td style="text-align: right;">40</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-04-19</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">64</td>
<td style="text-align: right;">63</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-04-19</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">43</td>
<td style="text-align: right;">43</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-04-20</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">51</td>
<td style="text-align: right;">50</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-04-20</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">34</td>
<td style="text-align: right;">34</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-04-21</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">36</td>
<td style="text-align: right;">36</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-04-21</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">29</td>
<td style="text-align: right;">29</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-04-22</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">42</td>
<td style="text-align: right;">44</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-04-22</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">32</td>
<td style="text-align: right;">33</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-04-23</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">60</td>
<td style="text-align: right;">63</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-04-23</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">41</td>
<td style="text-align: right;">45</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-04-24</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">67</td>
<td style="text-align: right;">68</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-04-24</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">47</td>
<td style="text-align: right;">51</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-04-25</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">59</td>
<td style="text-align: right;">59</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-04-25</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">33</td>
<td style="text-align: right;">35</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-04-26</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">51</td>
<td style="text-align: right;">50</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-04-26</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">37</td>
<td style="text-align: right;">36</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-04-27</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">65</td>
<td style="text-align: right;">68</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-04-27</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">52</td>
<td style="text-align: right;">52</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-04-28</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">72</td>
<td style="text-align: right;">73</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-04-28</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">53</td>
<td style="text-align: right;">52</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-04-29</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">62</td>
<td style="text-align: right;">55</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-04-29</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">48</td>
<td style="text-align: right;">48</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-04-30</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">52</td>
<td style="text-align: right;">51</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-04-30</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">35</td>
<td style="text-align: right;">35</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-05-01</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">57</td>
<td style="text-align: right;">58</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-05-01</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">48</td>
<td style="text-align: right;">47</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-05-02</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">64</td>
<td style="text-align: right;">67</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-05-02</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">52</td>
<td style="text-align: right;">48</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-05-03</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">70</td>
<td style="text-align: right;">71</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-05-03</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">56</td>
<td style="text-align: right;">54</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-05-04</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">69</td>
<td style="text-align: right;">69</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-05-04</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">53</td>
<td style="text-align: right;">51</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-05-05</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">57</td>
<td style="text-align: right;">52</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-05-05</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">42</td>
<td style="text-align: right;">42</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-05-06</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">57</td>
<td style="text-align: right;">58</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-05-06</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">38</td>
<td style="text-align: right;">34</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-05-07</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">58</td>
<td style="text-align: right;">57</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-05-07</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">43</td>
<td style="text-align: right;">40</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-05-08</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">51</td>
<td style="text-align: right;">54</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-05-08</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">39</td>
<td style="text-align: right;">41</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-05-09</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">56</td>
<td style="text-align: right;">58</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-05-09</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">42</td>
<td style="text-align: right;">44</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-05-10</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">58</td>
<td style="text-align: right;">59</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-05-10</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">39</td>
<td style="text-align: right;">39</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-05-11</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">53</td>
<td style="text-align: right;">57</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-05-11</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">40</td>
<td style="text-align: right;">42</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-05-12</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">62</td>
<td style="text-align: right;">64</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-05-12</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">39</td>
<td style="text-align: right;">39</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-05-13</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">67</td>
<td style="text-align: right;">69</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-05-13</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">42</td>
<td style="text-align: right;">44</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-05-14</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">71</td>
<td style="text-align: right;">72</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-05-14</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">45</td>
<td style="text-align: right;">43</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-05-15</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">74</td>
<td style="text-align: right;">75</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-05-15</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">45</td>
<td style="text-align: right;">45</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-05-16</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">73</td>
<td style="text-align: right;">78</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-05-16</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">49</td>
<td style="text-align: right;">50</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-05-17</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">76</td>
<td style="text-align: right;">78</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-05-17</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">51</td>
<td style="text-align: right;">49</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-05-18</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">79</td>
<td style="text-align: right;">80</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-05-18</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">53</td>
<td style="text-align: right;">52</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-05-19</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">84</td>
<td style="text-align: right;">87</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-05-19</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">57</td>
<td style="text-align: right;">57</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-05-20</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">88</td>
<td style="text-align: right;">92</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-05-20</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">61</td>
<td style="text-align: right;">60</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-05-21</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">90</td>
<td style="text-align: right;">93</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-05-21</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">67</td>
<td style="text-align: right;">63</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-05-22</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">85</td>
<td style="text-align: right;">85</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-05-22</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">67</td>
<td style="text-align: right;">69</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-05-23</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">79</td>
<td style="text-align: right;">77</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-05-23</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">49</td>
<td style="text-align: right;">46</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-05-24</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">77</td>
<td style="text-align: right;">78</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-05-24</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">60</td>
<td style="text-align: right;">60</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-05-25</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">86</td>
<td style="text-align: right;">87</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-05-25</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">69</td>
<td style="text-align: right;">72</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-05-26</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">87</td>
<td style="text-align: right;">90</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-05-26</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">54</td>
<td style="text-align: right;">54</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-05-27</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">67</td>
<td style="text-align: right;">66</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-05-27</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">45</td>
<td style="text-align: right;">47</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-05-28</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">52</td>
<td style="text-align: right;">50</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-05-28</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">43</td>
<td style="text-align: right;">44</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-05-29</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">59</td>
<td style="text-align: right;">62</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-05-29</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">46</td>
<td style="text-align: right;">46</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-05-30</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">57</td>
<td style="text-align: right;">59</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-05-30</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">47</td>
<td style="text-align: right;">49</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-05-31</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">70</td>
<td style="text-align: right;">72</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-05-31</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">52</td>
<td style="text-align: right;">53</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-06-01</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">77</td>
<td style="text-align: right;">78</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-06-01</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">52</td>
<td style="text-align: right;">50</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-06-02</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">77</td>
<td style="text-align: right;">77</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-06-02</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">62</td>
<td style="text-align: right;">64</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-06-03</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">75</td>
<td style="text-align: right;">79</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-06-03</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">61</td>
<td style="text-align: right;">64</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-06-04</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">83</td>
<td style="text-align: right;">84</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-06-04</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">64</td>
<td style="text-align: right;">68</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-06-05</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">91</td>
<td style="text-align: right;">93</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-06-05</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">69</td>
<td style="text-align: right;">69</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-06-06</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">94</td>
<td style="text-align: right;">93</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-06-06</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">69</td>
<td style="text-align: right;">66</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-06-07</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">91</td>
<td style="text-align: right;">94</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-06-07</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">72</td>
<td style="text-align: right;">72</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-06-08</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">84</td>
<td style="text-align: right;">83</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-06-08</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">68</td>
<td style="text-align: right;">70</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-06-09</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">88</td>
<td style="text-align: right;">87</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-06-09</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">60</td>
<td style="text-align: right;">56</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-06-10</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">83</td>
<td style="text-align: right;">82</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-06-10</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">59</td>
<td style="text-align: right;">56</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-06-11</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">80</td>
<td style="text-align: right;">81</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-06-11</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">60</td>
<td style="text-align: right;">63</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-06-12</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">83</td>
<td style="text-align: right;">82</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-06-12</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">59</td>
<td style="text-align: right;">58</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-06-13</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">84</td>
<td style="text-align: right;">87</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-06-13</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">63</td>
<td style="text-align: right;">64</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-06-14</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">77</td>
<td style="text-align: right;">80</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-06-14</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">58</td>
<td style="text-align: right;">59</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-06-15</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">69</td>
<td style="text-align: right;">71</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-06-15</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">50</td>
<td style="text-align: right;">52</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-06-16</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">70</td>
<td style="text-align: right;">69</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-06-16</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">49</td>
<td style="text-align: right;">51</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-06-17</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">77</td>
<td style="text-align: right;">76</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-06-17</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">54</td>
<td style="text-align: right;">51</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-06-18</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">80</td>
<td style="text-align: right;">82</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-06-18</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">65</td>
<td style="text-align: right;">68</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-06-19</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">86</td>
<td style="text-align: right;">88</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-06-19</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">62</td>
<td style="text-align: right;">60</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-06-20</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">86</td>
<td style="text-align: right;">86</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-06-20</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">71</td>
<td style="text-align: right;">71</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-06-21</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">91</td>
<td style="text-align: right;">92</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-06-21</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">57</td>
<td style="text-align: right;">58</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-06-22</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">63</td>
<td style="text-align: right;">63</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-06-22</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">48</td>
<td style="text-align: right;">49</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-06-23</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">74</td>
<td style="text-align: right;">73</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-06-23</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">53</td>
<td style="text-align: right;">50</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-06-24</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">85</td>
<td style="text-align: right;">83</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-06-24</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">60</td>
<td style="text-align: right;">60</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-06-25</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">87</td>
<td style="text-align: right;">85</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-06-25</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">68</td>
<td style="text-align: right;">73</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-06-26</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">88</td>
<td style="text-align: right;">90</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-06-26</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">74</td>
<td style="text-align: right;">78</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-06-27</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">96</td>
<td style="text-align: right;">94</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-06-27</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">75</td>
<td style="text-align: right;">81</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-06-28</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">90</td>
<td style="text-align: right;">96</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-06-28</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">74</td>
<td style="text-align: right;">71</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-06-29</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">90</td>
<td style="text-align: right;">94</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-06-29</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">74</td>
<td style="text-align: right;">73</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-06-30</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">85</td>
<td style="text-align: right;">87</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-06-30</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">67</td>
<td style="text-align: right;">68</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-07-01</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">81</td>
<td style="text-align: right;">79</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-07-01</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">62</td>
<td style="text-align: right;">65</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-07-02</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">74</td>
<td style="text-align: right;">77</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-07-02</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">59</td>
<td style="text-align: right;">61</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-07-03</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">73</td>
<td style="text-align: right;">74</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-07-03</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">57</td>
<td style="text-align: right;">58</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-07-04</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">79</td>
<td style="text-align: right;">79</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-07-04</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">56</td>
<td style="text-align: right;">55</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-07-05</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">90</td>
<td style="text-align: right;">90</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-07-05</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">73</td>
<td style="text-align: right;">71</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-07-06</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">87</td>
<td style="text-align: right;">88</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-07-06</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">68</td>
<td style="text-align: right;">69</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-07-07</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">83</td>
<td style="text-align: right;">85</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-07-07</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">65</td>
<td style="text-align: right;">65</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-07-08</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">80</td>
<td style="text-align: right;">82</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-07-08</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">68</td>
<td style="text-align: right;">68</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-07-09</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">79</td>
<td style="text-align: right;">84</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-07-09</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">63</td>
<td style="text-align: right;">65</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-07-10</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">79</td>
<td style="text-align: right;">80</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-07-10</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">60</td>
<td style="text-align: right;">61</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-07-11</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">78</td>
<td style="text-align: right;">75</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-07-11</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">64</td>
<td style="text-align: right;">64</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-07-12</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">79</td>
<td style="text-align: right;">76</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-07-12</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">70</td>
<td style="text-align: right;">69</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-07-13</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">87</td>
<td style="text-align: right;">88</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-07-13</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">71</td>
<td style="text-align: right;">70</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-07-14</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">82</td>
<td style="text-align: right;">84</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-07-14</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">66</td>
<td style="text-align: right;">66</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-07-15</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">89</td>
<td style="text-align: right;">90</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-07-15</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">72</td>
<td style="text-align: right;">73</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-07-16</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">81</td>
<td style="text-align: right;">84</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-07-16</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">66</td>
<td style="text-align: right;">67</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-07-17</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">77</td>
<td style="text-align: right;">76</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-07-17</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">67</td>
<td style="text-align: right;">66</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-07-18</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">75</td>
<td style="text-align: right;">84</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-07-18</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">64</td>
<td style="text-align: right;">66</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-07-19</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">84</td>
<td style="text-align: right;">90</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-07-19</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">66</td>
<td style="text-align: right;">69</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-07-20</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">87</td>
<td style="text-align: right;">87</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-07-20</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">65</td>
<td style="text-align: right;">64</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-07-21</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">75</td>
<td style="text-align: right;">76</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-07-21</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">57</td>
<td style="text-align: right;">59</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-07-22</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">79</td>
<td style="text-align: right;">77</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-07-22</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">59</td>
<td style="text-align: right;">61</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-07-23</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">80</td>
<td style="text-align: right;">81</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-07-23</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">56</td>
<td style="text-align: right;">57</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-07-24</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">86</td>
<td style="text-align: right;">84</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-07-24</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">69</td>
<td style="text-align: right;">72</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-07-25</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">86</td>
<td style="text-align: right;">85</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-07-25</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">64</td>
<td style="text-align: right;">67</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-07-26</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">87</td>
<td style="text-align: right;">87</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-07-26</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">67</td>
<td style="text-align: right;">65</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-07-27</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">87</td>
<td style="text-align: right;">86</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-07-27</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">63</td>
<td style="text-align: right;">59</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-07-28</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">80</td>
<td style="text-align: right;">79</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-07-28</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">60</td>
<td style="text-align: right;">56</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-07-29</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">78</td>
<td style="text-align: right;">72</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-07-29</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">61</td>
<td style="text-align: right;">65</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-07-30</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">72</td>
<td style="text-align: right;">71</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-07-30</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">52</td>
<td style="text-align: right;">52</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-07-31</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">75</td>
<td style="text-align: right;">73</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-07-31</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">59</td>
<td style="text-align: right;">57</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-08-01</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">72</td>
<td style="text-align: right;">74</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-08-01</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">59</td>
<td style="text-align: right;">59</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-08-02</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">76</td>
<td style="text-align: right;">76</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-08-02</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">54</td>
<td style="text-align: right;">52</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-08-03</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">81</td>
<td style="text-align: right;">79</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-08-03</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">59</td>
<td style="text-align: right;">57</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-08-04</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">83</td>
<td style="text-align: right;">NA</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-08-04</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">59</td>
<td style="text-align: right;">NA</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-08-05</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">84</td>
<td style="text-align: right;">NA</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-08-05</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">61</td>
<td style="text-align: right;">NA</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-08-06</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">88</td>
<td style="text-align: right;">NA</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-08-06</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">69</td>
<td style="text-align: right;">NA</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-08-07</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">89</td>
<td style="text-align: right;">NA</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-08-07</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">68</td>
<td style="text-align: right;">NA</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-08-08</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">88</td>
<td style="text-align: right;">NA</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-08-08</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">71</td>
<td style="text-align: right;">NA</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-08-09</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">90</td>
<td style="text-align: right;">NA</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-08-09</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">71</td>
<td style="text-align: right;">NA</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-08-10</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">92</td>
<td style="text-align: right;">89</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-08-10</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">73</td>
<td style="text-align: right;">76</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-08-11</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">93</td>
<td style="text-align: right;">92</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-08-11</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">77</td>
<td style="text-align: right;">78</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-08-12</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">91</td>
<td style="text-align: right;">87</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-08-12</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">71</td>
<td style="text-align: right;">71</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-08-13</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">88</td>
<td style="text-align: right;">91</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-08-13</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">67</td>
<td style="text-align: right;">67</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-08-14</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">79</td>
<td style="text-align: right;">80</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-08-14</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">57</td>
<td style="text-align: right;">56</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-08-15</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">77</td>
<td style="text-align: right;">77</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-08-15</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">57</td>
<td style="text-align: right;">53</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-08-16</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">82</td>
<td style="text-align: right;">81</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-08-16</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">68</td>
<td style="text-align: right;">69</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-08-17</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">79</td>
<td style="text-align: right;">85</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-08-17</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">71</td>
<td style="text-align: right;">72</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-08-18</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">79</td>
<td style="text-align: right;">77</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-08-18</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">71</td>
<td style="text-align: right;">72</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-08-19</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">80</td>
<td style="text-align: right;">82</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-08-19</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">68</td>
<td style="text-align: right;">68</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-08-20</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">84</td>
<td style="text-align: right;">86</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-08-20</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">69</td>
<td style="text-align: right;">73</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-08-21</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">84</td>
<td style="text-align: right;">86</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-08-21</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">70</td>
<td style="text-align: right;">69</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-08-22</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">86</td>
<td style="text-align: right;">89</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-08-22</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">71</td>
<td style="text-align: right;">73</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-08-23</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">84</td>
<td style="text-align: right;">86</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-08-23</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">71</td>
<td style="text-align: right;">70</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-08-24</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">87</td>
<td style="text-align: right;">87</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-08-24</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">68</td>
<td style="text-align: right;">67</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-08-25</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">93</td>
<td style="text-align: right;">92</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-08-25</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">72</td>
<td style="text-align: right;">74</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-08-26</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">89</td>
<td style="text-align: right;">91</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-08-26</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">72</td>
<td style="text-align: right;">73</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-08-27</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">86</td>
<td style="text-align: right;">87</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-08-27</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">65</td>
<td style="text-align: right;">67</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-08-28</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">84</td>
<td style="text-align: right;">81</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-08-28</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">69</td>
<td style="text-align: right;">69</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-08-29</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">87</td>
<td style="text-align: right;">85</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-08-29</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">73</td>
<td style="text-align: right;">75</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-08-30</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">85</td>
<td style="text-align: right;">86</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-08-30</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">65</td>
<td style="text-align: right;">66</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-08-31</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">81</td>
<td style="text-align: right;">82</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-08-31</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">61</td>
<td style="text-align: right;">62</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-09-01</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">74</td>
<td style="text-align: right;">70</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-09-01</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">56</td>
<td style="text-align: right;">52</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-09-02</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">69</td>
<td style="text-align: right;">69</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-09-02</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">57</td>
<td style="text-align: right;">59</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-09-03</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">71</td>
<td style="text-align: right;">73</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-09-03</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">54</td>
<td style="text-align: right;">56</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-09-04</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">77</td>
<td style="text-align: right;">79</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-09-04</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">63</td>
<td style="text-align: right;">63</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-09-05</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">75</td>
<td style="text-align: right;">79</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-09-05</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">61</td>
<td style="text-align: right;">60</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-09-06</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">74</td>
<td style="text-align: right;">76</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-09-06</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">56</td>
<td style="text-align: right;">59</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-09-07</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">80</td>
<td style="text-align: right;">79</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-09-07</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">67</td>
<td style="text-align: right;">65</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-09-08</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">78</td>
<td style="text-align: right;">78</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-09-08</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">59</td>
<td style="text-align: right;">59</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-09-09</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">75</td>
<td style="text-align: right;">76</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-09-09</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">57</td>
<td style="text-align: right;">55</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-09-10</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">71</td>
<td style="text-align: right;">73</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-09-10</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">54</td>
<td style="text-align: right;">52</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-09-11</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">79</td>
<td style="text-align: right;">80</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-09-11</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">67</td>
<td style="text-align: right;">69</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-09-12</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">79</td>
<td style="text-align: right;">79</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-09-12</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">62</td>
<td style="text-align: right;">60</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-09-13</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">75</td>
<td style="text-align: right;">76</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-09-13</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">57</td>
<td style="text-align: right;">56</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-09-14</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">84</td>
<td style="text-align: right;">85</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-09-14</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">68</td>
<td style="text-align: right;">70</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-09-15</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">73</td>
<td style="text-align: right;">79</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-09-15</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">59</td>
<td style="text-align: right;">56</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-09-16</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">76</td>
<td style="text-align: right;">77</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-09-16</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">64</td>
<td style="text-align: right;">60</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-09-17</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">82</td>
<td style="text-align: right;">83</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-09-17</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">66</td>
<td style="text-align: right;">65</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-09-18</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">78</td>
<td style="text-align: right;">80</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-09-18</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">52</td>
<td style="text-align: right;">50</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-09-19</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">74</td>
<td style="text-align: right;">75</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-09-19</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">49</td>
<td style="text-align: right;">49</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-09-20</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">80</td>
<td style="text-align: right;">80</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-09-20</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">59</td>
<td style="text-align: right;">62</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-09-21</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">77</td>
<td style="text-align: right;">78</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-09-21</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">64</td>
<td style="text-align: right;">66</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-09-22</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">79</td>
<td style="text-align: right;">77</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-09-22</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">69</td>
<td style="text-align: right;">70</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-09-23</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">73</td>
<td style="text-align: right;">76</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-09-23</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">53</td>
<td style="text-align: right;">51</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-09-24</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">69</td>
<td style="text-align: right;">70</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-09-24</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">49</td>
<td style="text-align: right;">49</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-09-25</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">76</td>
<td style="text-align: right;">78</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-09-25</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">53</td>
<td style="text-align: right;">54</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-09-26</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">70</td>
<td style="text-align: right;">72</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-09-26</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">58</td>
<td style="text-align: right;">55</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-09-27</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">75</td>
<td style="text-align: right;">78</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-09-27</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">57</td>
<td style="text-align: right;">59</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-09-28</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">66</td>
<td style="text-align: right;">68</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-09-28</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">NA</td>
<td style="text-align: right;">48</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-09-29</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">65</td>
<td style="text-align: right;">NA</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-09-29</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">46</td>
<td style="text-align: right;">NA</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-09-30</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">NA</td>
<td style="text-align: right;">63</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-09-30</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">48</td>
<td style="text-align: right;">48</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-10-01</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">66</td>
<td style="text-align: right;">65</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-10-01</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">49</td>
<td style="text-align: right;">48</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-10-02</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">77</td>
<td style="text-align: right;">NA</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-10-02</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">56</td>
<td style="text-align: right;">NA</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-10-03</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">NA</td>
<td style="text-align: right;">65</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-10-03</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">61</td>
<td style="text-align: right;">61</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-10-04</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">68</td>
<td style="text-align: right;">NA</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-10-04</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">57</td>
<td style="text-align: right;">NA</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-10-05</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">NA</td>
<td style="text-align: right;">65</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-10-05</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">57</td>
<td style="text-align: right;">60</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-10-06</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">74</td>
<td style="text-align: right;">NA</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-10-06</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">NA</td>
<td style="text-align: right;">NA</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-10-07</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">NA</td>
<td style="text-align: right;">79</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-10-07</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">59</td>
<td style="text-align: right;">58</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-10-08</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">77</td>
<td style="text-align: right;">79</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-10-08</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">60</td>
<td style="text-align: right;">61</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-10-09</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">72</td>
<td style="text-align: right;">72</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-10-09</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">59</td>
<td style="text-align: right;">58</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-10-10</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">73</td>
<td style="text-align: right;">74</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-10-10</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">58</td>
<td style="text-align: right;">56</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-10-11</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">78</td>
<td style="text-align: right;">79</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-10-11</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">57</td>
<td style="text-align: right;">56</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-10-12</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">79</td>
<td style="text-align: right;">79</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-10-12</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">62</td>
<td style="text-align: right;">59</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-10-13</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">75</td>
<td style="text-align: right;">77</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-10-13</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">59</td>
<td style="text-align: right;">60</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-10-14</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">76</td>
<td style="text-align: right;">77</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-10-14</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">61</td>
<td style="text-align: right;">62</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-10-15</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">77</td>
<td style="text-align: right;">78</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-10-15</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">63</td>
<td style="text-align: right;">67</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-10-16</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">72</td>
<td style="text-align: right;">73</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-10-16</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">49</td>
<td style="text-align: right;">51</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-10-17</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">57</td>
<td style="text-align: right;">57</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-10-17</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">45</td>
<td style="text-align: right;">48</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-10-18</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">53</td>
<td style="text-align: right;">51</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-10-18</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">42</td>
<td style="text-align: right;">43</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-10-19</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">67</td>
<td style="text-align: right;">67</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-10-19</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">50</td>
<td style="text-align: right;">57</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-10-20</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">72</td>
<td style="text-align: right;">75</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-10-20</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">54</td>
<td style="text-align: right;">55</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-10-21</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">72</td>
<td style="text-align: right;">74</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-10-21</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">51</td>
<td style="text-align: right;">52</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-10-22</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">54</td>
<td style="text-align: right;">52</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-10-22</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">40</td>
<td style="text-align: right;">38</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-10-23</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">54</td>
<td style="text-align: right;">55</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-10-23</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">40</td>
<td style="text-align: right;">36</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-10-24</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">58</td>
<td style="text-align: right;">59</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-10-24</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">48</td>
<td style="text-align: right;">49</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-10-25</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">64</td>
<td style="text-align: right;">64</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-10-25</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">50</td>
<td style="text-align: right;">53</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-10-26</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">56</td>
<td style="text-align: right;">56</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-10-26</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">46</td>
<td style="text-align: right;">45</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-10-27</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">58</td>
<td style="text-align: right;">59</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-10-27</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">36</td>
<td style="text-align: right;">37</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-10-28</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">61</td>
<td style="text-align: right;">59</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-10-28</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">41</td>
<td style="text-align: right;">43</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-10-29</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">56</td>
<td style="text-align: right;">58</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-10-29</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">46</td>
<td style="text-align: right;">45</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-10-30</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">59</td>
<td style="text-align: right;">57</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-10-30</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">50</td>
<td style="text-align: right;">48</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-10-31</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">57</td>
<td style="text-align: right;">56</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-10-31</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">45</td>
<td style="text-align: right;">47</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-11-01</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">53</td>
<td style="text-align: right;">55</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-11-01</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">37</td>
<td style="text-align: right;">42</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-11-02</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">50</td>
<td style="text-align: right;">50</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-11-02</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">34</td>
<td style="text-align: right;">37</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-11-03</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">45</td>
<td style="text-align: right;">47</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-11-03</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">32</td>
<td style="text-align: right;">31</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-11-04</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">48</td>
<td style="text-align: right;">48</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-11-04</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">30</td>
<td style="text-align: right;">31</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-11-05</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">49</td>
<td style="text-align: right;">51</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-11-05</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">29</td>
<td style="text-align: right;">28</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-11-06</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">54</td>
<td style="text-align: right;">55</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-11-06</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">31</td>
<td style="text-align: right;">28</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-11-07</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">57</td>
<td style="text-align: right;">61</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-11-07</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">36</td>
<td style="text-align: right;">34</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-11-08</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">61</td>
<td style="text-align: right;">64</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-11-08</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">43</td>
<td style="text-align: right;">39</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-11-09</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">60</td>
<td style="text-align: right;">63</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-11-09</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">45</td>
<td style="text-align: right;">50</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-11-10</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">55</td>
<td style="text-align: right;">56</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-11-10</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">34</td>
<td style="text-align: right;">33</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-11-11</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">60</td>
<td style="text-align: right;">58</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-11-11</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">50</td>
<td style="text-align: right;">50</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-11-12</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">61</td>
<td style="text-align: right;">58</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-11-12</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">40</td>
<td style="text-align: right;">41</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-11-13</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">46</td>
<td style="text-align: right;">48</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-11-13</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">36</td>
<td style="text-align: right;">39</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-11-14</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">45</td>
<td style="text-align: right;">46</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-11-14</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">36</td>
<td style="text-align: right;">38</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-11-15</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">42</td>
<td style="text-align: right;">44</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-11-15</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">33</td>
<td style="text-align: right;">35</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-11-16</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">42</td>
<td style="text-align: right;">41</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-11-16</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">31</td>
<td style="text-align: right;">32</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-11-17</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">53</td>
<td style="text-align: right;">56</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-11-17</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">49</td>
<td style="text-align: right;">55</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-11-18</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">55</td>
<td style="text-align: right;">61</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-11-18</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">33</td>
<td style="text-align: right;">35</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-11-19</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">43</td>
<td style="text-align: right;">41</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-11-19</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">28</td>
<td style="text-align: right;">29</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-11-20</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">45</td>
<td style="text-align: right;">45</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-11-20</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">37</td>
<td style="text-align: right;">39</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-11-21</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">52</td>
<td style="text-align: right;">51</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-11-21</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">39</td>
<td style="text-align: right;">40</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-11-22</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">40</td>
<td style="text-align: right;">42</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-11-22</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">26</td>
<td style="text-align: right;">30</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-11-23</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">37</td>
<td style="text-align: right;">33</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-11-23</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">25</td>
<td style="text-align: right;">21</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-11-24</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">44</td>
<td style="text-align: right;">46</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-11-24</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">32</td>
<td style="text-align: right;">30</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-11-25</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">48</td>
<td style="text-align: right;">50</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-11-25</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">38</td>
<td style="text-align: right;">39</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-11-26</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">41</td>
<td style="text-align: right;">38</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-11-26</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">28</td>
<td style="text-align: right;">29</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-11-27</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">35</td>
<td style="text-align: right;">34</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-11-27</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">26</td>
<td style="text-align: right;">31</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-11-28</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">36</td>
<td style="text-align: right;">34</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-11-28</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">27</td>
<td style="text-align: right;">31</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-11-29</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">34</td>
<td style="text-align: right;">35</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-11-29</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">27</td>
<td style="text-align: right;">26</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-11-30</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">37</td>
<td style="text-align: right;">39</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-11-30</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">32</td>
<td style="text-align: right;">37</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-12-01</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">42</td>
<td style="text-align: right;">43</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-12-01</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">35</td>
<td style="text-align: right;">36</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-12-02</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">53</td>
<td style="text-align: right;">53</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-12-02</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">33</td>
<td style="text-align: right;">35</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-12-03</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">36</td>
<td style="text-align: right;">38</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-12-03</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">28</td>
<td style="text-align: right;">33</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-12-04</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">42</td>
<td style="text-align: right;">47</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-12-04</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">30</td>
<td style="text-align: right;">34</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-12-05</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">41</td>
<td style="text-align: right;">41</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-12-05</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">38</td>
<td style="text-align: right;">39</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-12-06</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">58</td>
<td style="text-align: right;">57</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-12-06</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">29</td>
<td style="text-align: right;">31</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-12-07</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">33</td>
<td style="text-align: right;">35</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-12-07</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">27</td>
<td style="text-align: right;">29</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-12-08</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">34</td>
<td style="text-align: right;">35</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-12-08</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">26</td>
<td style="text-align: right;">28</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-12-09</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">35</td>
<td style="text-align: right;">32</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-12-09</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">30</td>
<td style="text-align: right;">27</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-12-10</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">47</td>
<td style="text-align: right;">46</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-12-10</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">37</td>
<td style="text-align: right;">34</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-12-11</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">65</td>
<td style="text-align: right;">64</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-12-11</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">35</td>
<td style="text-align: right;">34</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-12-12</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">45</td>
<td style="text-align: right;">47</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-12-12</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">33</td>
<td style="text-align: right;">41</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-12-13</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">52</td>
<td style="text-align: right;">54</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-12-13</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">NA</td>
<td style="text-align: right;">32</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-12-14</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">44</td>
<td style="text-align: right;">48</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-12-14</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">27</td>
<td style="text-align: right;">28</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-12-15</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">49</td>
<td style="text-align: right;">49</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-12-15</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">43</td>
<td style="text-align: right;">47</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-12-16</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">65</td>
<td style="text-align: right;">67</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-12-16</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">40</td>
<td style="text-align: right;">42</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-12-17</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">46</td>
<td style="text-align: right;">50</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-12-17</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">30</td>
<td style="text-align: right;">34</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-12-18</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">34</td>
<td style="text-align: right;">36</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-12-18</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">29</td>
<td style="text-align: right;">26</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-12-19</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">30</td>
<td style="text-align: right;">28</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-12-19</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">18</td>
<td style="text-align: right;">20</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-12-20</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">39</td>
<td style="text-align: right;">39</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-12-20</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">33</td>
<td style="text-align: right;">34</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-12-21</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">38</td>
<td style="text-align: right;">40</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-12-21</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">30</td>
<td style="text-align: right;">30</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-12-22</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">38</td>
<td style="text-align: right;">39</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-12-22</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">22</td>
<td style="text-align: right;">22</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-12-23</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">32</td>
<td style="text-align: right;">32</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-12-23</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">23</td>
<td style="text-align: right;">24</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-12-24</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">39</td>
<td style="text-align: right;">34</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-12-24</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">31</td>
<td style="text-align: right;">30</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-12-25</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">41</td>
<td style="text-align: right;">38</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-12-25</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">35</td>
<td style="text-align: right;">34</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-12-26</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">39</td>
<td style="text-align: right;">40</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-12-26</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">22</td>
<td style="text-align: right;">26</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-12-27</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">33</td>
<td style="text-align: right;">33</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-12-27</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">32</td>
<td style="text-align: right;">32</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-12-28</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">38</td>
<td style="text-align: right;">44</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-12-28</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">32</td>
<td style="text-align: right;">34</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-12-29</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">38</td>
<td style="text-align: right;">42</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-12-29</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">35</td>
<td style="text-align: right;">37</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-12-30</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">43</td>
<td style="text-align: right;">44</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-12-30</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">36</td>
<td style="text-align: right;">37</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2021-12-31</td>
<td style="text-align: left;">high</td>
<td style="text-align: right;">48</td>
<td style="text-align: right;">52</td>
</tr>
<tr class="even">
<td style="text-align: left;">2021-12-31</td>
<td style="text-align: left;">low</td>
<td style="text-align: right;">37</td>
<td style="text-align: right;">34</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p><br></p>
<p>The prompt given to all generative AI tools was:</p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span>Prompt 1
</div>
</div>
<div class="callout-body-container callout-body">
<p>Create a chart of the relationship between <code>forecast_temp</code> (forecasted temperature) and <code>observed_temp</code> (observed temperature) in the attached CSV file. The <code>high_or_low</code> column explains whether the forecast is for the high temperature or the low temperature for that day. The generated image should follow data visualisation best practices.</p>
</div>
</div>
<p>If I was to visualise this data, I might create something like this as a first draft:</p>
<div class="cell">
<details class="code-fold">
<summary>Code</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb2-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(ggplot2)</span>
<span id="cb2-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(ggtext)</span>
<span id="cb2-3"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(ggh4x)</span>
<span id="cb2-4"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Prep annotations</span></span>
<span id="cb2-5">annotation1 <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">annotate</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"text"</span>,</span>
<span id="cb2-6">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">label =</span> stringr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">str_wrap</span>(</span>
<span id="cb2-7">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Predicted temperatures are higher than actual temperatures"</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span></span>
<span id="cb2-8">  ),</span>
<span id="cb2-9">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">size =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">75</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">7</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">lineheight =</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.8</span></span>
<span id="cb2-10">)</span>
<span id="cb2-11">annotation2 <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">annotate</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"text"</span>,</span>
<span id="cb2-12">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">label =</span> stringr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">str_wrap</span>(</span>
<span id="cb2-13">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Predicted temperatures are lower than actual temperatures"</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span></span>
<span id="cb2-14">  ),</span>
<span id="cb2-15">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">size =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">14</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">7.5</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">lineheight =</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.8</span></span>
<span id="cb2-16">)</span>
<span id="cb2-17">arrow1 <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">annotate</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"curve"</span>,</span>
<span id="cb2-18">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">58</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">xend =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">47</span>,</span>
<span id="cb2-19">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">7.5</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">yend =</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">6.5</span>,</span>
<span id="cb2-20">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">arrow =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">arrow</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">length =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">unit</span>(<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.1</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"inches"</span>), <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">type =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"closed"</span>),</span>
<span id="cb2-21">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">curvature =</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.1</span></span>
<span id="cb2-22">)</span>
<span id="cb2-23">arrow2 <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">annotate</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"curve"</span>,</span>
<span id="cb2-24">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">27</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">xend =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">38</span>,</span>
<span id="cb2-25">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">7.5</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">yend =</span> <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">6.5</span>,</span>
<span id="cb2-26">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">arrow =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">arrow</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">length =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">unit</span>(<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.1</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"inches"</span>), <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">type =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"closed"</span>),</span>
<span id="cb2-27">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">curvature =</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.1</span></span>
<span id="cb2-28">)</span>
<span id="cb2-29"></span>
<span id="cb2-30"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Plot</span></span>
<span id="cb2-31">weather <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb2-32">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">high_or_low =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">factor</span>(high_or_low,</span>
<span id="cb2-33">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">levels =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"low"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"high"</span>),</span>
<span id="cb2-34">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">labels =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Daily low temperature"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Daily high temperature"</span>)</span>
<span id="cb2-35">  )) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb2-36">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>(</span>
<span id="cb2-37">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(</span>
<span id="cb2-38">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> observed_temp,</span>
<span id="cb2-39">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> forecast_temp <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span> observed_temp</span>
<span id="cb2-40">    )</span>
<span id="cb2-41">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb2-42">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_hline</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">yintercept =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb2-43">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_point</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">size =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">alpha =</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.5</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb2-44">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">at_panel</span>(annotation1, PANEL <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">==</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb2-45">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">at_panel</span>(annotation2, PANEL <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">==</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb2-46">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">at_panel</span>(arrow1, PANEL <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">==</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb2-47">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">at_panel</span>(arrow2, PANEL <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">==</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb2-48">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_x_continuous</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">limits =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">100</span>)) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb2-49">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_y_continuous</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">limits =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span>)) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb2-50">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">labs</span>(</span>
<span id="cb2-51">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">title =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Temperatures are more likely to be underestimated, especially when they are low."</span>,</span>
<span id="cb2-52">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">subtitle =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Data from the USA National Weather Service shows that 12 hour ahead forecasts for temperatures in Syracuse in 2021 were more likely to be below the later observed temperature than above."</span>,</span>
<span id="cb2-53">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Observed temperature (°F)"</span>,</span>
<span id="cb2-54">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> stringr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">str_wrap</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Forecast error (°F)"</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span>),</span>
<span id="cb2-55">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">caption =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Source: USA National Weather Service"</span></span>
<span id="cb2-56">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb2-57">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">facet_wrap</span>(<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">~</span>high_or_low, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">nrow =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb2-58">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">coord_cartesian</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">expand =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">FALSE</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">clip =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"off"</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb2-59">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme_bw</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb2-60">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme</span>(</span>
<span id="cb2-61">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">plot.margin =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">margin</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5</span>),</span>
<span id="cb2-62">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">plot.title.position =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"plot"</span>,</span>
<span id="cb2-63">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">plot.title =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">element_text</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">face =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"bold"</span>),</span>
<span id="cb2-64">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">plot.subtitle =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">element_textbox_simple</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">margin =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">margin</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">b =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span>)),</span>
<span id="cb2-65">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">panel.spacing =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">unit</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"lines"</span>),</span>
<span id="cb2-66">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">axis.title.x.bottom =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">element_text</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">hjust =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>),</span>
<span id="cb2-67">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">axis.title.y.left =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">element_text</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">angle =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">hjust =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">size =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">rel</span>(<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.8</span>))</span>
<span id="cb2-68">  )</span></code></pre></div></div>
</details>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-3-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1"><img src="https://nrennie.com/blog/2025-10-08-gen-ai-data-viz/index_files/figure-html/unnamed-chunk-3-1.png" class="img-fluid figure-img" width="672"></a></p>
</figure>
</div>
</div>
</div>
<p>The key features of this visualisation are:</p>
<ul>
<li>Narrative title that states the key takeaway.</li>
<li>Does not rely on colour to differentiate categories to improve accessibility.</li>
<li>Uses transparency to make it easy to see where there are multiple observations in the same place.</li>
<li>Symmetric y-axis, and zero line to make it easier to see if the data is is above or below zero.</li>
<li>Uses annotations to make the values shown easier to understand.</li>
</ul>
</section>
<section id="prompt-2-ceo-departures-data" class="level3">
<h3 class="anchored" data-anchor-id="prompt-2-ceo-departures-data">Prompt 2: CEO departures data</h3>
<p>The second dataset gives information on reasons for <a href="https://github.com/rfordatascience/tidytuesday/blob/main/data/2021/2021-04-27/readme.md" target="_blank">CEO departures between 2000 and 2018</a>, and is from a publication by <a href="https://onlinelibrary.wiley.com/doi/abs/10.1002/smj.3278" target="_blank">Gentry et al</a>. Again, to limit the file size, I filtered the data to only include data points between 2000 and 2009. Even with the more limited time frame, the data is still reasonably large at 3.5Mb.</p>
<p>The prompt given to all generative AI tools was:</p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span>Prompt 2
</div>
</div>
<div class="callout-body-container callout-body">
<p>Create a chart of the relationship between <code>fyear</code> (fiscal year) and <code>ceo_dismissal</code> (binary variable for whether the dismissal was for involuntary, non-health related reasons) in the attached CSV file. The generated image should follow data visualisation best practices.</p>
</div>
</div>
</section>
</section>
<section id="evaluation" class="level2">
<h2 class="anchored" data-anchor-id="evaluation">Evaluation</h2>
<p>In terms of deciding whether the generated plot is <em>good</em>, I want to look at:</p>
<ul>
<li><strong>Accuracy</strong>: Does it accurately represent the data? Are the points or lines actually the values in the data?</li>
<li><strong>Best practices</strong>: Is the chart type appropriate for the data? Are the axes, colours, shapes etc. well-chosen?</li>
<li><strong>Aesthetics</strong>: Does it actually look nice? How much work would I have to do, to make this a <em>publication quality</em> chart?</li>
</ul>
<p>Now on to the interesting part - the results!</p>
</section>
<section id="results-weather-forecast-data" class="level2">
<h2 class="anchored" data-anchor-id="results-weather-forecast-data">Results: weather forecast data</h2>
<p>As a reminder, the prompt used was:</p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span>Prompt 1
</div>
</div>
<div class="callout-body-container callout-body">
<p>Create a chart of the relationship between <code>forecast_temp</code> (forecasted temperature) and <code>observed_temp</code> (observed temperature) in the attached CSV file. The <code>high_or_low</code> column explains whether the forecast is for the high temperature or the low temperature for that day. The generated image should follow data visualisation best practices.</p>
</div>
</div>
<section id="chatgpt" class="level3">
<h3 class="anchored" data-anchor-id="chatgpt">ChatGPT</h3>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/chatgpt1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-2"><img src="https://nrennie.com/blog/2025-10-08-gen-ai-data-viz/images/chatgpt1.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt=""></a></p>
</figure>
</div>
<p>ChatGPT produced the static chart above, with the following accompanying text:</p>
<blockquote class="blockquote">
<p>Here’s the chart showing the relationship between forecasted and observed temperatures, separated by high and low temperature forecasts. The dashed line represents perfect prediction accuracy (1:1).</p>
</blockquote>
<p>Things that are reasonably good:</p>
<ul>
<li>The use of crosses instead of opaque dots makes it easier to see where there are clusters of points overlapping.</li>
<li>The addition of a comparison line.</li>
</ul>
<p>Things that are not so good:</p>
<ul>
<li>It guessed at the units as being degrees Celsius rather than Fahrenheit - 100°C isn’t exactly a reasonable temperature forecast!</li>
<li>It relies on colour to differentiate high and low forecasts, and the red and green colour choice is not good for accessibility.</li>
<li>This is a static chart (with no accompanying code) which makes it harder to edit.</li>
</ul>
</section>
<section id="claude" class="level3">
<h3 class="anchored" data-anchor-id="claude">Claude</h3>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/claude1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-3"><img src="https://nrennie.com/blog/2025-10-08-gen-ai-data-viz/images/claude1.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt=""></a></p>
</figure>
</div>
<p>Claude went way over the top! It built an entire, quite complex app using React. The accompanying text was extensive, and so is omitted here. A screenshot of the home page of the app is shown above. It also created a second page of the app specifically analysing forecast accuracy:</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/claude1b.png" class="lightbox" data-gallery="quarto-lightbox-gallery-4"><img src="https://nrennie.com/blog/2025-10-08-gen-ai-data-viz/images/claude1b.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt=""></a></p>
</figure>
</div>
<p>Things that are reasonably good:</p>
<ul>
<li>Correctly guessed the units as Fahrenheit.</li>
<li>Design looks clean, and the colour palette is okay - matching blue for cold, and red for hot.</li>
<li>It calculates summary statistics, and provides key insights (not quite as good as a narrative title, but still a pretty good summary).</li>
</ul>
<p>Things that are not so good:</p>
<ul>
<li>There’s no guarantee that the person creating this visualisation actually knows React, so creating an app for them using React can easily result in something that they don’t understand. It feels like a disproportionately complex result, given the prompt.</li>
<li>The choice of break points on the x- and y- axes are weird.</li>
</ul>
</section>
<section id="copilot" class="level3">
<h3 class="anchored" data-anchor-id="copilot">Copilot</h3>
<p>Copilot produced the following text:</p>
<blockquote class="blockquote">
<p>Here’s a chart that visualizes the relationship between forecasted and observed temperatures, with a clear distinction between high and low forecasts:</p>
<p>📊 Chart Highlights Scatter plot format shows how closely forecasted temperatures align with observed ones.</p>
<ul>
<li>Color-coded by high_or_low to differentiate high and low temperature forecasts.</li>
<li>Consistent styling with gridlines, labeled axes, and a legend for clarity.</li>
<li>Edge-colored markers improve visibility and accessibility. If you’d like to explore trends (e.g.&nbsp;whether high forecasts tend to be more accurate than low ones), I can help with that too. Want to dig deeper?</li>
</ul>
</blockquote>
<p>Based on the first sentence, you might assume that it generated a chart - it did not! No image was actually generated, even when re-prompted. Instead, it generated some Python code to make a chart which was revealed upon clicking <em>see my thinking</em>. The chart created by the Python code (with some tweaking) can be seen below:</p>
<div class="cell">
<details class="code-fold">
<summary>See Python code</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb3-1"><span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">import</span> pandas <span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">as</span> pd</span>
<span id="cb3-2"><span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">import</span> seaborn <span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">as</span> sns</span>
<span id="cb3-3"><span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">import</span> matplotlib.pyplot <span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">as</span> plt</span>
<span id="cb3-4"><span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">import</span> os</span>
<span id="cb3-5"></span>
<span id="cb3-6"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Set seaborn style for better aesthetics</span></span>
<span id="cb3-7">sns.<span class="bu" style="color: null;
background-color: null;
font-style: inherit;">set</span>(style<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"whitegrid"</span>)</span>
<span id="cb3-8"></span>
<span id="cb3-9"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Load the CSV file</span></span>
<span id="cb3-10"><span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">try</span>:</span>
<span id="cb3-11">    df <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> pd.read_csv(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"temperature_data.csv"</span>)</span>
<span id="cb3-12"><span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">except</span> <span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">Exception</span> <span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">as</span> e:</span>
<span id="cb3-13">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">raise</span> <span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">RuntimeError</span>(<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">f"Failed to load CSV file: </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{</span>e<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span>)</span>
<span id="cb3-14"></span>
<span id="cb3-15"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Check required columns</span></span>
<span id="cb3-16">required_columns <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> {<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'forecast_temp'</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'observed_temp'</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'high_or_low'</span>}</span>
<span id="cb3-17"><span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">not</span> required_columns.issubset(df.columns):</span>
<span id="cb3-18">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">raise</span> <span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">ValueError</span>(<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">f"Missing required columns in the dataset. Found columns: </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{</span>df<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span>columns<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span>tolist()<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span>)</span>
<span id="cb3-19"></span>
<span id="cb3-20"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Create output directory if it doesn't exist</span></span>
<span id="cb3-21">output_dir <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"/mnt/data"</span></span>
<span id="cb3-22">os.makedirs(output_dir, exist_ok<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">True</span>)</span>
<span id="cb3-23"></span>
<span id="cb3-24"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Create scatter plot</span></span>
<span id="cb3-25">plt.figure(figsize<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">6</span>))</span>
<span id="cb3-26">sns.scatterplot(data<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>df, x<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'forecast_temp'</span>, y<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'observed_temp'</span>, hue<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'high_or_low'</span>, palette<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'viridis'</span>)</span>
<span id="cb3-27">plt.title(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'Forecasted vs Observed Temperature'</span>)</span>
<span id="cb3-28">plt.xlabel(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'Forecasted Temperature (°C)'</span>)</span>
<span id="cb3-29">plt.ylabel(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'Observed Temperature (°C)'</span>)</span>
<span id="cb3-30">plt.legend(title<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'Forecast Type'</span>)</span>
<span id="cb3-31">plt.tight_layout()</span>
<span id="cb3-32"></span>
<span id="cb3-33"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Save the plot</span></span>
<span id="cb3-34">plot_path <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> os.path.join(output_dir, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"forecast_vs_observed_temp.png"</span>)</span>
<span id="cb3-35">plt.savefig(plot_path)</span>
<span id="cb3-36">plt.close()</span>
<span id="cb3-37"></span>
<span id="cb3-38"><span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">f"Plot saved to </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{</span>plot_path<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span>)</span></code></pre></div></div>
</details>
</div>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/copilot1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-5"><img src="https://nrennie.com/blog/2025-10-08-gen-ai-data-viz/images/copilot1.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt=""></a></p>
</figure>
</div>
<p>Things that are reasonably good:</p>
<ul>
<li>Scatter plot is a reasonable choice for comparing the two columns.</li>
<li>The code has error checking - although the built in Python errors actually give an identical error at an earlier point so it’s a lot of redundant code.</li>
<li>Tries to highlight the design choices made, which are reasonable even if they aren’t well executed.</li>
</ul>
<p>Things that are not so good:</p>
<ul>
<li>It didn’t actually generate a chart! The Python code wasn’t quite correct, and it resulted in a blank plot saved in a very obscure location. The labels also end up chopped off. This isn’t a blog post about using generative AI to write code, so I’ll be forgiving about that here.</li>
<li>Again, assumes temperatures are in Celsius.</li>
<li>Colour choices are not great, and it’s quite hard to see the points when they’re layered on top of each other.</li>
</ul>
</section>
<section id="gemini" class="level3">
<h3 class="anchored" data-anchor-id="gemini">Gemini</h3>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/gemini1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-6"><img src="https://nrennie.com/blog/2025-10-08-gen-ai-data-viz/images/gemini1.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt=""></a></p>
</figure>
</div>
<p>Gemini produced a small interactive chart (screenshot above), with the following accompanying text:</p>
<blockquote class="blockquote">
<p>The scatter plot above illustrates the relationship between forecasted and observed temperatures. The different colors represent whether the temperature is a high or low forecast for the day. This visualization helps to identify how closely forecasted temperatures align with actual observed temperatures and whether there are any patterns in the accuracy of high versus low temperature forecasts.</p>
</blockquote>
<p>Things that are reasonably good:</p>
<ul>
<li>The chart was interactive, and I could customise the view, see the data as a table, and download the chart as an image.</li>
</ul>
<p>Things that are not so good:</p>
<ul>
<li>The colour choices are very poor. The points for both categories are the same colour, and they are only differentiated by the dot outline being a slightly different shade of blue.</li>
<li>Non-symmetric axis ranges make it harder to compare, especially without a diagonal comparison line.</li>
<li>The text colours look fine in dark mode, but the chart downloads with a transparent background. Against the light background of this blog post, the text is very hard to read.</li>
</ul>
</section>
</section>
<section id="results-ceo-departures-data" class="level2">
<h2 class="anchored" data-anchor-id="results-ceo-departures-data">Results: CEO departures data</h2>
<p>Onto the second experiment! As a reminder, the prompt used was:</p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span>Prompt 2
</div>
</div>
<div class="callout-body-container callout-body">
<p>Create a chart of the relationship between <code>fyear</code> (fiscal year) and <code>ceo_dismissal</code> (binary variable for whether the dismissal was for involuntary, non-health related reasons) in the attached CSV file. The generated image should follow data visualisation best practices.</p>
</div>
</div>
<section id="chatgpt-1" class="level3">
<h3 class="anchored" data-anchor-id="chatgpt-1">ChatGPT</h3>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/chatgpt2.png" class="lightbox" data-gallery="quarto-lightbox-gallery-7"><img src="https://nrennie.com/blog/2025-10-08-gen-ai-data-viz/images/chatgpt2.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt=""></a></p>
</figure>
</div>
<p>ChatGPT produced the static chart above, with the following accompanying text:</p>
<blockquote class="blockquote">
<p>Here’s the chart showing the rate of involuntary CEO dismissals (non-health related) by fiscal year. It follows best practices by using clear labels, appropriate scaling, and a focus on the trend rather than raw counts. Let me know if you want it broken down further (e.g.&nbsp;by industry or company size).</p>
</blockquote>
<p>Similar to the first experiment, ChatGPT produced a fairly basic chart that’s <em>fine</em> but doesn’t quite follow best practices - such as rotated x-axis labels. It did plot the <em>rate</em> rather than the absolute count given, which is probably more appropriate.</p>
</section>
<section id="claude-1" class="level3">
<h3 class="anchored" data-anchor-id="claude-1">Claude</h3>
<p>Claude was unable to produce a visualisation for the second prompt, giving the error message that the text is 2413% larger than allowed. Essentially, the data is just too big to upload.</p>
</section>
<section id="copilot-1" class="level3">
<h3 class="anchored" data-anchor-id="copilot-1">Copilot</h3>
<p>Copilot was also unable to produce a visualisation for the second prompt because the data was too large to upload.</p>
</section>
<section id="gemini-1" class="level3">
<h3 class="anchored" data-anchor-id="gemini-1">Gemini</h3>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/gemini2.png" class="lightbox" data-gallery="quarto-lightbox-gallery-8"><img src="https://nrennie.com/blog/2025-10-08-gen-ai-data-viz/images/gemini2.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt=""></a></p>
</figure>
</div>
<p>Gemini again produced a small interactive chart (screenshot above), with the following accompanying text:</p>
<blockquote class="blockquote">
<p><em>Here’s a chart displaying the proportion of CEO dismissals over fiscal years, derived from the data you provided. This visualization illustrates how the rate of involuntary, non-health-related CEO dismissals has changed over time. Let me know if you would like to analyze other aspects of the data!</em></p>
</blockquote>
<p>The styling and issues are very similar to those from Gemini in the first experiment. It also plotted the rate instead of the absolute count.</p>
</section>
</section>
<section id="final-thoughts" class="level2">
<h2 class="anchored" data-anchor-id="final-thoughts">Final thoughts</h2>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span>TLDR
</div>
</div>
<div class="callout-body-container callout-body">
<p>A very quick summary of all four AI tools:</p>
<ul>
<li>Gemini: Good overall with comparable performance across the two datasets and prompts. The charts aren’t perfect, but they allow interactive data exploration and don’t over-complicate it.</li>
<li>ChatGPT: Reasonable overall with comparable performance across the two datasets and prompts. The charts look more amateurish and poorer quality compared to Gemini.</li>
<li>Claude: Good for small datasets but does <em>way</em> too much, unless you prompt it not to. Unable to work with larger data.</li>
<li>Copilot: Poor overall. Produced code to create a chart, but not the chart itself. Unable to work with larger data.</li>
</ul>
<p>If I had to pick one of the four right now, I’d probably go for Gemini.</p>
</div>
</div>
<p>This is obviously not a full-scale research study, so there’s a limit to what conclusions I can draw here. The prompts were deliberately over-simplified, to see how different tools reacted to a generic data visualisation request. More specific prompts, or additional prompts, would give better results.</p>
<p>The most notable thing (across all tools) was that none of them asked questions about what relationships were important to show, who they audience was, what the main message was, preference for chart type, or indeed anything else. As a human, asking questions is the first part of the data visualisation design process. One of the things I found a little bit surprising, was that all tools tended to perform tasks I didn’t ask them to do, but completely ignored other columns in the data that I didn’t mention. Generative AI <em>could</em> be quite useful for prototyping and quickly drafting some initial ideas - though I’m probably going to stick to pen and paper!</p>
<p>Generative AI tools are naturally going to be better at writing code than they are at mimicking a human following a design-process. And so most tools produced code, even though I didn’t explicitly ask for it. That could, of course, also be influenced by their memory of what I’ve previously used them for. Most of the tools (at least on a free tier) struggled with the size of the data, which was far from <em>big data</em>. The code-generation approach does mean that you could feed a subset of your data in, and re-run the resulting code on your full dataset. I’d generally recommend a code-first approach to data visualisation since it makes it possible to reproduce your chart again later.</p>
<p>All tools, across both prompts, chose the <em>obvious</em> chart type - which isn’t necessarily a bad thing! Without a specific prompt to <em>be creative</em>, defaulting to a chart type that’s commonly used for that type of data seems sensible enough. However, they weren’t very good at applying best practices for data visualisation, especially in terms of colour choices. You still need to think about best practices yourself in order to get decent results. Remember that generative AI tools are not just trained on <em>good</em> data visualisations!</p>
<section id="further-reading" class="level3">
<h3 class="anchored" data-anchor-id="further-reading">Further reading</h3>
<ul>
<li><p>Neil Richards published a similar blog post to this one, asking <a href="https://questionsindataviz.com/2025/02/10/can-gpt-help-create-data-visualisations/" target="_blank">Can GPT help create data visualisations?</a> He goes through the process of using ChatGPT to scrape data, then build and iterate on a data visualisation.</p></li>
<li><p>Enrico Bertini wrote a really nice blog post with <a href="https://filwd.substack.com/p/five-strategies-for-analyzing-data" target="_blank">Five Strategies for Analyzing Data with ChatGPT</a>, with some tips for improving the results you can get from generative AI.</p></li>
</ul>


</section>
</section>

<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-reuse"><h2 class="anchored quarto-appendix-heading">Reuse</h2><div class="quarto-appendix-contents"><div><a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></div></div></section><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Citation</h2><div><div class="quarto-appendix-secondary-label">BibTeX citation:</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{rennie2025,
  author = {Rennie, Nicola},
  title = {Generative {AI} for {Data} {Visualisation}},
  date = {2025-10-08},
  url = {https://nrennie.com/blog/2025-10-08-gen-ai-data-viz/},
  langid = {en}
}
</code></pre><div class="quarto-appendix-secondary-label">For attribution, please cite this work as:</div><div id="ref-rennie2025" class="csl-entry quarto-appendix-citeas">
Rennie, Nicola. 2025. <span>“Generative AI for Data
Visualisation.”</span> October 8. <a href="https://nrennie.com/blog/2025-10-08-gen-ai-data-viz/">https://nrennie.com/blog/2025-10-08-gen-ai-data-viz/</a>.
</div></div></section></div> ]]></description>
  <category>Data Visualisation</category>
  <category>Machine Learning &amp; AI</category>
  <category>R</category>
  <guid>https://nrennie.com/blog/2025-10-08-gen-ai-data-viz/</guid>
  <pubDate>Wed, 08 Oct 2025 00:00:00 GMT</pubDate>
  <media:content url="https://nrennie.com/blog/2025-10-08-gen-ai-data-viz/featured.png" medium="image" type="image/png" height="103" width="144"/>
</item>
<item>
  <title>Introducing The Art of Data Visualization with ggplot2</title>
  <dc:creator>Nicola Rennie</dc:creator>
  <link>https://nrennie.com/blog/2025-09-11-art-of-viz-book/</link>
  <description><![CDATA[ 





<p>After almost four years of weekly contributions to <a href="https://github.com/rfordatascience/tidytuesday" target="_blank">TidyTuesday</a> (a weekly social data project), I’ve worked with almost 200 datasets and created over 200 data visualizations. Each chapter of the book will look at a different data visualization, covering:</p>
<ul>
<li><strong>Data</strong>: an introduction to the data set used and how to load it into R. Across the chapters, you’ll see ways of loading data via R packages, local CSV files, APIs, and directly from URLs.</li>
<li><strong>Exploratory work</strong>: exploring the structure of the dataset, identifying issues, and considering potential approaches to visualizaton.</li>
<li><strong>Preparing a plot</strong>: performing the data wrangling needed to make the plot, and creating a first draft using basic <strong><code>ggplot2</code></strong> functionality.</li>
<li><strong>Advanced styling</strong>: editing the basic plot to make it of publication quality with custom styling, including fonts, colors, text, and legends.</li>
<li><strong>Reflection</strong>: some thoughts on how the visualization created in each chapter may be improved, and what aspects of its design are successful.</li>
<li><strong>Exercises</strong>: a few questions for following up on improving the visualizations. These exercises are purposefully left open-ended, rather than prescriptive questions with defined answers. You’re encouraged to think about how you would design and implement different solutions - sharing them on social media is optional!</li>
</ul>
<p>For each chart, full R code is provided and explained for each step of the creative process.</p>
<p>As an example, <a href="https://nrennie.rbind.io/art-of-viz/cats.html" target="_blank">Chapter 7</a> uses data about cats to explain the value and technical aspects of adding custom data-driven annotations. We begin by sketching out an idea for chart, then walk through the process of bringing it to life.</p>
<div class="grid">
<div class="g-col-12 g-col-md-6">
<p><a href="images/sketch-cats.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1"><img src="https://nrennie.com/blog/2025-09-11-art-of-viz-book/images/sketch-cats.png" class="img-fluid" style="width:100.0%"></a></p>
</div>
<div class="g-col-12 g-col-md-6">
<p><a href="images/final-cats.png" class="lightbox" data-gallery="quarto-lightbox-gallery-2"><img src="https://nrennie.com/blog/2025-09-11-art-of-viz-book/images/final-cats.png" class="img-fluid" style="width:100.0%"></a></p>
</div>
</div>
<p>The book contains four main sections, each covering a broad aspect of data visualization:</p>
<ul>
<li><strong>Common charts don’t need to be boring!</strong>: which teaches you how to make <em>classic</em> chart types such as lines charts, and bar charts more effective and more interesting.</li>
<li><strong>Making use of icons, fonts, and text</strong>: where you’ll see different ways to load fonts into R, be able to use icons within charts, and use colored text as an alternative to a traditional legend.</li>
<li><strong>Working with images</strong>: where you’ll see examples of loading and processing images in R, and learn how to add them to plots to create custom labels.</li>
<li><strong>Visualizing spatial data</strong>: where you’ll learn how to manipulate spatial data, create choropleth maps, coordinate plots, and arranging small multiples in a geographic grid.</li>
</ul>
<section id="frequently-asked-questions" class="level2">
<h2 class="anchored" data-anchor-id="frequently-asked-questions">Frequently asked questions</h2>
<ul>
<li><p><strong>Where can I read it?</strong> <br> The print version will be published by CRC Press, likely early in 2026. In the meantime, you can read the online version at <a href="https://nrennie.rbind.io/art-of-viz/" target="_blank">nrennie.rbind.io/art-of-viz</a>.</p></li>
<li><p><strong>Can I just see the plots?</strong> <br> The online version of the book features a <a href="https://nrennie.rbind.io/art-of-viz/appendix.html#visualization-gallery" target="_blank">data visualization gallery</a> where you can browse through the charts created in each chapter.</p></li>
<li><p><strong>Which R packages do I need to run the code?</strong> <br> The <a href="https://nrennie.rbind.io/art-of-viz/appendix.html#software-requirements" target="_blank">software requirements</a> including R and package versions are listed in the appendix. The list includes all of the packages used to create the entire book, not just the charts, so you don’t need to install all of them! For a specific chart, the packages required are listed and explained at the start of the chapter.</p></li>
</ul>
</section>
<section id="additional-resources" class="level2">
<h2 class="anchored" data-anchor-id="additional-resources">Additional resources</h2>
<p>I talked about the process of writing and publishing the book at the Royal Statistical Society conference in September 2025. You can find the slides for that talk at <a href="https://nrennie.rbind.io/talks/rss-conference-book-publishing/" target="_blank">nrennie.rbind.io/talks/rss-conference-book-publishing</a> if you’re interested in the process of how the book came to exist.</p>
<p>None of the work in this book would have existed without <a href="https://github.com/rfordatascience/tidytuesday" target="_blank">TidyTuesday</a>. If you want to improve your data visualization skills, I highly recommend giving it a go and creating some charts! Contributing a dataset is another really good way of developing your programming skills (whether in R, Python, Julia, or something else) and you can find out how by reading the <a href="https://github.com/rfordatascience/tidytuesday/blob/main/pr_instructions.md" target="_blank">How to Submit a Dataset</a> guidance.</p>
<p>If you only read one part of this book, make it this part of the acknowledgements:</p>
<blockquote class="blockquote">
<p>Basically, in short, I’m very grateful for the big, nerdy data community around me.</p>
</blockquote>
<p>Because the R, data, and visualization communities are super friendly and a great bunch of people to learn from.</p>


</section>

<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-reuse"><h2 class="anchored quarto-appendix-heading">Reuse</h2><div class="quarto-appendix-contents"><div><a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></div></div></section><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Citation</h2><div><div class="quarto-appendix-secondary-label">BibTeX citation:</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{rennie2025,
  author = {Rennie, Nicola},
  title = {Introducing {*The} {Art} of {Data} {Visualization} with
    `Ggplot2`*},
  date = {2025-09-11},
  url = {https://nrennie.com/blog/2025-09-11-art-of-viz-book/},
  langid = {en}
}
</code></pre><div class="quarto-appendix-secondary-label">For attribution, please cite this work as:</div><div id="ref-rennie2025" class="csl-entry quarto-appendix-citeas">
Rennie, Nicola. 2025. <span>“Introducing *The Art of Data Visualization
with `Ggplot2`*.”</span> September 11. <a href="https://nrennie.com/blog/2025-09-11-art-of-viz-book/">https://nrennie.com/blog/2025-09-11-art-of-viz-book/</a>.
</div></div></section></div> ]]></description>
  <category>R</category>
  <category>Data Visualisation</category>
  <category>TidyTuesday</category>
  <guid>https://nrennie.com/blog/2025-09-11-art-of-viz-book/</guid>
  <pubDate>Thu, 11 Sep 2025 00:00:00 GMT</pubDate>
  <media:content url="https://nrennie.com/blog/2025-09-11-art-of-viz-book/featured.png" medium="image" type="image/png" height="103" width="144"/>
</item>
<item>
  <title>Introduction to Julia for R users</title>
  <dc:creator>Nicola Rennie</dc:creator>
  <link>https://nrennie.com/blog/2025-08-18-introduction-julia-r-users/</link>
  <description><![CDATA[ 





<p>If you’re an R user, you might be curious about trying another programming language. But you might also not be that enthusiastic about learning another language since it can be time-consuming, difficult, or tedious - especially if you already have code that works in R. This blog post aims to highlight some of the benefits that an R user might gain from using <a href="https://julialang.org/" target="_blank">Julia</a> - a high-level, general-purpose, open source programming language. It will also introduce some Julia packages that are based on packages built in R for an easier introduction to Julia, and show you how to interface between R and Julia.</p>
<div class="callout callout-style-default callout-note callout-titled" title="">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Note
</div>
</div>
<div class="callout-body-container callout-body">
<p>This blog post is a follow-up to <a href="https://nrennie.rbind.io/blog/learning-julia-with-tidytuesday-tidier/" target="_blank">Learning Julia with #TidyTuesday and Tidier.jl</a> first published in June 2023. Though the first post is still a good introduction to plotting in Julia, some of the syntax may be outdated.</p>
</div>
</div>
<section id="why-use-julia" class="level2">
<h2 class="anchored" data-anchor-id="why-use-julia">Why use Julia?</h2>
<p>One of the main differences between Julia and R is that Julia is a compiled language, whereas R is an interpreted language (as is Python). Interpreted languages execute instructions directly line by line, i.e.&nbsp;translate code into machine language during execution. This is great for interactive debugging and user-friendliness but bad for speed.</p>
<p>Compiled languages, like Julia, convert code into machine language before running it, leading to faster execution. Since Julia compiles <em>just in time</em> (before code is executed), the user experience can be much like that of an interpreted language. This means you get the benefits of speed, but without losing the user-friendliness. The syntax of Julia is also simpler, with many built-in functions, compared to other compiled languages.</p>
<p>There are also some implementations in Julia that may not be available in R, or may not work well with large datasets or when models become too computationally expensive. Being able to work with both R and Julia gives you access to a wider range of tools - including approaches for <a href="https://turinglang.org/" target="_blank">Bayesian modelling</a>, optimisation, symbolic modelling of systems, and solving differential equations.</p>
</section>
<section id="getting-started-with-julia" class="level2">
<h2 class="anchored" data-anchor-id="getting-started-with-julia">Getting started with Julia</h2>
<p>Let’s jump straight in to learning some Julia!</p>
<section id="installing-julia" class="level3">
<h3 class="anchored" data-anchor-id="installing-julia">Installing Julia</h3>
<p>There are a few different ways that Julia can be installed, depending on your operating system and how automated you want any updates to be in future. You can find the relevant links for your operating system at <a href="https://julialang.org/install/" target="_blank">julialang.org/install</a>. Make sure Julia is also added to your PATH so that other programmes can find it.</p>
<div class="callout callout-style-default callout-note callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Note
</div>
</div>
<div class="callout-body-container callout-body">
<p>You also need to decide <em>where</em> to run Julia code. You can run Julia code from a terminal, by typing <code>Julia</code>. However, much like running R code in a console isn’t the best way, I’d recommend using an IDE (integrated development environment). I’d recommend Positron or VSCode for Julia code. If you want to run Julia from RStudio, you may need to install <a href="https://juliainterop.github.io/JuliaCall/index.html" target="_blank">JuliaCall</a> first - see JuliaCall below.</p>
<p>You might want to read <a href="https://nrennie.rbind.io/blog/how-choose-ide/" target="_blank">How to choose an IDE</a> to help you decide!</p>
</div>
</div>
</section>
<section id="installing-packages" class="level3">
<h3 class="anchored" data-anchor-id="installing-packages">Installing packages</h3>
<p>Much like R (and other languages), Julia has an extensive collection of additional packages that can be installed. We’re going to need some data for our examples later on, so let’s install the <code>PalmerPenguins</code> package - you’re likely already familiar with the <code>penguins</code> dataset if you’re an R user!</p>
<p>First we need to install the package using:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb1-1"><span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">using</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">Pkg</span></span>
<span id="cb1-2"><span class="bu" style="color: null;
background-color: null;
font-style: inherit;">Pkg</span>.<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">add</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"PalmerPenguins"</span>)</span></code></pre></div></div>
</div>
<p>Here, <code>Pkg</code> refers to Julia’s built-in package manager. The <code>Pkg.add()</code> command is a bit like the <code>install.packages()</code> function in R, so you only need to run it once.</p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span>Starting the Julia package manager
</div>
</div>
<div class="callout-body-container callout-body">
<p>Typing <code>]</code> also starts up the Julia package manager. You can then type <code>add PalmerPenguins</code> as an alternative way of installing packages. Either approach is fine.</p>
</div>
</div>
<p>We then load the <code>PalmerPenguins</code> package using:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb2-1"><span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">using</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">PalmerPenguins</span></span></code></pre></div></div>
</div>
<p>This is equivalent to <code>library()</code> in R and so needs to be run at the start of each session.</p>
</section>
<section id="loading-data" class="level3">
<h3 class="anchored" data-anchor-id="loading-data">Loading data</h3>
<p>Then we can use <code>PalmerPenguins.load()</code> to actually download the data file, and <code>DataFrame()</code> to convert it to a data frame.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb3-1"><span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">using</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">DataFrames</span></span>
<span id="cb3-2">penguins <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">DataFrame</span>(PalmerPenguins.<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">load</span>());</span></code></pre></div></div>
</div>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span>Loading from other sources
</div>
</div>
<div class="callout-body-container callout-body">
<p>You won’t often be loading data straight from a package, instead you’re more likely to either connect to a database or load from an external file, such as a CSV. In Julia, the <code>CSV.read()</code> function from the <code>CSV</code> package provides functionality to read in data from a CSV file.</p>
</div>
</div>
</section>
</section>
<section id="tidier.jl" class="level2">
<h2 class="anchored" data-anchor-id="tidier.jl">Tidier.jl</h2>
<p><code>Tidier.jl</code> is inspired by R’s <code>tidyverse</code> but developed specifically for Julia. Like the <code>tidyverse</code> package in R, it’s actually a collection of smaller packages - each for performing a specific set of tasks. In this blog post, we’ll focus on two of them:</p>
<ul>
<li><strong>TidierData</strong>: for data wrangling and processing</li>
<li><strong>TidierPlots</strong>: for plotting data</li>
</ul>
<p>Remember to install these packages using <code>Pkg.add()</code> first!</p>
<blockquote class="blockquote">
<p>If you’re unfamiliar with <code>tidyverse</code> packages or you’re just not a fan of them in R, I’d still encourage you to have a look at <code>Tidier.jl</code> - but I’m not going to turn this into a base R versus <code>tidyverse</code> discussion!</p>
</blockquote>
<section id="data-wrangling-with-tidierdata.jl" class="level3">
<h3 class="anchored" data-anchor-id="data-wrangling-with-tidierdata.jl">Data wrangling with <code>TidierData.jl</code></h3>
<p>Let’s perform some very simple data wrangling here, so you can see the comparison between <code>dplyr</code> in R, and <code>TidierData.jl</code> in Julia. Let’s filter the data to only look at complete rows, and to consider only female penguins. We’ll also convert the body mass from grams to kilograms, and drop the bill depth column since we won’t use it in later analysis.</p>
<div class="callout callout-style-default callout-warning callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Warning
</div>
</div>
<div class="callout-body-container callout-body">
<p>The R examples use the <code>penguins</code> data from base R (available since version 4.5.0). It has slightly different column names to the version found in <a href="https://allisonhorst.github.io/palmerpenguins/" target="_blank"><code>palmerpenguins</code></a>, and to the Julia package.</p>
</div>
</div>
<p>The functions you’re likely familiar with from <code>dplyr</code> are named and work in the same way in <code>TidierData.jl</code>. For example, the <code>filter()</code> function lets you filter out rows of data based on some conditions, the <code>mutate()</code> function can be used to add or edit columns, and the <code>select()</code> function is used to choose a subset of columns to keep or drop.</p>
<div class="tabset-margin-container"></div><div class="panel-tabset">
<ul class="nav nav-tabs"><li class="nav-item"><a class="nav-link active" id="tabset-1-1-tab" data-bs-toggle="tab" data-bs-target="#tabset-1-1" aria-controls="tabset-1-1" aria-selected="true" href="">Julia</a></li><li class="nav-item"><a class="nav-link" id="tabset-1-2-tab" data-bs-toggle="tab" data-bs-target="#tabset-1-2" aria-controls="tabset-1-2" aria-selected="false" href="">R</a></li></ul>
<div class="tab-content">
<div id="tabset-1-1" class="tab-pane active" aria-labelledby="tabset-1-1-tab">
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb4" style="background: #f1f3f5;"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb4-1"><span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">using</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">TidierData</span></span>
<span id="cb4-2">penguins <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">@chain</span> penguins <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">begin</span></span>
<span id="cb4-3">  <span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">@drop_missing</span>()</span>
<span id="cb4-4">  <span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">@filter</span>(sex <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">==</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"female"</span>)</span>
<span id="cb4-5">  <span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">@mutate</span>(body_mass_g <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> body_mass_g <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">1000</span>)</span>
<span id="cb4-6">  <span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">@select</span>(<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span>bill_depth_mm)</span>
<span id="cb4-7"><span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">end</span>;</span></code></pre></div></div>
</div>
</div>
<div id="tabset-1-2" class="tab-pane" aria-labelledby="tabset-1-2-tab">
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb5" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb5-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(dplyr)</span>
<span id="cb5-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(tidyr)</span>
<span id="cb5-3">penguins <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> penguins <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb5-4">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">drop_na</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb5-5">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">filter</span>(sex <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">==</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"female"</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb5-6">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">body_mass =</span> body_mass <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1000</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb5-7">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">select</span>(<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span>bill_dep)</span></code></pre></div></div>
</div>
</div>
</div>
</div>
<p>There are a couple of syntax differences to be aware of:</p>
<ul>
<li>In R, we use the pipe operator (either <code>|&gt;</code> or <code>%&gt;%</code>) in between functions to chain functions together. In Julia, we use the <code>@chain</code> macro instead and every function between <code>begin</code> and <code>end</code> modifies the data mentioned at the beginning.</li>
<li>In Julia, some functions are pre-fixed with <code>@</code> because they use macros to simplify the syntax.</li>
</ul>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span>Suppressing output
</div>
</div>
<div class="callout-body-container callout-body">
<p>You’ll notice that some lines of code in Julia have a <code>;</code> at the end of them. This suppresses the output i.e.&nbsp;stops the dataset from printing in the console or in a script. You can also use <code>;</code> if you want to define multiple variables on the same line.</p>
</div>
</div>
</section>
<section id="plotting-with-tidierplots.jl" class="level3">
<h3 class="anchored" data-anchor-id="plotting-with-tidierplots.jl">Plotting with <code>TidierPlots.jl</code></h3>
<p><a href="https://tidierorg.github.io/TidierPlots.jl/latest/" target="_blank"><code>TidierPlots.jl</code></a> is a 100% Julia implementation of the R package <a href="https://ggplot2.tidyverse.org/" target="_blank"><code>ggplot2</code></a> powered by <a href="https://docs.makie.org/stable/" target="_blank"><code>Makie.jl</code></a>. Below, we’ll compare the code and outputs for two different types of plots: a simple boxplot, and a scatter plot with some custom styling.</p>
<p>Let’s start with a simple boxplot of flipper lengths across the three species of penguins.</p>
<div class="tabset-margin-container"></div><div class="panel-tabset">
<ul class="nav nav-tabs"><li class="nav-item"><a class="nav-link active" id="tabset-2-1-tab" data-bs-toggle="tab" data-bs-target="#tabset-2-1" aria-controls="tabset-2-1" aria-selected="true" href="">Julia</a></li><li class="nav-item"><a class="nav-link" id="tabset-2-2-tab" data-bs-toggle="tab" data-bs-target="#tabset-2-2" aria-controls="tabset-2-2" aria-selected="false" href="">R</a></li></ul>
<div class="tab-content">
<div id="tabset-2-1" class="tab-pane active" aria-labelledby="tabset-2-1-tab">
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb6" style="background: #f1f3f5;"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb6-1"><span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">using</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">TidierPlots</span></span>
<span id="cb6-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>(penguins, <span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">@aes</span>(x <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> species, y <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> flipper_length_mm)) <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb6-3">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_boxplot</span>(<span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">@aes</span>(fill <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> species))</span></code></pre></div></div>
</div>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/plot1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1"><img src="https://nrennie.com/blog/2025-08-18-introduction-julia-r-users/images/plot1.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt="Boxplot of three species of penguins with green, yellow, and blue colours"></a></p>
</figure>
</div>
</div>
<div id="tabset-2-2" class="tab-pane" aria-labelledby="tabset-2-2-tab">
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb7" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb7-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(ggplot2)</span>
<span id="cb7-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>(penguins, <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> species, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> flipper_len)) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb7-3">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_boxplot</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">fill =</span> species))</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-8-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-2"><img src="https://nrennie.com/blog/2025-08-18-introduction-julia-r-users/index_files/figure-html/unnamed-chunk-8-1.png" class="img-fluid figure-img" width="672"></a></p>
</figure>
</div>
</div>
</div>
</div>
</div>
</div>
<p>If you toggle between the Julia and R versions, you’ll see that the code is almost identical. In fact, for this simple example, there are only two differences:</p>
<ul>
<li>The way that the packages are loaded with either <code>using</code> in Julia or <code>library()</code> in R as we’ve already discussed.</li>
<li>The pre-fixing of the <code>aes()</code> function in Julia with <code>@</code>, which again we’ve already discussed in the data wrangling section.</li>
</ul>
<p>You’ll also notice a couple of differences in the output:</p>
<ul>
<li>The default colour scheme is different. The Julia version uses a slightly more accessible colour palette - and I have to admit, I do prefer it to the <code>ggplot2</code> colours!</li>
<li>You’ll also notice there is no legend added by default which, in this example, is again a better design since the x-axis labels effectively act as a legend.</li>
</ul>
<p>Otherwise, the outputs are very similar - including <em>that</em> grey background!</p>
<p>It’s easy to compare code for such a simple plot and say they look similar, but what happens when we want to add a lot of custom styling to make our plots look nicer? Is it still that similar? Let’s create a scatter plot of flipper length and bill length, again coloured by species. This time, we’ll also use our own colours for each species, apply a different theme with some specific tweaks, and add some text.</p>
<div class="tabset-margin-container"></div><div class="panel-tabset">
<ul class="nav nav-tabs"><li class="nav-item"><a class="nav-link active" id="tabset-3-1-tab" data-bs-toggle="tab" data-bs-target="#tabset-3-1" aria-controls="tabset-3-1" aria-selected="true" href="">Julia</a></li><li class="nav-item"><a class="nav-link" id="tabset-3-2-tab" data-bs-toggle="tab" data-bs-target="#tabset-3-2" aria-controls="tabset-3-2" aria-selected="false" href="">R</a></li></ul>
<div class="tab-content">
<div id="tabset-3-1" class="tab-pane active" aria-labelledby="tabset-3-1-tab">
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb8" style="background: #f1f3f5;"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb8-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>(penguins, <span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">@aes</span>(x <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> flipper_length_mm, y <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> bill_length_mm)) <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb8-2">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_point</span>(<span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">@aes</span>(color <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> species, shape <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> species), size <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">14</span>) <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb8-3">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_shape</span>() <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb8-4">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_color_manual</span>(values <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> [<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"darkorange"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"purple"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"cyan4"</span>]) <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb8-5">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">labs</span>(title <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Flipper and bill length"</span>,</span>
<span id="cb8-6">       subtitle <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Measurements for Adelie, Chinstrap and Gentoo penguins"</span>,</span>
<span id="cb8-7">       x <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Flipper length (mm)"</span>,</span>
<span id="cb8-8">       y <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Bill length (mm)"</span>,</span>
<span id="cb8-9">       color <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Penguin species"</span>,</span>
<span id="cb8-10">       marker <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Penguin species"</span>) <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb8-11">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme_minimal</span>()</span></code></pre></div></div>
</div>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/plot2.png" class="lightbox" data-gallery="quarto-lightbox-gallery-3"><img src="https://nrennie.com/blog/2025-08-18-introduction-julia-r-users/images/plot2.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt="Scatterplot of three species of penguins with teal. purple, and orange markers"></a></p>
</figure>
</div>
</div>
<div id="tabset-3-2" class="tab-pane" aria-labelledby="tabset-3-2-tab">
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb9" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb9-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>(penguins, <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> flipper_len, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> bill_len)) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb9-2">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_point</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">color =</span> species, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">shape =</span> species), <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">size =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb9-3">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_color_manual</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">values =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"darkorange"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"purple"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"cyan4"</span>)) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb9-4">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">labs</span>(</span>
<span id="cb9-5">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">title =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Flipper and bill length"</span>,</span>
<span id="cb9-6">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">subtitle =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Measurements for Adelie, Chinstrap and Gentoo penguins"</span>,</span>
<span id="cb9-7">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Flipper length (mm)"</span>,</span>
<span id="cb9-8">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Bill length (mm)"</span>,</span>
<span id="cb9-9">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">color =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Penguin species"</span>,</span>
<span id="cb9-10">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">shape =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Penguin species"</span></span>
<span id="cb9-11">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb9-12">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme_minimal</span>()</span></code></pre></div></div>
<div class="cell-output-display">
<div>
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-10-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-4"><img src="https://nrennie.com/blog/2025-08-18-introduction-julia-r-users/index_files/figure-html/unnamed-chunk-10-1.png" class="img-fluid figure-img" width="672"></a></p>
</figure>
</div>
</div>
</div>
</div>
</div>
</div>
<p>Again, there are some differences in both the code and the output - partly due to current limitations in <code>TidierPlots.jl</code>.</p>
<ul>
<li>The <code>theme_minimal()</code> function produces a slightly different theme from the version in <code>ggplot2</code> - it’s a bit more like <code>theme_classic()</code> in {ggplot2}.</li>
<li>The title and subtitle are centre aligned instead of aligned to the left hand side of the panel.</li>
<li>The default markers are different shapes with a slightly smaller default size. In Julia, we also need to add <code>scale_shape()</code> to make this work, whereas R does it by itself. Confusingly in Julia, the <code>labs()</code> argument to edit the shape legend title is called <code>marker</code> instead of <code>shape</code>, even though other elements use <code>shape</code>.</li>
<li>The legends also don’t quite properly combine - instead the shape and colour items are listed twice - but legends in <code>TidierPlots.jl</code> are still a work in progress!</li>
</ul>
<div class="callout callout-style-default callout-note callout-titled" title="">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Note
</div>
</div>
<div class="callout-body-container callout-body">
<p>You can view some of the other visualisations I’ve created using Julia (with code) in the Quarto document published at <a href="https://nrennie.quarto.pub/juliatuesday/" target="_blank">nrennie.quarto.pub/juliatuesday</a>. You can also view the source code on <a href="https://github.com/nrennie/JuliaTuesday" target="_blank">GitHub</a>, though again it might be a little outdated in terms of syntax.</p>
</div>
</div>
<p>Overall, <code>TidierPlots.jl</code> isn’t quite as powerful as <code>ggplot2</code> yet, but if you’re creating fairly simple plots you should be able to do what you need. Many of the default settings for the Julia implementations result in nicer looking plots so you may actually need to make fewer tweaks!</p>
</section>
</section>
<section id="combining-r-and-julia" class="level2">
<h2 class="anchored" data-anchor-id="combining-r-and-julia">Combining R and Julia</h2>
<p>Although <code>Tidier.jl</code> is an easy way for <code>tidyverse</code> R users to get started with Julia, I’m not suggesting you re-write every single piece of R code you have in Julia. Instead, I’d recommend finding the bottlenecks in your code (the bits that are slow) and converting those to Julia - make code changes only where the difference in speed really matters!</p>
<p>So how do we interface R and Julia?</p>
<section id="juliacall" class="level3">
<h3 class="anchored" data-anchor-id="juliacall">JuliaCall</h3>
<p><a href="https://juliainterop.github.io/JuliaCall/index.html" target="_blank"><code>JuliaCall</code></a> is an R package that allows you to run Julia code from R. <code>JuliaCall</code> isn’t the only R package that provides an interface with Julia but it is the one used by Quarto (which we’ll discuss more later) so we’ll focus on it here.</p>
<p>Start by installing and loading the package as you normally would:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb10" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb10-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(JuliaCall)</span></code></pre></div></div>
</div>
<p>If you don’t already have Julia installed, you can run:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb11" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb11-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">install_julia</span>()</span></code></pre></div></div>
</div>
<p>This installs Julia for you, makes sure it’s in the right place, and that R can find it. At the start of each new R session, you should also run:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb12" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb12-1">julia <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">julia_setup</span>()</span></code></pre></div></div>
</div>
<p>You can then evaluate Julia code in R using the <code>julia_eval()</code> function. For example, to calculate the square root of 2 (where the calculation is performed in Julia), we do:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb13" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb13-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">julia_eval</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"sqrt(2)"</span>)</span></code></pre></div></div>
<div class="cell-output cell-output-stdout">
<pre><code>[1] 1.414214</code></pre>
</div>
</div>
<p>Note that both <code>julia_eval("sqrt")(2)</code> and <code>julia_call("sqrt", 2)</code> are alternative ways of running <code>julia_eval("sqrt(2)")</code>. This can be really useful if you want to pass a value you’ve calculated in R in as an argument to a Julia function. You can save the result of the computation from Julia in the normal way:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb15" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb15-1">y <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">julia_eval</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"sqrt(2)"</span>)</span></code></pre></div></div>
</div>
<p>and then use it in R calculations as you normally would:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb16" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb16-1">y<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">^</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span></span></code></pre></div></div>
<div class="cell-output cell-output-stdout">
<pre><code>[1] 2</code></pre>
</div>
</div>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span>Running Julia scripts in R
</div>
</div>
<div class="callout-body-container callout-body">
<p>Writing and running Julia code in the form of a character string is not a great experience for longer pieces of code due to the lack of syntax highlighting and formatting. Instead, you’re more likely to write your Julia code in a separate <code>.jl</code> script. You can run the whole script in R using <code>julia_source()</code>:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb18" style="background: #f1f3f5;"><pre class="sourceCode julia code-with-copy"><code class="sourceCode julia"><span id="cb18-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">julia_source</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"script.jl"</span>)</span></code></pre></div></div>
</div>
</div>
</div>
<p>If we want to go the opposite way and use values that we have calculated in R within our Julia code, we can pass an object from R to Julia using <code>julia_assign()</code>. The following code calculates the exponential of 5 in R, and assigns it to a variable <code>a</code> which exists in R. The <code>julia_assign()</code> passes that value to Julia (converting the type correctly) and assigns it to the variable <code>x</code> which exists in Julia.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb19" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb19-1">a <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">exp</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5</span>)</span>
<span id="cb19-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">julia_assign</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"x"</span>, a)</span></code></pre></div></div>
</div>
<p>We can check it works by evaluating <code>x</code> in Julia using <code>julia_eval()</code> in R:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb20" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb20-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">julia_eval</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"x"</span>)</span></code></pre></div></div>
<div class="cell-output cell-output-stdout">
<pre><code>[1] 148.4132</code></pre>
</div>
</div>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span><code>RCall</code>
</div>
</div>
<div class="callout-body-container callout-body">
<p><a href="https://github.com/JuliaInterop/RCall.jl" target="_blank"><code>RCall</code></a> allows you to call R from Julia. It’s very similar to <code>JuliaCall</code>, but the languages are the other way around.</p>
</div>
</div>
</section>
<section id="quarto" class="level3">
<h3 class="anchored" data-anchor-id="quarto">Quarto</h3>
<p><a href="https://quarto.org/" target="_blank">Quarto</a> is an open-source scientific and technical publishing system that lets you create dynamic documents, presentations, websites, and books by integrating markdown with code to produce reproducible outputs. It has native support for multiple languages including both R and Julia. And that makes is one of the easiest ways to combine them.</p>
<p>There are several options for running both Julia and R code in the one document:</p>
<ul>
<li>Use the <code>knitr</code> engine, and the <code>JuliaCall</code> R package will run your Julia code in much the same way we’ve discussed in this blog post already.</li>
<li>Use the <code>julia</code> engine, which uses <a href="" target="_blank"><code>QuartoNotebookRunner.jl</code></a> alongside the <code>RCall</code> Julia package to render the document.</li>
</ul>
<p>By default, Quarto sets the engine based on which language is used first in the document. However, I’d recommend specifying a different one if the first code block isn’t the most used language in the document. Technically, you can also use the <code>jupyter</code> engine but I’d probably stick to either <code>julia</code> or<code>knitr</code> unless you’re also including Python code. If you’re an R user, you’re likely already familiar with the <code>knitr</code> engine for Quarto or R Markdown documents so it might be the best first choice.</p>
<p>As a short example of how to combine the two using a <code>knitr</code> engine, here’s a little template:</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb22" style="background: #f1f3f5;"><pre class="sourceCode markdown code-with-copy"><code class="sourceCode markdown"><span id="cb22-1"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">---</span></span>
<span id="cb22-2"><span class="an" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">title:</span><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"> "My Julia + R Document"</span></span>
<span id="cb22-3"><span class="an" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">engine:</span><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"> knitr</span></span>
<span id="cb22-4"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">---</span></span>
<span id="cb22-5"></span>
<span id="cb22-6"><span class="in" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">```{julia}</span></span>
<span id="cb22-7">x <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">7</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">9</span></span>
<span id="cb22-8"><span class="in" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">```</span></span>
<span id="cb22-9"></span>
<span id="cb22-10"><span class="in" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">```{r}</span></span>
<span id="cb22-11"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">plot</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span>)</span>
<span id="cb22-12"><span class="in" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">```</span></span></code></pre></div></div>
<p>It is really is as simple as writing R and Julia code blocks. If you want to pass objects between code blocks, rather than just evaluating them separately, you can use some of the approaches we’ve already discussed from <code>JuliaCall</code>.</p>
</section>
<section id="further-resources" class="level3">
<h3 class="anchored" data-anchor-id="further-resources">Further resources</h3>
<p>If you’re thinking about working with Julia as an R user, these are some further resources you might find helpful:</p>
<ul>
<li><p>Julia documentation: <a href="https://docs.julialang.org/en/v1/manual/getting-started/" target="_blank">docs.julialang.org</a></p></li>
<li><p><code>Tidier.jl</code> documentation: <a href="https://tidierorg.github.io/Tidier.jl/" target="_blank">tidierorg.github.io/Tidier.jl</a></p></li>
<li><p><code>Tidier.jl</code> blog post about why R users should consider using <code>Tidier.jl</code>: <a href="https://tidierorg.github.io/Tidier.jl/v1.5.1/faq#I'm-an-R-user-and-I'm-perfectly-happy-with-the-tidyverse.-Why-should-I-consider-using-Tidier.jl?" target="_blank">tidierorg.github.io/Tidier.jl/Why-should-I-consider-using-Tidier.jl?</a></p></li>
<li><p>Thread by Karandeep Singh on the process of moving from Julia to R: <a href="https://www.upcarta.com/resources/87195-my-lab-is-moving-to-julialang-and-ill-be-putting-together-some-r-julia-tips-for-o" target="_blank">www.upcarta.com/resources/some-r-julia-tips</a></p></li>
<li><p>Documentation on how to integrate R with JuliaHub: <a href="https://info.juliahub.com/resources/integrating-r-with-juliahub" target="_blank">info.juliahub.com/resources/integrating-r-with-juliahub</a></p></li>
</ul>
<div class="callout callout-style-default callout-important callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Important</span>Conference session
</div>
</div>
<div class="callout-body-container callout-body">
<p>I’ll be talking about this topic at the Royal Statistical Society International Conference in Edinburgh on <a href="https://virtual.oxfordabstracts.com/event/40660/program?session=156734&amp;program&amp;date=%222025-9-2%22" target="_blank">September 2, 2025</a>.</p>
<p>Slides can be found here: <a href="https://nrennie.rbind.io/talks/rss-intro-julia" target="_blank">nrennie.rbind.io/talks/rss-intro-julia</a></p>
</div>
</div>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/julia-child.gif" class="lightbox" data-gallery="quarto-lightbox-gallery-5" title="Image: giphy.com"><img src="https://nrennie.com/blog/2025-08-18-introduction-julia-r-users/images/julia-child.gif" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:50.0%" alt="Gif of Julia Childs say Bon Appetit"></a></p>
</figure>
</div>
<figcaption>Image: <a href="https://giphy.com/gifs/pbsdigitalstudios-julia-child-bon-appetit-apptit-l2SpZmj8RdYqQB1Uk" target="_blank">giphy.com</a></figcaption>
</figure>
</div>


</section>
</section>

<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-reuse"><h2 class="anchored quarto-appendix-heading">Reuse</h2><div class="quarto-appendix-contents"><div><a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></div></div></section><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Citation</h2><div><div class="quarto-appendix-secondary-label">BibTeX citation:</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{rennie2025,
  author = {Rennie, Nicola},
  title = {Introduction to {Julia} for {R} Users},
  date = {2025-08-18},
  url = {https://nrennie.com/blog/2025-08-18-introduction-julia-r-users/},
  langid = {en}
}
</code></pre><div class="quarto-appendix-secondary-label">For attribution, please cite this work as:</div><div id="ref-rennie2025" class="csl-entry quarto-appendix-citeas">
Rennie, Nicola. 2025. <span>“Introduction to Julia for R Users.”</span>
August 18. <a href="https://nrennie.com/blog/2025-08-18-introduction-julia-r-users/">https://nrennie.com/blog/2025-08-18-introduction-julia-r-users/</a>.
</div></div></section></div> ]]></description>
  <category>R</category>
  <category>Julia</category>
  <category>Quarto</category>
  <guid>https://nrennie.com/blog/2025-08-18-introduction-julia-r-users/</guid>
  <pubDate>Mon, 18 Aug 2025 00:00:00 GMT</pubDate>
  <media:content url="https://nrennie.com/blog/2025-08-18-introduction-julia-r-users/featured.png" medium="image" type="image/png" height="103" width="144"/>
</item>
<item>
  <title>Switching my website from Hugo to Quarto</title>
  <dc:creator>Nicola Rennie</dc:creator>
  <link>https://nrennie.com/blog/2025-07-29-hugo-quarto-website/</link>
  <description><![CDATA[ 





<p><a href="https://gohugo.io/" target="_blank">Hugo</a> is an open-source static site generator built with <a href="https://go.dev/" target="_blank">Go</a>, which uses markdown files and templates to generate static HTML pages. The R package <a href="https://bookdown.org/yihui/blogdown/" target="_blank">{blogdown}</a>, makes it easier for R users to create websites using Hugo with pages that contain R code. My personal website was previously built using {blogdown} and the <a href="https://hugo-apero-docs.netlify.app/" target="_blank">Hugo Apéro</a> theme.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/hugo.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1" title="The Hugo Apéro theme my previous website was based on"><img src="https://nrennie.com/blog/2025-07-29-hugo-quarto-website/images/hugo.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt="Screenshot of Hugo Apero site"></a></p>
</figure>
</div>
<figcaption>The Hugo Apéro theme my previous website was based on</figcaption>
</figure>
</div>
<p><a href="https://quarto.org/" target="_blank">Quarto</a> is an open-source scientific and technical publishing system that lets you create dynamic documents, presentations, <strong>websites</strong>, and books. It supports multiple languages like R, Python, and Julia, and integrates markdown with code to produce reproducible, high-quality output.</p>
<p>I recently converted my personal website from Hugo to Quarto, and this blog post aims to explain the motivation behind the switch, discuss the things that were tricky to convert, and some tips if you’re thinking about doing the same.</p>
<section id="the-motivation-for-switching" class="level2">
<h2 class="anchored" data-anchor-id="the-motivation-for-switching">The motivation for switching</h2>
<section id="why-switch-from-hugo" class="level3">
<h3 class="anchored" data-anchor-id="why-switch-from-hugo">Why switch from Hugo?</h3>
<p>So if I already have a functioning website built with Hugo, why go through the pain of converting it to Quarto? Well, there are a few reasons!</p>
<ul>
<li>Hugo requires files called <code>index.md</code> which can be generated from an <code>index.Rmd</code> file. But this means you essentially need to keep two copies of the same file (which can end up diverging or having changes overwritten). Quarto just needs one <code>index.qmd</code> file which is much cleaner.</li>
<li>There were a lot of features that weren’t natively available in the Hugo theme I was using such as adding LaTeX equations, combining HTML and Markdown formatting, client-side search, Lightbox styling for iages, and a sticky table of contents for pages. In Hugo, I ended up building all of these features in myself, by writing new templates, shortcodes, and some JavaScript. Although that was a useful experience in itself, Quarto has all of those features (and others) already built-in. This should mean less website maintenance time, and more time for just writing blog posts.</li>
<li>Using {blogdown} meant my website, although built with Hugo, was essentially tied to an R package and R itself. Although I’m definitely not abandoning R, I do write more blog posts about Python and D3 than I used to, so it’s easier to do that in Quarto which has native support for them.</li>
</ul>
</section>
<section id="why-switch-to-quarto" class="level3">
<h3 class="anchored" data-anchor-id="why-switch-to-quarto">Why switch to Quarto?</h3>
<p>The issues I was having with Hugo can be solved with Quarto quite easily, but there were a few other reasons why Quarto was also a good choice:</p>
<ul>
<li>I already use Quarto for other documents, including slide decks, training course websites, and single page websites. Using the same software for my personal website as well, makes it easier to keep things looking consistent - especially with Quarto’s <a href="https://quarto.org/docs/authoring/brand.html" target="_blank">multi-format branding</a> abilities.</li>
<li>Quarto has a nice, user-friendly implementation of <a href="https://quarto.org/docs/output-formats/page-layout.html#grid-customization" target="_blank">responsive grid layouts</a> which makes it really easy to build pages that look good on both desktop and mobile.</li>
</ul>
</section>
</section>
<section id="what-needed-changing" class="level2">
<h2 class="anchored" data-anchor-id="what-needed-changing">What needed changing?</h2>
<p>In terms of the technical aspect of actually switching from one to the other, besides copying folders into the right place, there are a few specific things that need changing.</p>
<section id="yaml-options" class="level3">
<h3 class="anchored" data-anchor-id="yaml-options">YAML options</h3>
<p>The YAML options for Hugo <code>index.md</code> files and Quarto <code>index.qmd</code> files are slightly different, and need to be changed. For example, the old Hugo YAML options might have looked like this:</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb1-1"><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">---</span></span>
<span id="cb1-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">title</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"How to choose an IDE"</span></span>
<span id="cb1-3"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">author</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Nicola Rennie"</span></span>
<span id="cb1-4"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">date</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"2025-07-11"</span></span>
<span id="cb1-5"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">categories</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span></span>
<span id="cb1-6"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">  </span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">-</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> R</span></span>
<span id="cb1-7"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">  </span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">-</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> Python</span></span>
<span id="cb1-8"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">slug</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"how-choose-ide"</span></span>
<span id="cb1-9"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">excerpt</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Thinking about switching to a different IDE? Instead of telling you which IDE to pick, this blog helps you ask the right questions to decide for yourself."</span></span>
<span id="cb1-10"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">subtitle</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Thinking about switching to a different IDE? Instead of telling you which IDE to pick, this blog helps you ask the right questions to decide for yourself."</span></span>
<span id="cb1-11"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">image</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"featured.png"</span></span>
<span id="cb1-12"><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">---</span></span></code></pre></div></div>
<p>and the updated Quarto YAML looks like this:</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb2-1"><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">---</span></span>
<span id="cb2-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">title</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"How to choose an IDE"</span></span>
<span id="cb2-3"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">date</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"2025-07-11"</span></span>
<span id="cb2-4"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">description</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Thinking about switching to a different IDE? Instead of telling you which IDE to pick, this blog helps you ask the right questions to decide for yourself."</span></span>
<span id="cb2-5"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">image</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"featured.png"</span></span>
<span id="cb2-6"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">categories</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span></span>
<span id="cb2-7"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">  </span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">-</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> R</span></span>
<span id="cb2-8"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">  </span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">-</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> Python</span></span>
<span id="cb2-9"><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">---</span></span></code></pre></div></div>
<p>You can see that many of the options are similar. The main differences are the removal of the <code>slug</code> option (see Website structure below), and change to the descripiton. In Hugo, there are two separate YAML options for the page subtitle summary, and the summary that appears in the listing page. In Quarto, these are the same thing - which saves copying and pasting it to two options! I’ve also removed the <code>author</code> option here, and set it globally for all blog posts - which, to be fair, I could also have done in Hugo!</p>
</section>
<section id="shortcodes" class="level3">
<h3 class="anchored" data-anchor-id="shortcodes">Shortcodes</h3>
<p>All of the old Hugo shortcodes needed updating to the Quarto equivalents, because the Hugo shortcodes won’t be recognised by Quarto and will cause an error during rendering. For example, in my old Hugo site, I had a custom shortcode that applied <a href="https://biati-digital.github.io/glightbox/" target="_blank">Lightbox image styling</a>:</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode md code-with-copy"><code class="sourceCode markdown"><span id="cb3-1">{{&lt; img-lightbox "images/featured.png" "alt text" "100%" &gt;}}</span></code></pre></div></div>
<p>For this example, in Quarto it’s as simple as adding <code>lightbox: true</code> to the YAML or code block options.</p>
</section>
<section id="deployment" class="level3">
<h3 class="anchored" data-anchor-id="deployment">Deployment</h3>
<p>Both the old Hugo website and new Quarto website are deployed to GitHub Pages using GitHub Actions and this is an approach I’d recommend because it’s one less thing for you to do, and it makes it easier to make quick updates when you’re away from your laptop. Essentially, it gives you the ability to easily fix a typo from your phone.</p>
<p>There were two aspects to changing the deployment:</p>
<ul>
<li>Update the GitHub Actions script to the <a href="https://quarto.org/docs/publishing/github-pages.html" target="_blank">Quarto GitHub Pages workflow</a></li>
<li>In GitHub, change the pages setting to deploy from the <code>gh-pages</code> branch</li>
</ul>
<p>Not particularly tricky, but you do need to remember to manually publish to GitHub Pages using <code>quarto publish gh-pages</code> once before the Actions workflow will work.</p>
</section>
</section>
<section id="what-was-difficult" class="level2">
<h2 class="anchored" data-anchor-id="what-was-difficult">What was difficult?</h2>
<p>Although there are many good things about switching to Quarto and the process was overall relatively easy, there were still a few things that were tricky when converting from Hugo to Quarto.</p>
<section id="website-structure" class="level3">
<h3 class="anchored" data-anchor-id="website-structure">Website structure</h3>
<p>One of the things I found the most annoying was the fact that the way that the GitHub repository structure relates website structure can different between Hugo and Quarto. In Hugo, a YAML parameter call <code>slug</code> exists, where you can specify what the URL of a specific page is. If you don’t specify the <code>slug</code>, then it defaults to the directory name. In my old Hugo website, all of my directories were prefixed with the date of the blog post to make it nicely ordered, but the published URL didn’t have the date prefix. For example, the folder might be named <code>blog/2025-07-11/how-choose-ide</code>, and the slug could be specified as:</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb4" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb4-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">slug</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"how-choose-ide"</span></span></code></pre></div></div>
<p>to deploy the post at <a href="https://nrennie.rbind.io/blog/how-choose-ide/" target="_blank">nrennie.rbind.io/blog/how-choose-ide</a>. In Quarto, <code>slug</code> doesn’t exist as a YAML parameter. To keep this structure, and make sure that links to existing blog posts don’t break, I needed to find a way to change the URL. Danielle Navarro also follows a similar structure for her blog posts, and described how she tackled this problem using Netlify redirects in a blog post about <a href="https://blog.djnavarro.net/posts/2022-04-20_porting-to-quarto/#netlify-redirects" target="_blank">Porting a distill blog to quarto</a>.</p>
<p>I decided to use a slightly different approach, that works regardless of where you deploy your site and also works when rendering locally. All of the folders are named in a specific way using <code>YYYY-MM-DD-blog-post-url</code>, and so Quarto will render this to a folder called <code>YYYY-MM-DD-blog-post-url</code>. All I really need to do is rename this folder after it’s been rendered to remove the date prefix. We’re going to write a script that does that automatically when rendering!</p>
<p>The following is a bash script (called <code>postprocess.sh</code> and saved in the root directory of the project) which renames the subfolders within the <code>blog</code> and <code>talks</code> directories. It also goes through each file, and the listing page, to fix any links that exist within it.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb5" style="background: #f1f3f5;"><pre class="sourceCode bash code-with-copy"><code class="sourceCode bash"><span id="cb5-1"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">#!/bin/bash</span></span>
<span id="cb5-2"><span class="bu" style="color: null;
background-color: null;
font-style: inherit;">set</span> <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">-e</span></span>
<span id="cb5-3"></span>
<span id="cb5-4"><span class="bu" style="color: null;
background-color: null;
font-style: inherit;">echo</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Starting post-processing for blog/ and talks/..."</span></span>
<span id="cb5-5"></span>
<span id="cb5-6"><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">SECTIONS</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">(</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"blog"</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"talks"</span> <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">)</span></span>
<span id="cb5-7"></span>
<span id="cb5-8"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># === Part 1: Fix dated URLs in listing and site files ===</span></span>
<span id="cb5-9"><span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> section <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">${SECTIONS</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">[@]</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">}</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">;</span> <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">do</span></span>
<span id="cb5-10">  <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">FILES</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">(</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$section</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">/index.html"</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$section</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">/index.xml"</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$section</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">/index-r.xml"</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"listings.json"</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"search.json"</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"sitemap.xml"</span> <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">)</span></span>
<span id="cb5-11">  <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> f <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">${FILES</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">[@]</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">}</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">;</span> <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">do</span></span>
<span id="cb5-12">    <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">full_path</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"docs/</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$f</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span></span>
<span id="cb5-13">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">[</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">-f</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$full_path</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">]</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">;</span> <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">then</span></span>
<span id="cb5-14">      <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">echo</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Fixing dated URLs in </span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$full_path</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">..."</span></span>
<span id="cb5-15">      <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Replace dated folder prefixes anywhere (including image URLs)</span></span>
<span id="cb5-16">      <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">sed</span> <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">-i</span> <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">-E</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"s#(/</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$section</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">/)[0-9]{4}-[0-9]{2}-[0-9]{2}-(.+?)/#\1\2/#g"</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$full_path</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span></span>
<span id="cb5-17">      <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Also fix relative URLs with ../ prefix anywhere</span></span>
<span id="cb5-18">      <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">sed</span> <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">-i</span> <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">-E</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"s#(\.\./</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$section</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">/)[0-9]{4}-[0-9]{2}-[0-9]{2}-(.+?)/#\1\2/#g"</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$full_path</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span></span>
<span id="cb5-19">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">fi</span></span>
<span id="cb5-20">  <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">done</span></span>
<span id="cb5-21"><span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">done</span></span>
<span id="cb5-22"></span>
<span id="cb5-23"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># === Part 2: Fix all dated URLs inside listing HTML files ===</span></span>
<span id="cb5-24"><span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> section <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">${SECTIONS</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">[@]</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">}</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">;</span> <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">do</span></span>
<span id="cb5-25">  <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">FILE</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"docs/</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$section</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">/index.html"</span></span>
<span id="cb5-26">  <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">[</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">-f</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$FILE</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">]</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">;</span> <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">then</span></span>
<span id="cb5-27">    <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">echo</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Fixing all dated URLs in </span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$FILE</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"> ..."</span></span>
<span id="cb5-28">    <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">sed</span> <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">-i</span> <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">-E</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"s#(\.\./</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$section</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">/)[0-9]{4}-[0-9]{2}-[0-9]{2}-(.+?)(/index\.html|/featured\.png|/)#\1\2\3#g"</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$FILE</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span></span>
<span id="cb5-29">  <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">fi</span></span>
<span id="cb5-30"><span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">done</span></span>
<span id="cb5-31"></span>
<span id="cb5-32"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># === Part 3: Fix dated URLs inside each post/talk's own index.html ===</span></span>
<span id="cb5-33"><span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> section <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">${SECTIONS</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">[@]</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">}</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">;</span> <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">do</span></span>
<span id="cb5-34">  <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> d <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> docs/<span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$section</span>/20<span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">*</span>-<span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">*</span>-<span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">*</span>/<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">;</span> <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">do</span></span>
<span id="cb5-35">    <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">[</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">-d</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$d</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">]</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">||</span> <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">continue</span></span>
<span id="cb5-36">    <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">dated_slug</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$(</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">basename</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$d</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">)</span></span>
<span id="cb5-37">    <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">slug_only</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$(</span><span class="bu" style="color: null;
background-color: null;
font-style: inherit;">echo</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$dated_slug</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">|</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">sed</span> <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">-E</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'s/^[0-9]{4}-[0-9]{2}-[0-9]{2}-//'</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">)</span></span>
<span id="cb5-38">    <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">f</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">${d}</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">index.html"</span></span>
<span id="cb5-39">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">[</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">-f</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$f</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">]</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">;</span> <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">then</span></span>
<span id="cb5-40">      <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">echo</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Fixing paths in </span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$f</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">..."</span></span>
<span id="cb5-41">      <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">sed</span> <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">-i</span> <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">-E</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"s#([</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">\"</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'/])</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$section</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">/</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">${dated_slug}</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">#\1</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$section</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">/</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">${slug_only}</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">#g"</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$f</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span></span>
<span id="cb5-42">      <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">sed</span> <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">-i</span> <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">-E</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"s#https?://[^</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">\"</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">' &gt;]*/</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$section</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">/</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">${dated_slug}</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">#/</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$section</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">/</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">${slug_only}</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">#g"</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$f</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span></span>
<span id="cb5-43">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">fi</span></span>
<span id="cb5-44">  <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">done</span></span>
<span id="cb5-45"><span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">done</span></span>
<span id="cb5-46"></span>
<span id="cb5-47"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># === Part 4: Rename dated folders to slug-only folders ===</span></span>
<span id="cb5-48"><span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> section <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">${SECTIONS</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">[@]</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">}</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">;</span> <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">do</span></span>
<span id="cb5-49">  <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> d <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> docs/<span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$section</span>/20<span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">*</span>-<span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">*</span>-<span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">*</span>/<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">;</span> <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">do</span></span>
<span id="cb5-50">    <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">[</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">-d</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$d</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">]</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">||</span> <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">continue</span></span>
<span id="cb5-51">    <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">dated_slug</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$(</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">basename</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$d</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">)</span></span>
<span id="cb5-52">    <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">slug_only</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$(</span><span class="bu" style="color: null;
background-color: null;
font-style: inherit;">echo</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$dated_slug</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">|</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">sed</span> <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">-E</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'s/^[0-9]{4}-[0-9]{2}-[0-9]{2}-//'</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">)</span></span>
<span id="cb5-53">    <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">target</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"docs/</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$section</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">/</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">${slug_only}</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span></span>
<span id="cb5-54">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">[</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">!</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">-d</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$target</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">]</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">;</span> <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">then</span></span>
<span id="cb5-55">      <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">echo</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Renaming </span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$d</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"> -&gt; </span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$target</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span></span>
<span id="cb5-56">      <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mv</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$d</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">$target</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span></span>
<span id="cb5-57">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">fi</span></span>
<span id="cb5-58">  <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">done</span></span>
<span id="cb5-59"><span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">done</span></span>
<span id="cb5-60"></span>
<span id="cb5-61"><span class="bu" style="color: null;
background-color: null;
font-style: inherit;">echo</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Post-processing complete."</span></span></code></pre></div></div>
<p>To get this script to run automatically after the website is rendered, you can edit the <code>post-render</code> option in the <code>_quarto.yml</code> file:</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb6" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb6-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">project</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span></span>
<span id="cb6-2"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">  </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">type</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> website</span></span>
<span id="cb6-3"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">  </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">output-dir</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> docs</span></span>
<span id="cb6-4"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">  </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">post-render</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> bash ./postprocess.sh</span></span></code></pre></div></div>
<div class="callout callout-style-default callout-note callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Note
</div>
</div>
<div class="callout-body-container callout-body">
<p><a href="https://quarto.org/docs/websites/website-navigation.html#redirects" target="_blank">Redirects</a> are another solution for changing page URLs, but they still leave the <em>ugly</em> URL as the default.</p>
</div>
</div>
</section>
<section id="volume-of-pages" class="level3">
<h3 class="anchored" data-anchor-id="volume-of-pages">Volume of pages</h3>
<p>The reason that the conversion from Hugo to Quarto took me so long was the sheer volume of pages that needed converting - there were 57 blog posts and 64 talk pages to update alongside the main pages. Although I could have probably written a script to convert the YAML from Hugo to Quarto in an automated way, I did it manually for a few reasons:</p>
<ul>
<li>the YAML options in some of my older blog posts definitely weren’t written in a consistent way</li>
<li>files often had some custom Hugo shortcodes, and I want to make sure that no were accidentally left in</li>
<li>I wanted to inspect some of the older posts to make sure they all had alt text and would still work</li>
<li>I needed to check each page correctly rendered any way</li>
</ul>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Tip
</div>
</div>
<div class="callout-body-container callout-body">
<p>To render a single page (without formatting) of a website, rename it from <code>index.html</code> to <code>_index.html</code>. The prefix of the underscore tells Quarto it’s not part of the main site. This is useful when you’re drafting one page and want to check your computations all work before you render it within the rest of the site.</p>
</div>
</div>
</section>
<section id="home-page-layout" class="level3">
<h3 class="anchored" data-anchor-id="home-page-layout">Home page layout</h3>
<p>Although there are some <a href="https://quarto.org/docs/websites/website-about.html" target="_blank">built in options for home and about pages</a> with Quarto, the options are quite limited and none of them were quite what I was looking for. They’re also not easy to change. For my home page, I ended up just having it as a normal Quarto page and building the structure with the <code>grid</code> layout.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/quarto.png" class="lightbox" data-gallery="quarto-lightbox-gallery-2" title="Home page of my new Quarto website"><img src="https://nrennie.com/blog/2025-07-29-hugo-quarto-website/images/quarto.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt="Screenshot of Quarto site"></a></p>
</figure>
</div>
<figcaption>Home page of my new Quarto website</figcaption>
</figure>
</div>
</section>
</section>
<section id="how-do-you-make-it-easier" class="level2">
<h2 class="anchored" data-anchor-id="how-do-you-make-it-easier">How do you make it easier?</h2>
<p>If you’re thinking about switching to Quarto for your personal website, whether from Hugo or something else, here are a few things I’d recommend doing:</p>
<ul>
<li><p>Start with a very minimal version of your website, and get it up and running before you move all of your blog posts over. To do this, I re-built the website in a separate GitHub repository and then copied it over to my main website repository which, although not exactly Git best practice, made it easier to have the two sites deployed in different ways at the same time to compare the two.</p></li>
<li><p>Use <code>freeze: auto</code> when you’re building and tweaking parts of the website. This means a page will only be re-rendered if you edit it. When you’re totally happy with a blog post, change it to <code>freeze: true</code> to make sure it never gets re-rendered. This makes rendering your site faster and ensures that older blog posts won’t break when packages get updated.</p></li>
<li><p>Take your time! You don’t need to convert it all in one day - you can slowly convert a few pages at a time when you have the space to work on it.</p></li>
</ul>
<section id="useful-resources" class="level3">
<h3 class="anchored" data-anchor-id="useful-resources">Useful resources</h3>
<p>A few resources I found especially helpful:</p>
<ul>
<li>The <a href="https://quarto.org/docs/websites/" target="_blank">Quarto documentation about websites</a></li>
<li>Danielle Navarro’s blog post about <a href="https://blog.djnavarro.net/posts/2022-04-20_porting-to-quarto/#netlify-redirects" target="_blank">porting a distill blog to quarto</a>.</li>
<li>Ella Kaye’s blog post about <a href="https://ellakaye.co.uk/posts/2022-12-11_welcome-quarto/" target="_blank">inspiring and useful resources when building a new Quarto site</a></li>
<li>Silvia Canelón’s blog post about <a href="https://silviacanelon.com/blog/2023-09-29-hello-quarto/" target="_blank">porting a Website from Hugo Apéro to Quarto</a></li>
</ul>
<div class="callout callout-style-default callout-note callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Note
</div>
</div>
<div class="callout-body-container callout-body">
<p>If you do find a broken link on this site following the conversion from Hugo to Quarto, please let me know what page you were trying to access and if there was a link to it by raising a GitHub issue at <a href="https://github.com/nrennie/nrennie.github.io-comments" target="_blank">github.com/nrennie/nrennie.github.io-comments</a>.</p>
</div>
</div>


</section>
</section>

<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-reuse"><h2 class="anchored quarto-appendix-heading">Reuse</h2><div class="quarto-appendix-contents"><div><a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></div></div></section><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Citation</h2><div><div class="quarto-appendix-secondary-label">BibTeX citation:</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{rennie2025,
  author = {Rennie, Nicola},
  title = {Switching My Website from {Hugo} to {Quarto}},
  date = {2025-07-29},
  url = {https://nrennie.com/blog/2025-07-29-hugo-quarto-website/},
  langid = {en}
}
</code></pre><div class="quarto-appendix-secondary-label">For attribution, please cite this work as:</div><div id="ref-rennie2025" class="csl-entry quarto-appendix-citeas">
Rennie, Nicola. 2025. <span>“Switching My Website from Hugo to
Quarto.”</span> July 29. <a href="https://nrennie.com/blog/2025-07-29-hugo-quarto-website/">https://nrennie.com/blog/2025-07-29-hugo-quarto-website/</a>.
</div></div></section></div> ]]></description>
  <category>R</category>
  <category>Quarto</category>
  <guid>https://nrennie.com/blog/2025-07-29-hugo-quarto-website/</guid>
  <pubDate>Tue, 29 Jul 2025 00:00:00 GMT</pubDate>
  <media:content url="https://nrennie.com/blog/2025-07-29-hugo-quarto-website/featured.png" medium="image" type="image/png" height="103" width="144"/>
</item>
<item>
  <title>How to choose an IDE</title>
  <dc:creator>Nicola Rennie</dc:creator>
  <link>https://nrennie.com/blog/2025-07-11-how-choose-ide/</link>
  <description><![CDATA[ 





<p>When it comes to choosing an IDE to install there are lots of different choices out there, each with different pros and cons. This blog post isn’t about recommending or endorsing any specific IDE, but more about what questions you might want to ask yourself before you make your own decision.</p>
<blockquote class="blockquote">
<p>This blog post is written from the perspective of someone who uses an IDE when working on data wrangling and modelling tasks, building charts with code, and doing front-end development. However, it should also be useful even if you primarily use an IDE for something else.</p>
</blockquote>
<section id="what-is-an-ide" class="level2">
<h2 class="anchored" data-anchor-id="what-is-an-ide">What is an IDE?</h2>
<p>I’ve mentioned the term <em>IDE</em> several times already, but I haven’t actually mentioned what I mean by that yet. IDE stands for <em>Integrated Development Environment</em> - which doesn’t necessarily clear up what it is! An IDE is essentially an application you can install on your laptop which provides a (nice) user interface when writing and developing code. Some IDEs you may have heard of are VS Code (Visual Studio Code), Jupyter Notebook, or RStudio.</p>
</section>
<section id="questions-to-ask-yourself" class="level2">
<h2 class="anchored" data-anchor-id="questions-to-ask-yourself">Questions to ask yourself</h2>
<p>If you’re just getting started with programming, or about to start teaching computer science next semester, or setting up a new laptop; you might be thinking about which IDE you’re going to install. These are a few questions that I think it’s important to consider before you decide what to download.</p>
<section id="do-you-really-need-a-new-ide" class="level3">
<h3 class="anchored" data-anchor-id="do-you-really-need-a-new-ide">Do you really need a new IDE?</h3>
<p>If you’re brand new to programming and have never installed an IDE before, feel free to skip ahead to the next question. But if you already have an IDE installed and set up, why are you thinking about changing to a different one? If there’s a specific feature missing in your current set up that you would really benefit from, then switching to another IDE that has that feature might make a lot of sense. But if your current set up is working well, think about why you’re really considering using something else. Are you just worried about missing out on the shiny, new thing? Or going to be working with a new team who all use a different IDE to you? Not needing a new IDE doesn’t always mean don’t switch but <em>if ain’t broke, don’t fix it.</em></p>
</section>
<section id="how-easy-is-it-to-install-and-update" class="level3">
<h3 class="anchored" data-anchor-id="how-easy-is-it-to-install-and-update">How easy is it to install and update?</h3>
<p>Most IDEs can be installed by downloading an installer package from the IDE’s official website and then running it on your laptop. However, some IDEs (especially newly developed ones) may only be installed through a package manager like Homebrew on macOS or apt on Linux. If you’re new to programming, you’ll likely find it easier to download and install software using an installer from the IDEs website.</p>
<p>Widely used and popular IDEs are likely better (or perhaps the only) choices if you’re working in organisations where there are restrictions on the software you are able to install. And if you’re forced to use one IDE all day at work, it might become more familiar and so it’s easier to use the same set up for personal projects.</p>
</section>
<section id="what-features-do-you-need-in-an-ide" class="level3">
<h3 class="anchored" data-anchor-id="what-features-do-you-need-in-an-ide">What features do you need in an IDE?</h3>
<p>If you’re considering switching from your current IDE to something new, there’s likely something that your current set up is <em>missing</em>. Write down a list of features that are absolutely essential for your day-to-day work.</p>
<p>Some common features might include:</p>
<ul>
<li>Integration with git</li>
<li>Syntax highlighting for your programming language of choice</li>
<li>Built-in file browser</li>
<li>Ability to view charts</li>
<li>Live preview of HTML documents</li>
</ul>
<p>Consider to what extent these required features are available in the new IDE you are considering. Are they always available? Are they only partially available? For example, do you need a GUI (graphical user interface) for working with git, or are you happy working from a terminal? For example, in RStudio, there’s no GUI for git unless you’re working in an R project. Although R projects are really useful, you might not want to create one every time - especially if you’re working on something simple.</p>
<div class="grid">
<div class="g-col-6">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/rstudio1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1" title="The GUI for git in RStudio appears in the Environment pane…"><img src="https://nrennie.com/blog/2025-07-11-how-choose-ide/images/rstudio1.png" class="img-fluid figure-img" alt="A screenshot of RStudio with a git pane"></a></p>
<figcaption>The GUI for git in RStudio appears in the Environment pane…</figcaption>
</figure>
</div>
</div>
<div class="g-col-6">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/rstudio2.png" class="lightbox" data-gallery="quarto-lightbox-gallery-2" title="…but only if you are in a git repository AND in an R project."><img src="https://nrennie.com/blog/2025-07-11-how-choose-ide/images/rstudio2.png" class="img-fluid figure-img" alt="A screenshot of RStudio with no git pane"></a></p>
<figcaption>…but only if you are in a git repository AND in an R project.</figcaption>
</figure>
</div>
</div>
</div>
</section>
<section id="how-many-features-do-you-need" class="level3">
<h3 class="anchored" data-anchor-id="how-many-features-do-you-need">How many features do you need?</h3>
<p>If the IDE you are considering has all of the features you <em>need</em>, think about how many other features it might also have. For those involved in teaching programming, you might not just be thinking about an IDE for yourself but also for your students. An IDE that has fewer features may be less overwhelming for those who are new to programming as they’re unlikely to immediately require all of those features.</p>
</section>
<section id="how-much-do-you-want-to-customise-it" class="level3">
<h3 class="anchored" data-anchor-id="how-much-do-you-want-to-customise-it">How much do you want to customise it?</h3>
<p>Most IDEs allow you to customise simple aesthetic features like the colour scheme or font size reasonably easily. But you may want further customisation, like changing the layout or your own keyboard shortcuts. You might want to investigate how easy these customisations are to do, and how easy it is to make sure they persist across different sessions. If you don’t know how to make your customisations and are struggling to find information about how to do it in a specific IDE, but it’s something you really want to do - maybe reconsider that choice of IDE!</p>
<blockquote class="blockquote">
<p>Customisation isn’t always about adding features, it’s also about removing features you don’t want. If you really hate clutter and not being able to remove it, then a simple text editor might actually be a good option.</p>
</blockquote>
</section>
<section id="how-much-does-having-a-single-ide-really-matter-to-you" class="level3">
<h3 class="anchored" data-anchor-id="how-much-does-having-a-single-ide-really-matter-to-you">How much does having a single IDE really matter to you?</h3>
<p>There are plenty of IDEs that are designed as general IDEs for different tasks and languages, and there are others that are designed to work for a specific task or language. Any piece of software that is designed for task A, B, C, D, and E, will almost never be as good at task A as a piece of software designed specifically for task A. But the benefit is only have to install and use one thing. If having multiple IDEs isn’t an issue for you, then you broaden the scope of which ones you can choose from.</p>
</section>
<section id="how-free-and-open-source-is-it" class="level3">
<h3 class="anchored" data-anchor-id="how-free-and-open-source-is-it">How free and open source is it?</h3>
<p>Software that is free to download is often a more attractive choice for obvious reasons, especially if you’re just trying it out. <em>Open source</em> means the source code for the IDE is publicly available for anyone to view, use, modify, and share. This usually means more community support, and faster bug fixes.</p>
<p>But free to download doesn’t automatically mean open source. For example, VS Code is proprietary software released under the <em>Microsoft Software License</em> but it’s based on the MIT licensed program named <em>Visual Studio Code – Open Source</em>, also created by Microsoft.</p>
<p>Using software that is not open source means that it could cease to be available in the future which potentially has implications in terms of the reproducibility of your work.</p>
</section>
<section id="how-easy-is-it-to-find-help" class="level3">
<h3 class="anchored" data-anchor-id="how-easy-is-it-to-find-help">How easy is it to find help?</h3>
<p>Some IDEs come with instructions or tips about where to find things when you first install (or update) it. Other IDEs might require a lot of custom set up and come with no instructions. Choosing an IDE with a large user base often makes it far easier to find help - community written tutorials, old StackOverflow posts, and GitHub issues are all really helpful when debugging your set up. The bigger the community, the more of those helpful things that will exist. Highly customisable or newer IDEs might be more powerful, but they can leave you digging deeper for answers when problems arise.</p>
</section>
<section id="how-stable-is-it" class="level3">
<h3 class="anchored" data-anchor-id="how-stable-is-it">How stable is it?</h3>
<p>If the IDE you are considering is quite new and still being actively developed, it might not immediately have all the features you require, and you’re likely to have to update and re-install it more often. It’s also possible that features and how it works will change and so the learning curve might be a bit more wiggly. Using an IDE that has been in a stable state for a while, is likely to be a better option for beginners. On the other hand, if the IDE is not being actively maintained at all, it’s likely that anything that’s broken or not working the way you want it to, will stay that way.</p>
</section>
</section>
<section id="further-resources" class="level2">
<h2 class="anchored" data-anchor-id="further-resources">Further resources</h2>
<p>If you want to dive a bit more deeply into comparisons between specific IDEs, these resources are ones I’ve found really helpful:</p>
<ul>
<li><p>Athanasia Mo Mowinckel has a really good <a href="https://drmowinckels.io/blog/2024/ide/" target="_blank">blog post about the different IDEs she has used</a> which includes a comparison of the features available in some of the most common choices.</p></li>
<li><p>Andrew Heiss wrote this nice <a href="https://www.andrewheiss.com/blog/2024/07/08/fun-with-positron/" target="_blank">Introduction to Positron blog post</a> about the new IDE that’s a bit of a combination of VS Code and RStudio.</p></li>
</ul>
<p>Do you have a favourite IDE? Or another reason for choosing it? Share your opinions in the comments!</p>


</section>

<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-reuse"><h2 class="anchored quarto-appendix-heading">Reuse</h2><div class="quarto-appendix-contents"><div><a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></div></div></section><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Citation</h2><div><div class="quarto-appendix-secondary-label">BibTeX citation:</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{rennie2025,
  author = {Rennie, Nicola},
  title = {How to Choose an {IDE}},
  date = {2025-07-11},
  url = {https://nrennie.com/blog/2025-07-11-how-choose-ide/},
  langid = {en}
}
</code></pre><div class="quarto-appendix-secondary-label">For attribution, please cite this work as:</div><div id="ref-rennie2025" class="csl-entry quarto-appendix-citeas">
Rennie, Nicola. 2025. <span>“How to Choose an IDE.”</span> July 11. <a href="https://nrennie.com/blog/2025-07-11-how-choose-ide/">https://nrennie.com/blog/2025-07-11-how-choose-ide/</a>.
</div></div></section></div> ]]></description>
  <category>R</category>
  <category>Python</category>
  <guid>https://nrennie.com/blog/2025-07-11-how-choose-ide/</guid>
  <pubDate>Fri, 11 Jul 2025 00:00:00 GMT</pubDate>
  <media:content url="https://nrennie.com/blog/2025-07-11-how-choose-ide/featured.png" medium="image" type="image/png" height="103" width="144"/>
</item>
<item>
  <title>Build your own TARDIS with D3</title>
  <dc:creator>Nicola Rennie</dc:creator>
  <link>https://nrennie.com/blog/2025-06-02-build-your-own-tardis-d3/</link>
  <description><![CDATA[ 





<p>If you’ve been following these blog posts for a little while, you’ll know that I’m a big fan of <a href="https://github.com/rfordatascience/tidytuesday" target="_blank">TidyTuesday</a>, a weekly social data project where participants explore a new dataset, create something from it (often a visualisation), and share the result and code with the community. Back in 2023, one of the datasets was all about <a href="https://github.com/rfordatascience/tidytuesday/blob/main/data/2023/2023-11-28/readme.md" target="_blank">Doctor Who episodes</a>, and the chart I created that week compared viewership across each seasons and featured an image of a <a href="https://en.wikipedia.org/wiki/TARDIS" target="_blank">TARDIS</a>:</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/20231128.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1"><img src="https://nrennie.com/blog/2025-06-02-build-your-own-tardis-d3/images/20231128.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:80.0%" alt=""></a></p>
</figure>
</div>
<p>What you might not immediately notice, is that the TARDIS section of the chart is not an image, it’s actually a data visualisation built with <code>ggplot2</code> in R:</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/tardis.png" class="lightbox" data-gallery="quarto-lightbox-gallery-2"><img src="https://nrennie.com/blog/2025-06-02-build-your-own-tardis-d3/images/tardis.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:80.0%" alt=""></a></p>
</figure>
</div>
<p>Earlier this year, to gain more experience in working with <a href="https://d3js.org/" target="_blank">D3.js</a>, I decided to recreate the TARDIS chart. So in this blog post, we’ll do two things:</p>
<ul>
<li>Recreate the static version using D3 instead of R</li>
<li>Add interactivity which shows users fun Doctor Who facts</li>
</ul>
<blockquote class="blockquote">
<p>New to D3? The <a href="https://www.d3indepth.com/" target="_blank">D3 in Depth</a> book is a good tutorial for getting started. I also recommend checking out the <a href="https://d3-graph-gallery.com/" target="_blank">D3 Graph Gallery</a> for some inspiration (with editable code)!</p>
</blockquote>
<section id="building-a-static-version" class="level2">
<h2 class="anchored" data-anchor-id="building-a-static-version">Building a static version</h2>
<p>We’ll start by creating an HTML file which loads the D3 library, a JavaScript file called <code>chart.js</code> where we’ll put our plotting code, and a CSS file to apply styling. Importantly, the HTML file should also include a <code>div</code> with an <code>id</code> of <code>chart</code>, as this is where our chart will appear. You can use a different <code>id</code> if you want, just make sure to also change it in the corresponding chart code later.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode html code-with-copy"><code class="sourceCode html"><span id="cb1-1"><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;!doctype</span> html<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&gt;</span></span>
<span id="cb1-2"><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">html</span><span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;"> lang</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"en"</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&gt;</span></span>
<span id="cb1-3"><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">head</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&gt;</span></span>
<span id="cb1-4">  <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">meta</span><span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;"> charset</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"UTF-8"</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&gt;</span></span>
<span id="cb1-5">  <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">meta</span><span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;"> name</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"viewport"</span><span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;"> content</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"width=device-width, initial-scale=1"</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&gt;</span></span>
<span id="cb1-6">  <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">link</span><span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;"> rel</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"stylesheet"</span><span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;"> href</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"style.css"</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&gt;</span></span>
<span id="cb1-7">  <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">script</span><span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;"> src</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"https://d3js.org/d3.v7.min.js"</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&gt;&lt;/</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">script</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&gt;</span></span>
<span id="cb1-8">  <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">script</span><span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;"> src</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"chart.js"</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&gt;&lt;/</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">script</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&gt;</span></span>
<span id="cb1-9"><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;/</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">head</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&gt;</span></span>
<span id="cb1-10"><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">body</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&gt;</span></span>
<span id="cb1-11"><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">div</span><span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;"> id</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"chart"</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&gt;&lt;/</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">div</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&gt;</span></span>
<span id="cb1-12"><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;/</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">body</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&gt;</span></span></code></pre></div></div>
<p>Now, in the <code>chart.js</code> file, we’re going to set up the basic for our chart, and define a function called <code>tardis()</code> that will draw the TARDIS. It has an argument called <code>data</code> which we’ll come back to in a little bit. We define a width and height for the chart. Here, I’ve used a 4 by 6 ratio because it’s quite a standard size and roughly matches the aspect ratio of a TARDIS. We also set up the <code>x</code> and <code>y</code> axis scales, to define the grid that we’ll be drawing on. Here, we set the x axis to go between 0 and 80, and the y-axis to go between 0 and 120. Note that these also use a 4 by 6 ratio, so that our chart doesn’t end up squashed in one direction. You could just use 0-400 and 0-600 as your grid, but I find it easier to work with slightly smaller numbers and this makes it simpler if you want to change the size later.</p>
<p>We also set up our chart container, with the <code>id</code> of <code>chart</code> to match the HTML file, and set up the SVG with the correct width and height.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript"><span id="cb2-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">function</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">tardis</span>(data) {</span>
<span id="cb2-2">  <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">const</span> width <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">400</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span>
<span id="cb2-3">  <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">const</span> height <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">600</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span>
<span id="cb2-4"></span>
<span id="cb2-5">  <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">const</span> xScale <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> d3<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scaleLinear</span>()</span>
<span id="cb2-6">      <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">domain</span>([ <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">80</span> ])</span>
<span id="cb2-7">      <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">range</span>([ <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> width ])<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span>
<span id="cb2-8">  </span>
<span id="cb2-9">  <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">const</span> yScale <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> d3<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scaleLinear</span>()</span>
<span id="cb2-10">      <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">domain</span>([<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">120</span>])</span>
<span id="cb2-11">      <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">range</span>([ <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> height ])<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span>
<span id="cb2-12">  </span>
<span id="cb2-13">  <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">const</span> chartContainer <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> d3<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">select</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#chart"</span>)<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span>
<span id="cb2-14">  </span>
<span id="cb2-15">  <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">const</span> svg <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> chartContainer</span>
<span id="cb2-16">    <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">append</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"svg"</span>)</span>
<span id="cb2-17">    <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">attr</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"viewBox"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="vs" style="color: #20794D;
background-color: null;
font-style: inherit;">`0 0 </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">${</span>width<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span><span class="vs" style="color: #20794D;
background-color: null;
font-style: inherit;"> </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">${</span>height<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span><span class="vs" style="color: #20794D;
background-color: null;
font-style: inherit;">`</span>)</span>
<span id="cb2-18">    <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">attr</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"preserveAspectRatio"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"xMidYMid meet"</span>)</span>
<span id="cb2-19">    <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">style</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"width"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"100%"</span>)</span>
<span id="cb2-20">    <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">style</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"height"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"auto"</span>)</span>
<span id="cb2-21">    <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">append</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"g"</span>)<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span>
<span id="cb2-22">}<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span></code></pre></div></div>
<section id="drawing-the-base" class="level3">
<h3 class="anchored" data-anchor-id="drawing-the-base">Drawing the base</h3>
<p>To draw the main base of the TARDIS i.e.&nbsp;the blue shape in the background, we could create a complex polygon with lots of corners. However, it’s actually easier to create this shape by overlaying multiple rectangles. And we’re going to start by creating a CSV file that contains the data to draw these rectangles.</p>
<p>We have two columns <code>x</code> and <code>y</code> that define the starting corner of each rectangle, and the <code>rWidth</code> and <code>rHeight</code> defines how wide and tall each rectangle is. We also create a column, <code>fillCol</code>, with the hex code that defines what colour the rectangle should be filled with (the rectangle will also be outlined with the same colour), and two columns for the transparency. Although we don’t really need the <code>fillCol</code>, <code>fillOpacity</code>, or <code>strokeOpacity</code> columns for just the base, we’ll make use of them later when we draw more elements. The data initial data looks like this:</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode md code-with-copy"><code class="sourceCode markdown"><span id="cb3-1">x,y,rWidth,rHeight,fillCol,fillOpacity,strokeOpacity</span>
<span id="cb3-2">10,30,60,90,#003B6F,1,1</span>
<span id="cb3-3">8,110,64,10,#003B6F,1,1</span>
<span id="cb3-4">8,26,64,6.5,#003B6F,1,1</span>
<span id="cb3-5">10,25,60,1,#003B6F,1,1</span>
<span id="cb3-6">13,21,54,4,#003B6F,1,1</span>
<span id="cb3-7">15,18,50,3,#003B6F,1,1</span></code></pre></div></div>
<p>We then add the following code inside the <code>tardis()</code> function to draw the rectangles based on this data we’ve created. We use the <code>attr()</code> function to set the <code>x</code>, <code>y</code>, <code>width</code> and <code>height</code> values based on the columns in the data, using the <code>xScale()</code> and <code>yScale()</code> to make sure they scale correctly to the chart area. We then apply the <code>style()</code> function to set the fill and stroke colours, alongside the opacity of each, again based on the columns in the data. In this example, I’ve set the stroke to <code>"red"</code> just so that you can see how the rectangles fit together to create the shape. In the real version, the stroke is set to the <code>fillCol</code> column using the commented out line of code below:</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb4" style="background: #f1f3f5;"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript"><span id="cb4-1">svg<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">selectAll</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'rect'</span>)</span>
<span id="cb4-2">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">data</span>(data)</span>
<span id="cb4-3">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">enter</span>()</span>
<span id="cb4-4">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">append</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'rect'</span>)</span>
<span id="cb4-5">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">attr</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'x'</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> d <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">=&gt;</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">xScale</span>(d<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x</span>))</span>
<span id="cb4-6">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">attr</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'y'</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> d <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">=&gt;</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">yScale</span>(d<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y</span>))</span>
<span id="cb4-7">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">attr</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'width'</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> d <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">=&gt;</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">xScale</span>(d<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">rWidth</span>))</span>
<span id="cb4-8">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">attr</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'height'</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> d <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">=&gt;</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">yScale</span>(d<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">rHeight</span>))</span>
<span id="cb4-9">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">style</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'fill'</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> d <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">=&gt;</span> d<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">fillCol</span>)</span>
<span id="cb4-10">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">style</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'fill-opacity'</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> d <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">=&gt;</span> d<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">fillOpacity</span>)</span>
<span id="cb4-11">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">style</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'stroke'</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"red"</span>)</span>
<span id="cb4-12">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">// .style('stroke', d =&gt; d.fillCol)</span></span>
<span id="cb4-13">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">style</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'stroke-opacity'</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> d <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">=&gt;</span> d<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">strokeOpacity</span>)<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span></code></pre></div></div>
<p>We also need to make sure the input data is connected to the <code>tardis()</code> function. After the function definition, we read in the data and call the function with that data. We need to make sure that D3 interprets the columns we read in from the CSV file in the correct way (either character or numeric), before passing it to our <code>tardis()</code> function:</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb5" style="background: #f1f3f5;"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript"><span id="cb5-1"><span class="bu" style="color: null;
background-color: null;
font-style: inherit;">Promise</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">all</span>([</span>
<span id="cb5-2">    d3<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">csv</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'data.csv'</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> d <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">=&gt;</span> ({</span>
<span id="cb5-3">      <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">x</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span>d<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb5-4">      <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">y</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span>d<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb5-5">      <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">rWidth</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span>d<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">rWidth</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb5-6">      <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">rHeight</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span>d<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">rHeight</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb5-7">      <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">fillCol</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> d<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">fillCol</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb5-8">      <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">fillOpacity</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span>d<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">fillOpacity</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb5-9">      <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">strokeOpacity</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span>d<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">strokeOpacity</span></span>
<span id="cb5-10">    }))</span>
<span id="cb5-11">  ])<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">then</span>(([data]) <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">=&gt;</span> {</span>
<span id="cb5-12">    <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">tardis</span>(data)<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span>
<span id="cb5-13">})<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span></code></pre></div></div>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/step1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-3"><img src="https://nrennie.com/blog/2025-06-02-build-your-own-tardis-d3/images/step1.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:80.0%" alt=""></a></p>
</figure>
</div>
</section>
<section id="adding-some-more-rectangles" class="level3">
<h3 class="anchored" data-anchor-id="adding-some-more-rectangles">Adding some more rectangles</h3>
<p>We now need to add more rectangles to our chart to draw the windows, panels, and similar elements. We add these to the same data file for the base rectangles, again specifying the <code>x</code>, <code>y</code>, <code>rHeight</code>, and <code>rWidth</code> columns. However, for these new rectangles, we change the colours and the opacity.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb6" style="background: #f1f3f5;"><pre class="sourceCode md code-with-copy"><code class="sourceCode markdown"><span id="cb6-1">x,y,rWidth,rHeight,fillCol,fillOpacity,strokeOpacity</span>
<span id="cb6-2">15,33,50,82,white,0.05,0.3</span>
<span id="cb6-3">17,95,18,18,white,0.05,0.3</span>
<span id="cb6-4">17,75,18,18,white,0.05,0.3</span>
<span id="cb6-5">17,55,18,18,white,0.05,0.3</span>
<span id="cb6-6">17,35,18,18,white,0.75,0.3</span></code></pre></div></div>
<p>The windows at the top also have some lines on them. Although we could follow a similar process of creating a data file to draw some lines as a <code>path</code>, we’re going to <em>cheat</em> slightly and consider lines as just very thin rectangles. This means we can just add a few more lines to this data file.</p>
<details>
<summary>
Show full CSV file
</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb7" style="background: #f1f3f5;"><pre class="sourceCode md code-with-copy"><code class="sourceCode markdown"><span id="cb7-1">x,y,rWidth,rHeight,fillCol,fillOpacity,strokeOpacity</span>
<span id="cb7-2">10,30,60,90,#003B6F,1,1</span>
<span id="cb7-3">8,110,64,10,#003B6F,1,1</span>
<span id="cb7-4">8,26,64,6.5,#003B6F,1,1</span>
<span id="cb7-5">10,25,60,1,#003B6F,1,1</span>
<span id="cb7-6">13,21,54,4,#003B6F,1,1</span>
<span id="cb7-7">15,18,50,3,#003B6F,1,1</span>
<span id="cb7-8">15,33,50,82,white,0.05,0.3</span>
<span id="cb7-9">17,95,18,18,white,0.05,0.3</span>
<span id="cb7-10">17,75,18,18,white,0.05,0.3</span>
<span id="cb7-11">17,55,18,18,white,0.05,0.3</span>
<span id="cb7-12">17,35,18,18,white,0.75,0.3</span>
<span id="cb7-13">17.2,43.75,17.6,0.5,#003B6F,1,1</span>
<span id="cb7-14">22.75,35.2,0.5,17.6,#003B6F,1,1</span>
<span id="cb7-15">28.75,35.2,0.5,17.6,#003B6F,1,1</span>
<span id="cb7-16">45,95,18,18,white,0.05,0.3</span>
<span id="cb7-17">45,75,18,18,white,0.05,0.3</span>
<span id="cb7-18">45,55,18,18,white,0.05,0.3</span>
<span id="cb7-19">45,35,18,18,white,0.75,0.3</span>
<span id="cb7-20">45.2,43.75,17.6,0.5,#003B6F,1,1</span>
<span id="cb7-21">50.75,35.2,0.5,17.6,#003B6F,1,1</span>
<span id="cb7-22">56.75,35.2,0.5,17.6,#003B6F,1,1</span>
<span id="cb7-23">35,8,10,10,grey,1,1</span>
<span id="cb7-24">36,8,8,10,lightgrey,1,1</span>
<span id="cb7-25">35,8,10,2,black,1,1</span>
<span id="cb7-26">35,15.6,10,2.5,black,1,1</span>
<span id="cb7-27">12,26,56,5.5,black,1,1</span>
<span id="cb7-28">19,56,14,16,grey,1,1</span>
<span id="cb7-29">43,61,1,7,grey,1,1</span></code></pre></div></div>
</details>
<p>Since the columns in the CSV file specify everything about how the rectangles look, we don’t need to make any further adjustments to the JavaScript in the <code>tardis()</code> function, as our existing code will draw these additional elements.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/step2.png" class="lightbox" data-gallery="quarto-lightbox-gallery-4"><img src="https://nrennie.com/blog/2025-06-02-build-your-own-tardis-d3/images/step2.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:80.0%" alt=""></a></p>
</figure>
</div>
</section>
<section id="adding-text-and-circles" class="level3">
<h3 class="anchored" data-anchor-id="adding-text-and-circles">Adding text and circles</h3>
<p>We now want to draw some text and circles to add the final details. We could take a similar approach as before in using a csv file, but we have only a few circles and text elements to draw, so we could just draw these individually:</p>
<p>For example, to add the <code>POLICE</code> text to the top of the base, we use:</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb8" style="background: #f1f3f5;"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript"><span id="cb8-1">svg<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">append</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"text"</span>)</span>
<span id="cb8-2">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">attr</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"text-anchor"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"middle"</span>)</span>
<span id="cb8-3">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">attr</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"y"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">yScale</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">30</span>))</span>
<span id="cb8-4">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">attr</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"x"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">xScale</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">25</span>))</span>
<span id="cb8-5">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">text</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"POLICE"</span>)</span>
<span id="cb8-6">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">style</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"font-size"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"16px"</span>)</span>
<span id="cb8-7">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">style</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"fill"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"white"</span>)<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span></code></pre></div></div>
<p>We then repeat this process for the word <code>BOX</code>, <code>PUBLIC CALL</code>, and the notice on the door. You could treat <code>POLICE BOX</code> as one element, but I found it easier to position it the way I wanted by doing them separately.</p>
<p>We can also add the following code to draw a small circle, forming part of the door handle:</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb9" style="background: #f1f3f5;"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript"><span id="cb9-1"> svg<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">append</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"circle"</span>)</span>
<span id="cb9-2">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">attr</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"cy"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">yScale</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">74</span>))</span>
<span id="cb9-3">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">attr</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"cx"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">xScale</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">44</span>))</span>
<span id="cb9-4">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">attr</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"r"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">4</span>)</span>
<span id="cb9-5">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">style</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"fill"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"white"</span>)<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span></code></pre></div></div>
<p>We can repeat a few times for the other circular elements.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/step3.png" class="lightbox" data-gallery="quarto-lightbox-gallery-5"><img src="https://nrennie.com/blog/2025-06-02-build-your-own-tardis-d3/images/step3.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:80.0%" alt=""></a></p>
</figure>
</div>
</section>
</section>
<section id="adding-interactivity" class="level2">
<h2 class="anchored" data-anchor-id="adding-interactivity">Adding interactivity</h2>
<p>We’re going add some tooltips to the TARDIS chart which display interesting facts about Doctor Who.</p>
<section id="tooltips-data" class="level3">
<h3 class="anchored" data-anchor-id="tooltips-data">Tooltips data</h3>
<p>We’ll add 8 different tooltips that are activated by hovering over the squares on the TARDIS doors. One slight issue with this approach is that some of the squares are currently underneath other elements e.g.&nbsp;the bars on the windows. This means that if we just go straight ahead and attach the tooltips to the squares, the hover effects will be quite odd and will be switching on and off where there are other elements on top of the squares.</p>
<p>To get around this problem, we’re simply going to draw new transparent squares on top of the ones that already exist, and add the tooltips to these. We don’t necessarily need to do this for all 8 squares, but I found it easier to keep all the tooltips data together. We could add these transparent squares to the CSV file that draws the rectangles, but I’m going to create a new CSV file that has the <code>x</code>, <code>y</code>, <code>rWidth</code>, and <code>rHeight</code> columns as before. We don’t need any of the colour-related columns as everything will be fully transparent. However, we will add a new column, <code>tooltipText</code>, which as the name suggests contains the text to be included in the tooltip.</p>
<p>In that <code>tooltipText</code>, we write out the 8 facts we want to appear. The examples used here are adapted from some of the facts at <a href="https://www.saga.co.uk/magazine/entertainment/doctor-who-25-fascinating-facts" target="_blank">www.saga.co.uk/magazine/entertainment/doctor-who-25-fascinating-facts</a>. You might notice that we use HTML to apply styling to the text e.g.&nbsp;italics tags, <code>&lt;i&gt;&lt;/i&gt;</code>, for episode names. Our tooltips data looks like this:</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb10" style="background: #f1f3f5;"><pre class="sourceCode md code-with-copy"><code class="sourceCode markdown"><span id="cb10-1">x,y,rWidth,rHeight,tooltipText</span>
<span id="cb10-2">17,95,18,18,"TARDIS stands for Time And Relative Dimension In Space. It resembles an old police box because its <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">i</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&gt;</span>chameleon circuit<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;/</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">i</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&gt;</span> broke during a visit to London."</span>
<span id="cb10-3">17,75,18,18,"Tenth Doctor David Tennant’s childhood ambition was to play the Doctor. He had a Doctor doll and wrote school essays inspired by the show."</span>
<span id="cb10-4">17,55,18,18,"Ninety-seven of the show’s episodes are not held in the BBC’s archives, as many were wiped between 1967 and 1978."</span>
<span id="cb10-5">17,35,18,18,"The Daleks first appeared on 21 December 1963, in the show’s fifth episode."</span>
<span id="cb10-6">45,95,18,18,"The 50th anniversary episode, <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">i</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&gt;</span>The Day of the Doctor<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;/</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">i</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&gt;</span>, was the world’s biggest TV drama simulcast, showing in 98 countries."</span>
<span id="cb10-7">45,75,18,18,"The first episode of Doctor Who aired on Saturday, 23 November 1963, and initially ended in 1989, before being relaunched in 2005."</span>
<span id="cb10-8">45,55,18,18,"In a 2000 industry poll, Doctor Who placed third in a list of the 100 Greatest British Television Programmes of the 20th century."</span>
<span id="cb10-9">45,35,18,18,"Mission to the Unknown (1965) is the only episode in the series’ history not to feature the Doctor."</span></code></pre></div></div>
</section>
<section id="implementing-tooltips" class="level3">
<h3 class="anchored" data-anchor-id="implementing-tooltips">Implementing tooltips</h3>
<p>We need to adapt the code that reads in the data and runs the <code>tardis()</code> function because we now have a second data set to read in. Again, we need to make sure the columns are read in with the correct type. Notice that the <code>tardis()</code> function now has two arguments: <code>data</code> and <code>tooltipsData</code>:</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb11" style="background: #f1f3f5;"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript"><span id="cb11-1"><span class="bu" style="color: null;
background-color: null;
font-style: inherit;">Promise</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">all</span>([</span>
<span id="cb11-2">  d3<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">csv</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'data.csv'</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> d <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">=&gt;</span> ({</span>
<span id="cb11-3">    <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">x</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span>d<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb11-4">    <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">y</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span>d<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb11-5">    <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">rWidth</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span>d<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">rWidth</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb11-6">    <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">rHeight</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span>d<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">rHeight</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb11-7">    <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">fillCol</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> d<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">fillCol</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb11-8">    <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">fillOpacity</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span>d<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">fillOpacity</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb11-9">    <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">strokeOpacity</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span>d<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">strokeOpacity</span></span>
<span id="cb11-10">  }))<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb11-11">  d3<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">csv</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'tooltipsData.csv'</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> d <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">=&gt;</span> ({</span>
<span id="cb11-12">    <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">x</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span>d<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb11-13">    <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">y</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span>d<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb11-14">    <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">rWidth</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span>d<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">rWidth</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb11-15">    <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">rHeight</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span>d<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">rHeight</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb11-16">    <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">class</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> d<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">class</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb11-17">    <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">tooltipText</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> d<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">tooltipText</span></span>
<span id="cb11-18">  }))</span>
<span id="cb11-19">])<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">then</span>(([data<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> tooltipsData]) <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">=&gt;</span> {</span>
<span id="cb11-20">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">tardis</span>(data<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> tooltipsData)<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span>
<span id="cb11-21">})<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span></code></pre></div></div>
<p>We can now use D3 to draw these transparent rectangles, using code that is very similar to that used to draw the base rectangles. We again use <code>.attr()</code> to set the <code>x</code>, <code>y</code>, and <code>width</code>, and <code>height</code> based on the <code>tooltipsData</code>. However, we hard code the fill and transparency colours to fully transparent rather than using columns in the data. We also add a <code>class</code> to these new rectangles, to enable them to be linked to the tooltips. Note that we use <code>rect2</code> to differentiate these rectangles from <code>rect</code>.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb12" style="background: #f1f3f5;"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript"><span id="cb12-1">svg<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">selectAll</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'rect2'</span>)</span>
<span id="cb12-2">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">data</span>(tooltipsData)</span>
<span id="cb12-3">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">enter</span>()</span>
<span id="cb12-4">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">append</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'rect'</span>)</span>
<span id="cb12-5">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">attr</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'x'</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> d <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">=&gt;</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">xScale</span>(d<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x</span>))</span>
<span id="cb12-6">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">attr</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'y'</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> d <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">=&gt;</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">yScale</span>(d<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y</span>))</span>
<span id="cb12-7">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">attr</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'width'</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> d <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">=&gt;</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">xScale</span>(d<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">rWidth</span>))</span>
<span id="cb12-8">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">attr</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'height'</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> d <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">=&gt;</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">yScale</span>(d<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">rHeight</span>))</span>
<span id="cb12-9">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">attr</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'class'</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'tooltipText'</span>)</span>
<span id="cb12-10">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">style</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'fill'</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"white"</span>)</span>
<span id="cb12-11">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">style</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'fill-opacity'</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>)</span>
<span id="cb12-12">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">style</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'stroke'</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"white"</span>)</span>
<span id="cb12-13">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">style</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'stroke-opacity'</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>)<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span></code></pre></div></div>
<p>Finally, we add some JavaScript to define when the tooltips appear. We create elements with the class <code>tooltip</code> that are fully transparent by default. When a user hovers over any element with the class <code>tooltipText</code> (any of our transparent rectangles), the opacity changes to 0.9. Upon hover, the text in the <code>tooltipText</code> column of the data is also added. When a user stops hover that element, the opacity is returned to 0 and the tooltip becomes invisible.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb13" style="background: #f1f3f5;"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript"><span id="cb13-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">const</span> tip <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> d3<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">select</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"body"</span>)</span>
<span id="cb13-2">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">append</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"div"</span>)</span>
<span id="cb13-3">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">attr</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"class"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"tooltip"</span>)</span>
<span id="cb13-4">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">style</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"opacity"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>)<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span>
<span id="cb13-5"></span>
<span id="cb13-6">d3<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">selectAll</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'.tooltipText'</span>)</span>
<span id="cb13-7">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">on</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'mouseover'</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">function</span>(<span class="bu" style="color: null;
background-color: null;
font-style: inherit;">event</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> d) {</span>
<span id="cb13-8">    tip<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">style</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'opacity'</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.9</span>)</span>
<span id="cb13-9">      <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">html</span>(d<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">tooltipText</span>)</span>
<span id="cb13-10">      <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">style</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'left'</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> (<span class="bu" style="color: null;
background-color: null;
font-style: inherit;">event</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">pageX</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">25</span>) <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'px'</span>)</span>
<span id="cb13-11">      <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">style</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'top'</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> (<span class="bu" style="color: null;
background-color: null;
font-style: inherit;">event</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">pageY</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">50</span>) <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'px'</span>)<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span>
<span id="cb13-12">  })</span>
<span id="cb13-13">  <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">on</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'mouseout'</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">function</span>(<span class="bu" style="color: null;
background-color: null;
font-style: inherit;">event</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> d) {</span>
<span id="cb13-14">    tip<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">style</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'opacity'</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>)<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span>
<span id="cb13-15">  })<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span></code></pre></div></div>
<p>We then add some CSS to style all object with the <code>tooltip</code> class i.e.&nbsp;all of the tooltips. This sets the background colour to the same shade of blue as the TARDIS, uses white for the text and tooltip border, and sets the maximum width to <code>300px</code> to force the text to wrap for long facts.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb14" style="background: #f1f3f5;"><pre class="sourceCode css code-with-copy"><code class="sourceCode css"><span id="cb14-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">.tooltip</span> {</span>
<span id="cb14-2">    <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">position</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">:</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">absolute</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span>
<span id="cb14-3">    <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">pointer-events</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">:</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">none</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span>
<span id="cb14-4">    <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">background</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">:</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">#003B6F</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span>
<span id="cb14-5">    <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">border-style</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">:</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">solid</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span>
<span id="cb14-6">    <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">border-color</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">:</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">white</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span>
<span id="cb14-7">    <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">border-width</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">:</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">px</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span>
<span id="cb14-8">    <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">border-radius</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">:</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">px</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span>
<span id="cb14-9">    <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">padding</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">:</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">px</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span>
<span id="cb14-10">    <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">color</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">:</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">#fff</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span>
<span id="cb14-11">    <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">max-width</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">:</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">300</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">px</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span>
<span id="cb14-12">}</span></code></pre></div></div>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/step4.png" class="lightbox" data-gallery="quarto-lightbox-gallery-6"><img src="https://nrennie.com/blog/2025-06-02-build-your-own-tardis-d3/images/step4.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:80.0%" alt=""></a></p>
</figure>
</div>
<p>Optionally, we can add a summary and details element in the HTML file which displays the facts shown on the tooltips as plain text, for people who dislike or can’t use interactive elements like tooltips. Here’s a screen recording of the final product:</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/tardis.gif" class="lightbox" data-gallery="quarto-lightbox-gallery-7"><img src="https://nrennie.com/blog/2025-06-02-build-your-own-tardis-d3/images/tardis.gif" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:80.0%" alt=""></a></p>
</figure>
</div>
<p>Now you’re ready to go ahead, and create your very own TARDIS!</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/giphy.gif" class="lightbox" data-gallery="quarto-lightbox-gallery-8"><img src="https://nrennie.com/blog/2025-06-02-build-your-own-tardis-d3/images/giphy.gif" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:80.0%" alt=""></a></p>
</figure>
</div>
<p align="center">
<small>Source: <a href="https://giphy.com/gifs/doctorwho-doctor-who-peter-capaldi-l2ZE7SFH6JKz4gRwc">giphy.com</a></small>
</p>


</section>
</section>

<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-reuse"><h2 class="anchored quarto-appendix-heading">Reuse</h2><div class="quarto-appendix-contents"><div><a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></div></div></section><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Citation</h2><div><div class="quarto-appendix-secondary-label">BibTeX citation:</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{rennie2025,
  author = {Rennie, Nicola},
  title = {Build Your Own {TARDIS} with {D3}},
  date = {2025-06-02},
  url = {https://nrennie.com/blog/2025-06-02-build-your-own-tardis-d3/},
  langid = {en}
}
</code></pre><div class="quarto-appendix-secondary-label">For attribution, please cite this work as:</div><div id="ref-rennie2025" class="csl-entry quarto-appendix-citeas">
Rennie, Nicola. 2025. <span>“Build Your Own TARDIS with D3.”</span> June
2. <a href="https://nrennie.com/blog/2025-06-02-build-your-own-tardis-d3/">https://nrennie.com/blog/2025-06-02-build-your-own-tardis-d3/</a>.
</div></div></section></div> ]]></description>
  <category>D3</category>
  <category>Data Visualisation</category>
  <guid>https://nrennie.com/blog/2025-06-02-build-your-own-tardis-d3/</guid>
  <pubDate>Mon, 02 Jun 2025 00:00:00 GMT</pubDate>
  <media:content url="https://nrennie.com/blog/2025-06-02-build-your-own-tardis-d3/featured.png" medium="image" type="image/png" height="103" width="144"/>
</item>
<item>
  <title>A step-by-step chart makeover</title>
  <dc:creator>Nicola Rennie</dc:creator>
  <link>https://nrennie.com/blog/2025-05-22-chart-makeover/</link>
  <description><![CDATA[ 





<section id="making-a-bad-chart" class="level2">
<h2 class="anchored" data-anchor-id="making-a-bad-chart">Making a bad chart</h2>
<p>As part of the <a href="https://nrennie.rbind.io/blog/30-day-chart-challenge-2025/" target="_blank">30 Day Chart Challenge</a> in April 2025, I made a (deliberately) bad chart, which didn’t follow any data visualisation best practices:</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/v0.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1"><img src="https://nrennie.com/blog/2025-05-22-chart-makeover/images/v0.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt="A horribly bright, dual y-axis log scale chart"></a></p>
</figure>
</div>
<p>There are many things wrong with this chart, to list just some of them:</p>
<ul>
<li>Structural elements
<ul>
<li>It uses a logarithmic scale</li>
<li>There is a dual y-axis…</li>
<li>…and it’s not clear which set of data maps to which axis!</li>
<li>There’s a lot of data in there.</li>
</ul></li>
<li>Aesthetic elements
<ul>
<li>It hurts your eyes! The colours are garish and painful to look at.</li>
<li>The fonts are difficult to read.</li>
<li>The font sizes are very small, especially for the x-axis.</li>
<li>The rainbow colour palette is hard to interpret and not accessible.</li>
</ul></li>
</ul>
<p>Not all of these <em>bad chart</em> elements are always bad. For example, there might be some cases when a logarithmic scale is appropriate if well-designed. However, the way these elements are used in this example are particularly bad.</p>
<section id="data" class="level3">
<h3 class="anchored" data-anchor-id="data">Data</h3>
<p>The data used in this example is from <a href="https://ourworldindata.org/" target="_blank">Our World in Data</a> on <a href="https://ourworldindata.org/economic-inequality" target="_blank">income inequality represented by the share of income received by the richest 1% of the population</a>.</p>
</section>
</section>
<section id="applying-best-practices" class="level2">
<h2 class="anchored" data-anchor-id="applying-best-practices">Applying best practices</h2>
<p>We’re going to go through a series of steps and apply best practices to improve this chart. Before jumping in to making a chart, we need to know what we’re aiming to communicate. Here, we might want to show the change in income inequality over time for different countries. We might also want to focus in on something more specific e.g.&nbsp;biggest increases over time, a specific continent, or most recent values.</p>
<section id="step-1-fix-the-colours-and-fonts" class="level3">
<h3 class="anchored" data-anchor-id="step-1-fix-the-colours-and-fonts">Step 1: Fix the colours and fonts</h3>
<p>Although the garish background colour and gaudy text are probably not the most pressing issues with this chart, they are the main reasons it hurts my eyes to look at it. Since I don’t want to look at it any longer than I have to (and assume you don’t either), let’s go ahead and deal with that first.</p>
<ul>
<li><p><strong>Colours</strong>: We replace the bright orange with a very light grey colour (white also works, but using something slightly off-white makes it easier see where the edge of the plot is against a white editor background). The blue text colour is also replaced with black to maximise contrast.</p></li>
<li><p><strong>Font</strong>: The unusual title font, and handwriting-style font make it difficult to read. We replace both with a simple, sans serif font that is easier to read.</p></li>
</ul>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/v1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-2"><img src="https://nrennie.com/blog/2025-05-22-chart-makeover/images/v1.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt=""></a></p>
</figure>
</div>
</section>
<section id="step-2-choose-appropriate-scales" class="level3">
<h3 class="anchored" data-anchor-id="step-2-choose-appropriate-scales">Step 2: Choose appropriate scales</h3>
<p>The biggest problem with this chart is the choice of y axes. It commits a double crime of having a dual y-axis, and using (different) log scales on both. Dual axes are almost always a poor choice of chart design because the choice of transformation for the secondary axis is entirely arbitrary but can hugely impact how the plot is interpreted. In this case, it’s also impossible to tell which points belong to which axis. Logarithmic scales are also difficult to interpret because their multiplicative nature means they can which can hide or exaggerate patterns.</p>
<ul>
<li><p><strong>Split into two</strong>: Rather than using two axes to show two variables, we instead use two separate plots i.e.&nbsp;small multiple scatter charts. One chart shows the income values, and the other shows the standard deviation with labels indicating which one is which.</p></li>
<li><p><strong>Use a linear scale</strong>: We use a linear scale instead of logarithmic to make interpretation easier. In these small multiple plots, we also allow the range of each y-axis to vary since they show variables with quite different ranges.</p></li>
<li><p><strong>Remove grid lines</strong>: There are too many grid lines in the background, making it difficult to read. We’ll remove these for now, and then consider which ones we may need to add back in later.</p></li>
</ul>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/v2.png" class="lightbox" data-gallery="quarto-lightbox-gallery-3"><img src="https://nrennie.com/blog/2025-05-22-chart-makeover/images/v2.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt=""></a></p>
</figure>
</div>
</section>
<section id="step-3-place-categories-on-y-axis" class="level3">
<h3 class="anchored" data-anchor-id="step-3-place-categories-on-y-axis">Step 3: Place categories on y-axis</h3>
<p>The current x-axis labels are categorical, and to avoid them overlapping with each other, they have been rotated by 90 degrees and use a very small font size which makes them exceptionally difficult to read.</p>
<ul>
<li><p><strong>Place categories on the y-axis</strong>: We place categorical labels on the y-axis to allow them to use a horizontal text layout and give a more comfortable reading experience.</p></li>
<li><p><strong>Increase font size</strong>: We use a font size that is large enough to be read comfortably. Unfortunately, this results in some of the text overlapping vertically.</p></li>
</ul>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/v3a.png" class="lightbox" data-gallery="quarto-lightbox-gallery-4"><img src="https://nrennie.com/blog/2025-05-22-chart-makeover/images/v3a.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt=""></a></p>
</figure>
</div>
<ul>
<li><p><strong>Resize the plot</strong>: We make the plot larger to ensure all category labels can be read clearly and have enough space. The sizing isn’t quite perfect yet, but will likely change anyway as we make further improvements to the chart.</p></li>
<li><p><strong>Group categories</strong>: When there are many categories, it can sometimes be beneficial to group them together. Here, we group countries into continents to make specific values easier to find.</p></li>
</ul>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/v3b.png" class="lightbox" data-gallery="quarto-lightbox-gallery-5"><img src="https://nrennie.com/blog/2025-05-22-chart-makeover/images/v3b.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt=""></a></p>
</figure>
</div>
</section>
<section id="step-4-limit-data-and-sort-categories" class="level3">
<h3 class="anchored" data-anchor-id="step-4-limit-data-and-sort-categories">Step 4: Limit data and sort categories</h3>
<p>This chart is still looking very busy, and is trying to show too much data at once. We have data on the income inequality for (almost) every country, over many different years, information on the continent of each country, and we’re also trying to show the variability for each country. To tell a clearer story, we need to limit how much information goes in one chart.</p>
<ul>
<li><p><strong>Limit the data</strong>: In this example, we’ll limit the data to consider only the income inequality values in 2013 and 2023. Since not all countries have data available in these years, this also has the effect of reducing the number of country categories that are visualised.</p></li>
<li><p><strong>Order categories</strong>: Although there can be arguments for alphabetical ordering of categories, this is often not the most appropriate choice (though it is often the default setting when creating charts). If there is a natural ordering to the categories (such as month of the year), it should be used. Otherwise, sorting by magnitude can be beneficial. Within each continent group, we order the countries from highest to lowest average percentage (y-axis value), and make the continent grouping clearer.</p></li>
</ul>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/v4.png" class="lightbox" data-gallery="quarto-lightbox-gallery-6"><img src="https://nrennie.com/blog/2025-05-22-chart-makeover/images/v4.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt=""></a></p>
</figure>
</div>
</section>
<section id="step-5-select-colours-and-icons" class="level3">
<h3 class="anchored" data-anchor-id="step-5-select-colours-and-icons">Step 5: Select colours and icons</h3>
<p>By considering what data we’re presenting, and portraying it more clearly, we’ve identified a few potential data issues. There are several countries in Europe (and similarly in Oceania) which all have identical values. These warrant some further investigation to check if they are genuine, or perhaps imputed values. As that isn’t the topic of this blog post, we’ll discard these values for now. There is an argument that the chart is <em>still</em> too busy looking, so we’ll further limit the data to look only at countries where the inequality has decreased between 2013 and 2023. You can imagine a second chart, designed in the same way.</p>
<ul>
<li><p><strong>Connect the dots</strong>: Moving from a simple scatter chart to dumbbell plots makes it easier to compare changes for different countries.</p></li>
<li><p><strong>Choose better colours</strong>: Removing the semi-transparency makes the circles easier to see, and choosing bolder colours improves contrast against the background. We also add a legend to define the years</p></li>
<li><p><strong>Don’t rely on colour</strong>: Not everyone perceives colours in the same way, and relying on colour alone to differentiate categories can make your chart inaccessible to some readers. Although there is an argument that this is unnecessary when considering only increasing values over time (since the blue is always to the right of the pink), we use triangles and circles to also differentiate the years, with a legend is added as well.</p></li>
</ul>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/v5.png" class="lightbox" data-gallery="quarto-lightbox-gallery-7"><img src="https://nrennie.com/blog/2025-05-22-chart-makeover/images/v5.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt=""></a></p>
</figure>
</div>
</section>
<section id="step-6-use-text-to-add-context" class="level3">
<h3 class="anchored" data-anchor-id="step-6-use-text-to-add-context">Step 6: Use text to add context</h3>
<p>The final step is to add an informative title and subtitle, rather than the placeholder <em>bad chart</em> text.</p>
<ul>
<li><p><strong>Statement title</strong>: Rather than a title that simply says what the data is, we can add a title that draws attention to either the main message, or a specific aspect of the chart we want a reader to remember.</p></li>
<li><p><strong>Informative ubtitle</strong>: The subtitle text can be used to explain the source(s) and limitations of the data. These additional descriptions can aid a reader in interpreting the chart.</p></li>
</ul>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/v6.png" class="lightbox" data-gallery="quarto-lightbox-gallery-8"><img src="https://nrennie.com/blog/2025-05-22-chart-makeover/images/v6.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt=""></a></p>
</figure>
</div>
<p>Some further annotations to highlight interesting points might also be useful to add.</p>
</section>
</section>
<section id="final-thoughts" class="level2">
<h2 class="anchored" data-anchor-id="final-thoughts">Final thoughts</h2>
<p>This is definitely an improvement on the original chart type. However, rather than trying to fix a terrible chart, it can often be better to start from scratch. Start by thinking what you are trying to communicate, and what chart type does that best. Don’t be afraid to throw a bad chart in the bin and start again!</p>
<p>The code for these charts (the bad original, the interim charts, and the final version) can be found on <a href="https://github.com/nrennie/30DayChartChallenge/blob/main/2025/scripts/day_29_makeover.R" target="_blank">GitHub</a>.</p>


</section>

<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-reuse"><h2 class="anchored quarto-appendix-heading">Reuse</h2><div class="quarto-appendix-contents"><div><a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></div></div></section><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Citation</h2><div><div class="quarto-appendix-secondary-label">BibTeX citation:</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{rennie2025,
  author = {Rennie, Nicola},
  title = {A Step-by-Step Chart Makeover},
  date = {2025-05-22},
  url = {https://nrennie.com/blog/2025-05-22-chart-makeover/},
  langid = {en}
}
</code></pre><div class="quarto-appendix-secondary-label">For attribution, please cite this work as:</div><div id="ref-rennie2025" class="csl-entry quarto-appendix-citeas">
Rennie, Nicola. 2025. <span>“A Step-by-Step Chart Makeover.”</span> May
22. <a href="https://nrennie.com/blog/2025-05-22-chart-makeover/">https://nrennie.com/blog/2025-05-22-chart-makeover/</a>.
</div></div></section></div> ]]></description>
  <category>R</category>
  <category>Data Visualisation</category>
  <guid>https://nrennie.com/blog/2025-05-22-chart-makeover/</guid>
  <pubDate>Thu, 22 May 2025 00:00:00 GMT</pubDate>
  <media:content url="https://nrennie.com/blog/2025-05-22-chart-makeover/featured.png" medium="image" type="image/png" height="103" width="144"/>
</item>
<item>
  <title>30 Day Chart Challenge 2025</title>
  <dc:creator>Nicola Rennie</dc:creator>
  <link>https://nrennie.com/blog/2025-05-01-30-day-chart-challenge-2025/</link>
  <description><![CDATA[ 





<p>The <a href="https://github.com/30DayChartChallenge/Edition2025" target="_blank">30 Day Chart Challenge</a> is a data visualisation challenge organised by Cédric Scherer and Dominic Royé. Participants make one chart each day of the challenge, inspired by the daily prompt. The prompts are also split across 5 different categories, which for 2025 were comparisons, distributions, relationships, time series, and uncertainties.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/prompts.jpg" class="lightbox" data-gallery="quarto-lightbox-gallery-1"><img src="https://nrennie.com/blog/2025-05-01-30-day-chart-challenge-2025/images/prompts.jpg" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:80.0%" alt="30 day chart challenge prompts"></a></p>
</figure>
</div>
<p>I first participated in the 2022 edition of the challenge, and wrote a <a href="https://nrennie.rbind.io/blog/30-day-chart-challenge-2022/" target="_blank">blog post</a> about what I learned during the process. This year was the first time I managed to complete all 30 days since 2022, so I decided to write another blog post to do the same this year.</p>
<blockquote class="blockquote">
<p>If you’re more into maps than charts, you might be interested in the <a href="https://30daymapchallenge.com/" target="_blank">30 Day Map Challenge</a> which takes place in November each year.</p>
</blockquote>
<section id="before-the-challenge" class="level2">
<h2 class="anchored" data-anchor-id="before-the-challenge">Before the challenge</h2>
<p>Although I hadn’t fully committed myself to doing every day of the challenge at the start, I still thought it would be useful to think about what I wanted to get out of it. Having some aims for the month really helps when things get busy, and making more charts for fun doesn’t seem like much of a priority.</p>
<section id="aims" class="level3">
<h3 class="anchored" data-anchor-id="aims">Aims</h3>
<p>My main aims for the challenge were:</p>
<ul>
<li><strong>Spend time learning more Observable and D3</strong>: Until recently, I’ve primary used R (mainly {ggplot2}) to make charts. I’ve recently started learning more D3, and I wanted to use this as an opportunity to try different chart types in D3, and Observable.</li>
<li><strong>Reuse datasets and visualise them different ways</strong>: In previous editions of the challenge, I often found myself spending a lot of time looking for the <em>right</em> dataset to make a particular chart type. This year, I wanted to save some time by re-using datasets for different prompts.</li>
<li><strong>Use more text and annotations in charts</strong>: Adding annotations to charts can be really useful but, in comparison to point-and-click plotting tools, creating charts using code can sometimes make this more annoying to get right. So I wanted to spend a bit more time paying attention to text in chart.</li>
</ul>
<p>As I worked through the prompts, I also decided I wanted to use it as a way to design more experimental charts - those that fall outside of the standard chart types, and may or may not be very effective.</p>
</section>
</section>
<section id="during-the-challenge" class="level2">
<h2 class="anchored" data-anchor-id="during-the-challenge">During the challenge</h2>
<p>I found some prompts much easier than others in terms of coming up with an idea for a chart. And so I ended up working on the prompts in a different order. For example, the day 29 chart was one of the first plots I created.</p>
<p>I also didn’t do one chart per day, I tended to <em>batch</em> them together. e.g.&nbsp;creating a trio of plots using the same software, and same chart styling for three different prompts.</p>
<section id="what-data-did-i-visualise" class="level3">
<h3 class="anchored" data-anchor-id="what-data-did-i-visualise">What data did I visualise?</h3>
<p>For day 1 of the challenge, I chose to use data from <a href="https://ourworldindata.org/" target="_blank">Our World in Data</a> on <a href="https://ourworldindata.org/economic-inequality" target="_blank">income inequality represented by the share of income received by the richest 1% of the population</a>. I chose this dataset because I thought it would work well for the <em>Fractions</em> prompt. After the first day, I decided to continue using this dataset for all of the prompts. Since one of my goals was to save time searching for data and re-use datasets, what better way to do that than force myself to create 30 charts for one dataset?</p>
<p>A couple of the prompts were <em>Data</em> prompts, so I did end up using another couple of datasets during the challenge. Although for those prompts, I visualised them alongside the income inequality data. On day 24, I used <a href="https://www.who.int/data/inequality-monitor/data" target="_blank">World Health Organization data on access to basic hand-washing facilities</a> and again compared the trend of time with the trend in income inequality. I used data on the <a href="https://www.ers.usda.gov/data-products/food-availability-per-capita-data-system" target="_blank">availability of dairy products in the USA</a>, and compared the trend over time to the income inequality trend in the USA. I added a third dataset to this chart, via the <a href="https://ggplot2.tidyverse.org/reference/presidential.html" target="_blank">presidential</a> dataset in {ggplot2} in R, to add some additional context in the background of the time series data.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/day_17.png" class="lightbox" data-gallery="quarto-lightbox-gallery-2"><img src="https://nrennie.com/blog/2025-05-01-30-day-chart-challenge-2025/images/day_17.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt="Chart showing (spurious) correlation between bird numbers and income inequality"></a></p>
</figure>
</div>
<p>Finally, for the <em>Birds</em> prompt, I was really struggling to figure out how income inequality data could fit that prompt, and eventually decided to use some data on <a href="https://www.gov.uk/government/statistics/wild-bird-populations-in-the-uk/wild-bird-populations-in-the-uk-and-england-1970-to-2023#native-breeding-wild-bird-populations" target="_blank">bird populations</a> to create a dual axis line chart, in the style of <a href="https://www.tylervigen.com/spurious-correlations" target="_blank">spurious correlations</a>.</p>
</section>
<section id="what-tools-did-i-use" class="level3">
<h3 class="anchored" data-anchor-id="what-tools-did-i-use">What tools did I use?</h3>
<p>I used four different tools for building charts: R, Python, Observable, and D3.</p>
<div class="cell" data-layout-align="center">
<div class="cell-output-display">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-1-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-3"><img src="https://nrennie.com/blog/2025-05-01-30-day-chart-challenge-2025/index_files/figure-html/unnamed-chunk-1-1.png" class="img-fluid quarto-figure quarto-figure-center figure-img" alt="Chart showing what tools were used to make charts, R highest, Python at the bottom" width="672"></a></p>
</figure>
</div>
</div>
</div>
<p>Although most were still made in R, in comparison to previous editions, this is my lowest percentage of R-created charts. That mainly reflects my goal of learning more Observable and D3. I probably use Observable as much as I’d planned, but that’s because something finally clicked in my head about how D3 works, and I was having more fun playing with it instead.</p>
<p>Most of my R charts were built with {ggplot2}, but I did also use this as an opportunity to try out the (reasonably new) <a href="https://jbengler.github.io/tidyplots/articles/tidyplots.html" target="_blank">{tidyplots} package</a>. I really like how clean and tidy the default chart aesthetics are, and love how it still works so seamlessly with existing {ggplot2} functions and extension packages.</p>
</section>
<section id="what-charts-did-i-make" class="level3">
<h3 class="anchored" data-anchor-id="what-charts-did-i-make">What charts did I make?</h3>
<p>I won’t go into detail about all 30 of the charts I created, but I will highlight the one I like the most, and the one I’d like to remake.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/30daychartchallenge2025.png" class="lightbox" data-gallery="quarto-lightbox-gallery-4"><img src="https://nrennie.com/blog/2025-05-01-30-day-chart-challenge-2025/images/30daychartchallenge2025.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt="Chart collage"></a></p>
</figure>
</div>
<section id="the-one-i-like-the-most" class="level4">
<h4 class="anchored" data-anchor-id="the-one-i-like-the-most">The one I like the most</h4>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/day_28.png" class="lightbox" data-gallery="quarto-lightbox-gallery-5"><img src="https://nrennie.com/blog/2025-05-01-30-day-chart-challenge-2025/images/day_28.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt="Two waffle charts showing 1% and 21% represented people and money"></a></p>
</figure>
</div>
<p>This isn’t the most complex, or intricately designed chart but I really like it for two reasons:</p>
<ul>
<li>It’s a minimalist design, but I think it’s still very effective.</li>
<li>It was built from scratch in D3, which is something I think would have found very difficult on Day 1 of the challenge, but by Day 28 I was able to just build it. This chart kind of marks a turning point in learning D3 for me.</li>
</ul>
</section>
<section id="the-one-id-love-to-remake" class="level4">
<h4 class="anchored" data-anchor-id="the-one-id-love-to-remake">The one I’d love to remake</h4>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/day_29.png" class="lightbox" data-gallery="quarto-lightbox-gallery-6"><img src="https://nrennie.com/blog/2025-05-01-30-day-chart-challenge-2025/images/day_29.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt="A horribly bright, dual y-axis log scale chart"></a></p>
</figure>
</div>
<p>This (horrendous) chart was created for the <em>Extraterrestrial</em> prompt, which I interpreted as *a chart designed by an extraterrestrial who has never heard of good data visualisation principles”. This one was designed deliberately badly, and I’d love to do a step-by-step walk through of how to make it better. Perhaps a future blog post will do just that.</p>
<p>You can browse all of the charts that I’ve made for this year and previous editions of the 30 Day Chart Challenge, using an <a href="https://nrennie.rbind.io/30DayChartChallenge/" target="_blank">interactive app</a> built with <a href="https://posit-dev.github.io/r-shinylive/" target="_blank">Shinylive</a>.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/app.jpg" class="lightbox" data-gallery="quarto-lightbox-gallery-7"><img src="https://nrennie.com/blog/2025-05-01-30-day-chart-challenge-2025/images/app.jpg" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt="Screenshot of app"></a></p>
</figure>
</div>
<p>You can also find the source code on <a href="https://github.com/nrennie/30DayChartChallenge" target="_blank">GitHub</a>.</p>
</section>
</section>
</section>
<section id="after-the-challenge" class="level2">
<h2 class="anchored" data-anchor-id="after-the-challenge">After the challenge</h2>
<section id="what-did-i-learn" class="level3">
<h3 class="anchored" data-anchor-id="what-did-i-learn">What did I learn?</h3>
<p>In terms of programming and technical learning, some of the highlights are:</p>
<ul>
<li><p><strong>Observable</strong>:</p>
<ul>
<li>Editing imported chart</li>
<li>Formatting data formatting when passing between R and Observable</li>
<li>Creating custom tooltips</li>
</ul>
<blockquote class="blockquote">
<p>Some of the things I’ve learned about Observable are written down in my <a href="https://nrennie.rbind.io/blog/observable-r-users/" target="_blank">Observable for R users</a> blog post.</p>
</blockquote>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/ojs.png" class="lightbox" data-gallery="quarto-lightbox-gallery-8"><img src="https://nrennie.com/blog/2025-05-01-30-day-chart-challenge-2025/images/ojs.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt="Featured image for Observable for R users blog post"></a></p>
</figure>
</div></li>
<li><p><strong>D3</strong>:</p>
<ul>
<li>Working with D3 through Observable</li>
<li>Using D3 on its own</li>
<li>Using SVG icons and recolouring them</li>
<li>Fitting models and plotting fitted lines</li>
<li>Creating and loading custom colour palettes</li>
</ul></li>
<li><p><strong>Python</strong>:</p>
<ul>
<li>Consistent label sizing in Plotnine</li>
<li>Data-driven art examples in Python</li>
</ul></li>
<li><p><strong>R</strong>:</p>
<ul>
<li>Tried out the {tidyplots} package</li>
<li>Experimented with new charts types such as mirrored area charts, and star charts</li>
<li>Created dropdown menus with {ggiraph} and Javascript</li>
<li>Built a function to take a screenshot of charts built with Observable or D3 in an automated way, so that I could share them on social media more easily:</li>
</ul>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode markdown code-with-copy"><code class="sourceCode markdown"><span id="cb1-1"><span class="in" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">```{r}</span></span>
<span id="cb1-2">save_js_png <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">function</span>(day, selector, ...) {</span>
<span id="cb1-3">  httpuv<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">runStaticServer</span>(</span>
<span id="cb1-4">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">dir =</span> glue<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">glue</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"2025/scripts/day_{day}/"</span>),</span>
<span id="cb1-5">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">port =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">4000</span>,</span>
<span id="cb1-6">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">background =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">TRUE</span>,</span>
<span id="cb1-7">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">browse =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">FALSE</span></span>
<span id="cb1-8">  )</span>
<span id="cb1-9">  webshot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">webshot</span>(</span>
<span id="cb1-10">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">url =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"http://127.0.0.1:4000/"</span>,</span>
<span id="cb1-11">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">file =</span> glue<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">glue</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"2025/viz/day_{day}.png"</span>),</span>
<span id="cb1-12">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">selector =</span> selector,</span>
<span id="cb1-13">    ...</span>
<span id="cb1-14">  )</span>
<span id="cb1-15">  httpuv<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">stopAllServers</span>()</span>
<span id="cb1-16">}</span>
<span id="cb1-17"><span class="in" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">```</span></span></code></pre></div></div>
<p>The image is then saved in the right folder with a standardised name by simply calling:</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode markdown code-with-copy"><code class="sourceCode markdown"><span id="cb2-1"><span class="in" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">```{r}</span></span>
<span id="cb2-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">save_js_png</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">day =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">26</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">selector =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"svg"</span>)</span>
<span id="cb2-3"><span class="in" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">```</span></span></code></pre></div></div></li>
</ul>
</section>
<section id="what-would-i-still-like-to-learn" class="level3">
<h3 class="anchored" data-anchor-id="what-would-i-still-like-to-learn">What would I still like to learn?</h3>
<p>Some of the things I’d love to work on next:</p>
<ul>
<li>Some examples of combining Python data processing and visualisation in Observable, via Quarto.</li>
<li>When creating visualisations in D3, I tended to process the data in R or Python first to get it into the right format and then save it as a CSV file. I’d like to see how much of that I could do directly in D3 alone.</li>
<li>Add some interaction into the charts I’ve created with D3, such as tooltips and dropdowns.</li>
</ul>
</section>
<section id="advice-for-chart-challenges" class="level3">
<h3 class="anchored" data-anchor-id="advice-for-chart-challenges">Advice for chart challenges</h3>
<p>If you’re thinking about participating in a chart challenge (whether the 30 Day Chart Challenge or a different one), here are a couple of things I’d recommend:</p>
<ul>
<li>Using the same data for multiple charts forces you to be creative when trying to work the prompts, but also saves you time finding data, processing data, and writing captions for source attribution.</li>
<li>Batch together several of the prompts, and creating multiple charts using the same tool and styling to save time.</li>
<li>Don’t feel like you have to stick to prompts too rigidly.</li>
<li>But mainly, use it as a learning opportunity rather than trying to make the perfect chart every day. It’s perfectly okay to share the less-than-perfect / work-in-progress / <em>I wish I had more time</em> versions of charts!</li>
</ul>
</section>
<section id="favourite-charts" class="level3">
<h3 class="anchored" data-anchor-id="favourite-charts">Favourite charts</h3>
<p>I saw so many beautiful and interesting charts throughout the challenge, and it would be impossible to mention them all here, but these were a few of my particular favourites:</p>
<div data-align="center">
<blockquote class="bluesky-embed blockquote" data-bluesky-uri="at://did:plc:myqnyt5fcnaxbiubhaqzhazw/app.bsky.feed.post/3llsaxbibsk2b" data-bluesky-cid="bafyreibdj74csto7yck7eggambw6e3wx6rev3kewni6uucgdffa65hqms4" data-bluesky-embed-color-mode="system">
<p lang="en">
</p><p>#30DayChartChallenge: Fractions 📊</p>
I've tracked my daily mood and activities for more than 1,500 days. These are my moods visualized. An empty circle was a terrible day, while a full circle was a fantastic day.<br><br><a href="https://bsky.app/profile/did:plc:myqnyt5fcnaxbiubhaqzhazw/post/3llsaxbibsk2b?ref_src=embed">[image or embed]</a>
<p></p>
— Jacque Schrag (<a href="https://bsky.app/profile/did:plc:myqnyt5fcnaxbiubhaqzhazw?ref_src=embed"><span class="citation" data-cites="jacqueschrag.com">@jacqueschrag.com</span></a>) <a href="https://bsky.app/profile/did:plc:myqnyt5fcnaxbiubhaqzhazw/post/3llsaxbibsk2b?ref_src=embed">2 April 2025 at 02:39</a>
</blockquote>
<script async="" src="https://embed.bsky.app/static/embed.js" charset="utf-8"></script>
</div>
<p align="center">
<iframe src="https://www.linkedin.com/embed/feed/update/urn:li:share:7314823401859080192?collapsed=1" height="500" width="80%" frameborder="0" allowfullscreen="" title="Embedded post">
</iframe>
</p>
<div data-align="center">
<blockquote class="bluesky-embed blockquote" data-bluesky-uri="at://did:plc:i4drv4o23v4eoejmv7capzsx/app.bsky.feed.post/3lmhiu2zeos2u" data-bluesky-cid="bafyreibpwoh7pqrgomyswlzfrsekabijesy2qgeyjud7k2mlpho3jhjqya" data-bluesky-embed-color-mode="system">
<p lang="en">
#30DayChartChallenge Day 9. diverging #xfiles #dataviz<br><br><a href="https://bsky.app/profile/did:plc:i4drv4o23v4eoejmv7capzsx/post/3lmhiu2zeos2u?ref_src=embed">[image or embed]</a>
</p>
— Ihar Yanouski (<a href="https://bsky.app/profile/did:plc:i4drv4o23v4eoejmv7capzsx?ref_src=embed"><span class="citation" data-cites="iharyanouski.bsky.social">@iharyanouski.bsky.social</span></a>) <a href="https://bsky.app/profile/did:plc:i4drv4o23v4eoejmv7capzsx/post/3lmhiu2zeos2u?ref_src=embed">10 April 2025 at 13:27</a>
</blockquote>
<script async="" src="https://embed.bsky.app/static/embed.js" charset="utf-8"></script>
</div>
<p>Well done to everyone who participated in this year’s challenge whether you made one or thirty charts!</p>


</section>
</section>

<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-reuse"><h2 class="anchored quarto-appendix-heading">Reuse</h2><div class="quarto-appendix-contents"><div><a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></div></div></section><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Citation</h2><div><div class="quarto-appendix-secondary-label">BibTeX citation:</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{rennie2025,
  author = {Rennie, Nicola},
  title = {30 {Day} {Chart} {Challenge} 2025},
  date = {2025-05-01},
  url = {https://nrennie.com/blog/2025-05-01-30-day-chart-challenge-2025/},
  langid = {en}
}
</code></pre><div class="quarto-appendix-secondary-label">For attribution, please cite this work as:</div><div id="ref-rennie2025" class="csl-entry quarto-appendix-citeas">
Rennie, Nicola. 2025. <span>“30 Day Chart Challenge 2025.”</span> May 1.
<a href="https://nrennie.com/blog/2025-05-01-30-day-chart-challenge-2025/">https://nrennie.com/blog/2025-05-01-30-day-chart-challenge-2025/</a>.
</div></div></section></div> ]]></description>
  <category>R</category>
  <category>Observable</category>
  <category>Python</category>
  <category>D3</category>
  <category>Data Visualisation</category>
  <guid>https://nrennie.com/blog/2025-05-01-30-day-chart-challenge-2025/</guid>
  <pubDate>Thu, 01 May 2025 00:00:00 GMT</pubDate>
  <media:content url="https://nrennie.com/blog/2025-05-01-30-day-chart-challenge-2025/featured.png" medium="image" type="image/png" height="103" width="144"/>
</item>
<item>
  <title>Observable for R users</title>
  <dc:creator>Nicola Rennie</dc:creator>
  <link>https://nrennie.com/blog/2025-04-01-observable-r-users/</link>
  <description><![CDATA[ 





<p>Observable is a JavaScript-based reactive programming environment, commonly used for interactive data exploration, visualisation, and dashboards. You can create and publish Observable notebooks at <a href="https://observablehq.com/" target="_blank">observablehq.com</a> (which is also a great place to look for inspiration and support) or you can use Observable Javascript in standalone documents and websites.</p>
<p>So why would an R user want to learn or use Observable? Although there are several different packages for creating interactive charts directly in R, these can sometimes be hard to customise, load slowly, or require an R server for deployment. With Observable, you can use different JavaScript libraries for advanced customisation (though the learning curve might be quite steep for some). Since it’s JavaScript-based, there’s no need for a server to run code, and its reactive model and efficient rendering in a browser, means that its interactive visualisations can often be faster.</p>
<p>Although you can do some data wrangling and modelling within Observable, R arguably has much better capabilities for statistical modelling. If you want the best of both worlds, it might make sense to use for wrangling and modelling, then use Observable for creating interactive, web-based visualisations. Luckily, there’s an easy way to do just that using Quarto. This blog post will walk through the process of performing some data wrangling in R, passing the data to Observable, and creating a visualisation using Observable.</p>
<blockquote class="blockquote">
<p><a href="https://quarto.org/" target="_blank">Quarto</a> is an open-source scientific and technical publishing system, that allows you to easily combine code with narrative text to create reproducible outputs. It works with code written in Python, R, Julia, or Observable. If you haven’t used Quarto before, I’d recommend checking the <a href="https://quarto.org/docs/get-started/" target="_blank">Get Started</a> section of the documentation. You can also view my <em>Introduction to Quarto</em> <a href="https://nrennie.rbind.io/training-intro-to-quarto/" target="_blank">training course materials</a>.</p>
</blockquote>
<p>If you’re someone who is intrigued by JavaScript libraries like <a href="https://d3js.org/" target="_blank">D3.js</a> for creating visualisations, but are discouraged by how complicated it looks and how steep the learning curve might be, then using Observable with Quarto can be a gentler introduction. You also don’t need to install or set up any additional software. As long as you have Quarto installed, your document will render in such a way that enables the use of Observable within your outputs.</p>
<section id="data-wrangling-in-r" class="level2">
<h2 class="anchored" data-anchor-id="data-wrangling-in-r">Data wrangling in R</h2>
<p>Let’s dive into an example! We start by creating a new Quarto document. You can choose to leave the YAML empty if you want, but I recommend at least hiding the code by setting <code>echo: false</code> to make sure only your visualisations end up in the final output.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb1-1"><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">---</span></span>
<span id="cb1-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">execute</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span></span>
<span id="cb1-3"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">  </span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">echo</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">false</span></span>
<span id="cb1-4"><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">---</span></span></code></pre></div></div>
<p>We’ll be using data on the history of Himalayan Mountaineering Expeditions, which was used as a <a href="https://github.com/rfordatascience/tidytuesday/blob/main/data/2025/2025-01-21/readme.md" target="_blank">TidyTuesday dataset in January 2025</a>. We can load the data using the <code>{tidytuesdayR}</code> package before performing any data wrangling in R as we normally would:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb2-1">tuesdata <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> tidytuesdayR<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">tt_load</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"2025-01-21"</span>)</span>
<span id="cb2-2">exped_tidy <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> tuesdata<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>exped_tidy</span>
<span id="cb2-3">peaks_tidy <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> tuesdata<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>peaks_tidy</span></code></pre></div></div>
</div>
<p>We’ll focus on the <code>peaks_tidy</code> data here where the first few lines look like:</p>
<div class="cell">
<div class="cell-output cell-output-stdout">
<pre><code># A tibble: 480 × 29
   PEAKID PKNAME      PKNAME2 LOCATION HEIGHTM HEIGHTF HIMAL HIMAL_FACTOR REGION
   &lt;chr&gt;  &lt;chr&gt;       &lt;chr&gt;   &lt;chr&gt;      &lt;dbl&gt;   &lt;dbl&gt; &lt;dbl&gt; &lt;chr&gt;         &lt;dbl&gt;
 1 AMAD   Ama Dablam  Amai D… Khumbu …    6814   22356    12 Khumbu            2
 2 AMPG   Amphu Gyab… Amphu … Khumbu …    5630   18471    12 Khumbu            2
 3 ANN1   Annapurna I &lt;NA&gt;    Annapur…    8091   26545     1 Annapurna         5
 4 ANN2   Annapurna … &lt;NA&gt;    Annapur…    7937   26040     1 Annapurna         5
 5 ANN3   Annapurna … &lt;NA&gt;    Annapur…    7555   24787     1 Annapurna         5
 6 ANN4   Annapurna … &lt;NA&gt;    Annapur…    7525   24688     1 Annapurna         5
 7 ANNE   Annapurna … &lt;NA&gt;    Annapur…    8026   26332     1 Annapurna         5
 8 ANNM   Annapurna … &lt;NA&gt;    Annapur…    8051   26414     1 Annapurna         5
 9 ANNS   Annapurna … Annapu… Annapur…    7219   23684     1 Annapurna         5
10 APIM   Api Main    &lt;NA&gt;    Api Him…    7132   23399     2 Api/Byas Ri…      7
# ℹ 470 more rows
# ℹ 20 more variables: REGION_FACTOR &lt;chr&gt;, OPEN &lt;lgl&gt;, UNLISTED &lt;lgl&gt;,
#   TREKKING &lt;lgl&gt;, TREKYEAR &lt;dbl&gt;, RESTRICT &lt;chr&gt;, PHOST &lt;dbl&gt;,
#   PHOST_FACTOR &lt;chr&gt;, PSTATUS &lt;dbl&gt;, PSTATUS_FACTOR &lt;chr&gt;, PEAKMEMO &lt;dbl&gt;,
#   PYEAR &lt;dbl&gt;, PSEASON &lt;dbl&gt;, PEXPID &lt;chr&gt;, PSMTDATE &lt;chr&gt;, PCOUNTRY &lt;chr&gt;,
#   PSUMMITERS &lt;chr&gt;, PSMTNOTE &lt;chr&gt;, REFERMEMO &lt;dbl&gt;, PHOTOMEMO &lt;dbl&gt;</code></pre>
</div>
</div>
<p>Here, we’ll keep it reasonably simple and look at the relationship between the first year a climb was recorded (<code>PYEAR</code>) and the height of the peak (<code>HEIGHTM</code>). We’ll also look at the Himalayan region that each peak is in (<code>REGION_FACTOR</code>). We can filter the data and select the columns we’re interested in using <code>{dplyr}</code> (or base R if you prefer):</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb4" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb4-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(dplyr)</span>
<span id="cb4-2">plot_data <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> peaks_tidy <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb4-3">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">filter</span>(PSTATUS_FACTOR <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">==</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Climbed"</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb4-4">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">select</span>(PYEAR, HEIGHTM, REGION_FACTOR)</span></code></pre></div></div>
</div>
<p>Our data now looks like this:</p>
<div class="cell">
<div class="cell-output cell-output-stdout">
<pre><code># A tibble: 368 × 3
   PYEAR HEIGHTM REGION_FACTOR          
   &lt;dbl&gt;   &lt;dbl&gt; &lt;chr&gt;                  
 1  1961    6814 Khumbu-Rolwaling-Makalu
 2  1953    5630 Khumbu-Rolwaling-Makalu
 3  1950    8091 Annapurna-Damodar-Peri 
 4  1960    7937 Annapurna-Damodar-Peri 
 5  1961    7555 Annapurna-Damodar-Peri 
 6  1955    7525 Annapurna-Damodar-Peri 
 7  1974    8026 Annapurna-Damodar-Peri 
 8  1980    8051 Annapurna-Damodar-Peri 
 9  1964    7219 Annapurna-Damodar-Peri 
10  1960    7132 Kanjiroba-Far West     
# ℹ 358 more rows</code></pre>
</div>
</div>
<p>It’s reasonably tidy, and we’re ready to start plotting (in Observable).</p>
</section>
<section id="observable-code-blocks" class="level2">
<h2 class="anchored" data-anchor-id="observable-code-blocks">Observable code blocks</h2>
<p>In Quarto, an Observable code block is added in a very similar way to R code blocks. Instead of specifying the language using <code>{r}</code>, we use <code>{ojs}</code> instead. Here, <code>ojs</code> stands for Observable JavaScript (OJS), although it’s important that <code>{ojs}</code> is in lowercase:</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb6" style="background: #f1f3f5;"><pre class="sourceCode markdown code-with-copy"><code class="sourceCode markdown"><span id="cb6-1"><span class="in" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">```{ojs}</span></span>
<span id="cb6-2"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">// Observable code goes here</span></span>
<span id="cb6-3"><span class="in" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">```</span></span></code></pre></div></div>
<p>Unlike R, Observable code blocks don’t need to be in order. This means that you can group all of your <em>output</em> code together, and all of your <em>data processing</em> code together to keep your document looking cleaner (similar to the separation of <code>ui</code> and <code>server</code> in Shiny apps).</p>
<blockquote class="blockquote">
<p>We can add comments to document our code using <code>//</code> in the same way we use <code>#</code> in R.</p>
</blockquote>
<section id="passing-data-from-r-to-observable" class="level3">
<h3 class="anchored" data-anchor-id="passing-data-from-r-to-observable">Passing data from R to Observable</h3>
<p>To pass our clean, wrangled data from R to Observable, we use the <code>ojs_define()</code> function, where we define what we want the object to be called in Observable (<code>r_data</code>) and what object we want to pass from R (<code>plot_data</code>):</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb7" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb7-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ojs_define</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">r_data =</span> plot_data)</span></code></pre></div></div>
</div>
<p>Note that this is an R code block, not an Observable code block. The Observable object name doesn’t need to be <code>r_data</code>, and can be the same name as the R object (or almost anything else)!</p>
<p>R passes the data to Observable in a <em>by column</em> format. Depending on which functions or libraries in Observable you use to visualise your data, it might need to be passed in a <em>by row</em> format instead. In Observable, we can use the <code>transpose()</code> function to switch from <em>by column</em> to <em>by row</em> format - since the basic <code>Plot()</code> function we’ll be using later requires it in this format:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb8" data-startfrom="96" data-source-offset="0" style="background: #f1f3f5;"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript" style="counter-reset: source-line 95;"><span id="cb8-96">data <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">transpose</span>(r_data)</span></code></pre></div></div>
<div class="cell-output cell-output-display">
<div id="ojs-cell-1" data-nodetype="declaration">

</div>
</div>
</div>
<p>An alternative approach could be to save the wrangled data to a CSV or JSON file in R, and read it into Observable as a local file using the <code>FileAttachment()</code> function. See the <a href="https://quarto.org/docs/interactive/ojs/data-sources.html" target="_blank">data sources</a> section of the Quarto documentation for different ways to read in data.</p>
</section>
<section id="using-other-libraries" class="level3">
<h3 class="anchored" data-anchor-id="using-other-libraries">Using other libraries</h3>
<p>When using core libraries that come with Observable (such as <code>Observable Plot</code>), there’s no need to install or load anything additional. However, if you want to use non-core libraries like D3 or <a href="https://idl.uw.edu/arquero/" target="_blank">Arquero</a> (a library inspired by {dplyr} for data transformation), it’s fairly straightforward to do it. We simply need to be explicit about importing those libraries. For example, to access functions from D3, we would run:</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb9" style="background: #f1f3f5;"><pre class="sourceCode markdown code-with-copy"><code class="sourceCode markdown"><span id="cb9-1"><span class="in" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">```{ojs}</span></span>
<span id="cb9-2">d3 <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">require</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"d3@7"</span>)</span>
<span id="cb9-3"><span class="in" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">```</span></span></code></pre></div></div>
<p>For this example, we’ll be able to do everything use the core Observable Plot library, so we don’t need to use any additional libraries.</p>
</section>
<section id="plotting-with-observable" class="level3">
<h3 class="anchored" data-anchor-id="plotting-with-observable">Plotting with Observable</h3>
<p><a href="https://observablehq.com/plot/" target="_blank">Observable Plot</a> is a JavaScript library, primarily aimed at creating exploratory data visualisations, which is one of the core Observable libraries. You can draw many of the most common types of charts using the <code>plot()</code> function from the <code>Plot</code> library. Within <code>Plot.plot()</code>, we specify <code>marks</code> to define the geometries that are drawn such as lines or dots; <code>color</code> to define the colours that are used; as well as other arguments like <code>title</code> and <code>subtitle</code> which can use to add text. If you’re a <code>{ggplot2}</code> user, you might notice some similarities since it also follows a <em>Grammar of Graphics</em> approach.</p>
<p>Again, we’ll keep it simple for this introductory example and create a basic scatter plot of year against peak height for our Himalayan Expeditions data. In the <code>marks</code> argument, we start by passing in the function for the geometry we want to draw. To create a scatter plot, we need to draw dots, so we use the <code>Plot.dot()</code> function. The first argument is the data set we’re plotting, and the second argument is where we specify which columns of the data map to which axis. Again, if you’re a <code>{ggplot2}</code> user, this is very similar to setting the arguments for the data and aesthetic mapping using <code>aes()</code>.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb10" data-startfrom="118" data-source-offset="0" style="background: #f1f3f5;"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript" style="counter-reset: source-line 117;"><span id="cb10-118">Plot<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">plot</span>({</span>
<span id="cb10-119">  <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">marks</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> [</span>
<span id="cb10-120">    Plot<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">dot</span>(data<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> {<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">x</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"PYEAR"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">y</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"HEIGHTM"</span>})</span>
<span id="cb10-121">  ]</span>
<span id="cb10-122">})</span></code></pre></div></div>
<div class="cell-output cell-output-display">
<div id="ojs-cell-2" data-nodetype="expression">

</div>
</div>
</div>
<p>This gives us a very basic scatter plot, and there are a few adjustments that we might want to make to improve it’s clarity. You might notice that the x-axis looks a little bit odd for data representing years. The year values are treated as numbers, and so Observable formats them with commas. This is helpful when we are plotting large numbers, but not so helpful when they are actually years. There are a couple of approaches we could take, but the easiest way is to convert the <code>PYEAR</code> column from a number to a date, and Observable will know how to format it correctly:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb11" data-startfrom="128" data-source-offset="0" style="background: #f1f3f5;"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript" style="counter-reset: source-line 127;"><span id="cb11-128">dataTyped <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> data<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">map</span>(({ PYEAR<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> HEIGHTM<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> REGION_FACTOR }) <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">=&gt;</span> ({</span>
<span id="cb11-129">  <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">PYEAR</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">new</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">Date</span>(PYEAR<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>)<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb11-130">  HEIGHTM<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb11-131">  REGION_FACTOR</span>
<span id="cb11-132">}))</span></code></pre></div></div>
<div class="cell-output cell-output-display">
<div id="ojs-cell-3" data-nodetype="declaration">

</div>
</div>
</div>
<p>Let’s also edit the axis labels to something more readable than the column names, and add a grid in the background. We use the <code>grid</code>, <code>x</code>, and <code>y</code> arguments to make these adjustments, remembering to also update the data to our new (correctly typed) dataset:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb12" data-startfrom="138" data-source-offset="0" style="background: #f1f3f5;"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript" style="counter-reset: source-line 137;"><span id="cb12-138">Plot<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">plot</span>({</span>
<span id="cb12-139">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">// Draw points</span></span>
<span id="cb12-140">  <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">marks</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> [</span>
<span id="cb12-141">    Plot<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">dot</span>(dataTyped<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> {<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">x</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"PYEAR"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">y</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"HEIGHTM"</span>})</span>
<span id="cb12-142">  ]<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb12-143">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">// Grid and axes styling</span></span>
<span id="cb12-144">  <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">grid</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">true</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb12-145">  <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">x</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> {<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">label</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Year of the first recorded climbing attempt on the peak"</span>}<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb12-146">  <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">y</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> {<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">label</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Peak height (m)"</span>}</span>
<span id="cb12-147">})</span></code></pre></div></div>
<div class="cell-output cell-output-display">
<div id="ojs-cell-4" data-nodetype="expression">

</div>
</div>
</div>
<p>To change the colour of the points, we edit the <em>mapping</em> to also set the <code>fill</code> colour of the points to be based on the values in the <code>REGION_FACTOR</code> column. Within the <code>color</code> argument, we can set whether or not we want a legend, and also choose a colour palette in the <code>scheme</code> argument.</p>
<blockquote class="blockquote">
<p><strong>Observable colour palettes</strong>: The <a href="https://observablehq.com/plot/features/scales#color-scales" target="_blank">Observable documentation</a> has an interactive colour palette viewer, where you can browse different sequential, diverging, and discrete colour palettes. The built-in options include the <a href="https://colorbrewer2.org/" target="_blank">ColorBrewer</a> palettes, which are also available in R.</p>
</blockquote>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb13" data-startfrom="155" data-source-offset="0" style="background: #f1f3f5;"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript" style="counter-reset: source-line 154;"><span id="cb13-155">Plot<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">plot</span>({</span>
<span id="cb13-156">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">// Draw points</span></span>
<span id="cb13-157">  <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">marks</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> [</span>
<span id="cb13-158">    Plot<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">dot</span>(dataTyped<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> {<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">x</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"PYEAR"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">y</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"HEIGHTM"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">fill</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"REGION_FACTOR"</span>})</span>
<span id="cb13-159">  ]<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb13-160">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">// Colours</span></span>
<span id="cb13-161">  <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">color</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> {<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">legend</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">true</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">scheme</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"set2"</span>}<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb13-162">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">// Grid and axes styling</span></span>
<span id="cb13-163">  <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">grid</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">true</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb13-164">  <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">x</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> {<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">label</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Year of the first recorded climbing attempt on the peak"</span>}<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb13-165">  <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">y</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> {<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">label</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Peak height (m)"</span>}</span>
<span id="cb13-166">})</span></code></pre></div></div>
<div class="cell-output cell-output-display">
<div id="ojs-cell-5" data-nodetype="expression">

</div>
</div>
</div>
<p>Finally, we can add a title, subtitle, and caption to the plot. We can also set the size of the plot area, and change the sizes of the margins to add a little bit more space around the plot:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb14" data-startfrom="172" data-source-offset="0" style="background: #f1f3f5;"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript" style="counter-reset: source-line 171;"><span id="cb14-172">Plot<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">plot</span>({</span>
<span id="cb14-173">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">// Draw points</span></span>
<span id="cb14-174">  <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">marks</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> [</span>
<span id="cb14-175">    Plot<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">dot</span>(dataTyped<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> {<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">x</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"PYEAR"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">y</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"HEIGHTM"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">fill</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"REGION_FACTOR"</span>})</span>
<span id="cb14-176">  ]<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb14-177">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">// Colours</span></span>
<span id="cb14-178">  <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">color</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> {<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">legend</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">true</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span> <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">scheme</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"set2"</span>}<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb14-179">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">// Grid and axes styling</span></span>
<span id="cb14-180">  <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">grid</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">true</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb14-181">  <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">x</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> {<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">label</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Year of the first recorded climbing attempt on the peak"</span>}<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb14-182">  <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">y</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> {<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">label</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Peak height (m)"</span>}<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb14-183">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">// Text</span></span>
<span id="cb14-184">  <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">title</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"The History of Himalayan Expeditions"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb14-185">  <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">subtitle</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"For peaks in the Himalayas that have been climbed, this chart shows the year of the first recorded climb and the height of the peak."</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb14-186">  <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">caption</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Data: The Himalayan Database (2017)"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb14-187">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">// Size</span></span>
<span id="cb14-188">  <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">height</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">400</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb14-189">  <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">width</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">800</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb14-190">  <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">marginLeft</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">50</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb14-191">  <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">marginRight</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">50</span></span>
<span id="cb14-192">})</span></code></pre></div></div>
<div class="cell-output cell-output-display">
<div id="ojs-cell-6" data-nodetype="expression">

</div>
</div>
</div>
<p>This introductory example showcases only a very small amount of what you can do with Observable. If you start making more plots in Observable, you’ll likely notice that there are lots of different ways to do things. For example, you could edit the axis labels using the <code>Plot.AxisX()</code> function instead of in the <code>x</code> argument. You could also use another library entirely (such as D3) to create a scatter plot. And since Observable is JavaScript-based, you can also use CSS to edit the styling of plot elements, or add hover effects. In terms of interactivity, you can easily add dropdown menus or sliders to plot different subsets of your data, using the <code>Observable Inputs</code> (core) library.</p>
<p>One of the other nice features of Observable is that, if you see a complicated plot that you like, it’s fairly straightforward to import the notebook that creates it and replace the data with your own. See <a href="https://quarto.org/docs/interactive/ojs/examples/population.html" target="_blank">quarto.org/docs/interactive/ojs/examples/population</a> for an example of importing a sunburst diagram.</p>
</section>
<section id="saving-a-static-image" class="level3">
<h3 class="anchored" data-anchor-id="saving-a-static-image">Saving a static image</h3>
<p>When you create a plot using Observable in your Quarto document, the images are rendered as SVG . However, you may also want to save a static or raster image file (such as a PNG) to share on social media, for example. Of course, the easiest way might be to simply take a screenshot. But you could automate it using the <code>webshot()</code> function from the <code>{webshot2}</code> package, and using CSS selectors to capture the Observable cell output with <code>selector = ".cell-output.cell-output-display"</code>.</p>
</section>
</section>
<section id="additional-resources" class="level2">
<h2 class="anchored" data-anchor-id="additional-resources">Additional resources</h2>
<ul>
<li><p>The <a href="https://quarto.org/docs/interactive/ojs/" target="_blank">Quarto documentation</a> has lots of information about using Observable in Quarto, including with R and Python. It also has plenty of <a href="https://quarto.org/docs/interactive/ojs/examples/penguins.html" target="_blank">examples with code</a>.</p></li>
<li><p><a href="https://github.com/deepdk" target="_blank">Deepali Kank</a> has lots of great examples of charts created with Observable and D3, and many with the data wrangling performed in R. This <a href="https://deepalikank.in/posts/perfume/perfume" target="_blank">chart about fragrances in perfumes</a> is especially beautiful!</p></li>
<li><p>If you’re looking for a different way to work with D3 and R together, then the <a href="https://rstudio.github.io/r2d3/" target="_blank">{r2d3} package</a> provides functionality for working with D3 visualisations from R. This Jumping Rivers <a href="https://www.jumpingrivers.com/blog/r-d3-intro-r2d3/" target="_blank">blog post by Mandy Norrbo</a> provides a nice introduction.</p></li>
</ul>


</section>

<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-reuse"><h2 class="anchored quarto-appendix-heading">Reuse</h2><div class="quarto-appendix-contents"><div><a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></div></div></section><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Citation</h2><div><div class="quarto-appendix-secondary-label">BibTeX citation:</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{rennie2025,
  author = {Rennie, Nicola},
  title = {Observable for {R} Users},
  date = {2025-04-01},
  url = {https://nrennie.com/blog/2025-04-01-observable-r-users/},
  langid = {en}
}
</code></pre><div class="quarto-appendix-secondary-label">For attribution, please cite this work as:</div><div id="ref-rennie2025" class="csl-entry quarto-appendix-citeas">
Rennie, Nicola. 2025. <span>“Observable for R Users.”</span> April 1. <a href="https://nrennie.com/blog/2025-04-01-observable-r-users/">https://nrennie.com/blog/2025-04-01-observable-r-users/</a>.
</div></div></section></div> ]]></description>
  <category>R</category>
  <category>Observable</category>
  <category>Quarto</category>
  <category>Data Visualisation</category>
  <guid>https://nrennie.com/blog/2025-04-01-observable-r-users/</guid>
  <pubDate>Tue, 01 Apr 2025 00:00:00 GMT</pubDate>
  <media:content url="https://nrennie.com/blog/2025-04-01-observable-r-users/featured.png" medium="image" type="image/png" height="103" width="144"/>
</item>
<item>
  <title>Creating data-driven art</title>
  <dc:creator>Nicola Rennie</dc:creator>
  <link>https://nrennie.com/blog/2025-03-11-data-driven-art/</link>
  <description><![CDATA[ 





<section id="what-is-data-driven-art" class="level2">
<h2 class="anchored" data-anchor-id="what-is-data-driven-art">What is data-driven art?</h2>
<p>At first I thought the answer to the question <em>what is data art?</em> would be relatively straightforward. I initially started with the definition that <em>data art lies somewhere between data visualisation and generative art</em>. Where data visualisation aims to accurately represent data to communicate insights, generative art uses algorithms to create unique visuals which often incorporate randomness or predefined rules. Like generative art, the primary aim of data art is artistic impact, rather clarity or analysis. On reflection, I realised this definition excludes some types of data art - mainly those created without the use of a computer. So although I think this definition is still somewhat correct, it only applies to a subset of data art. After a little bit of thinking, the definition I came up with is:</p>
<blockquote class="blockquote">
<p><strong>Data art</strong> (or data-driven art): a genre of art which transforms data into aesthetically-pleasing compositions with the aim of evoking emotion or displaying hidden patterns.</p>
</blockquote>
<p>Notably, this definition is broad enough to include works created by hand such as paintings and crocheted blankets, non-visual pieces such as musical representations, as well as the more obvious, abstract digital visualisations from my original definition. In terms of where it fits into the broader landscape of artistic works, the diagram below makes an attempt at illustrating that. I believe data art is much more abstract than traditional data visualisations but less abstract that generative art. It’s also less likely to be computer-generated than generative art, but more likely to be computer-generated than a portrait painting.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/diagram.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1"><img src="https://nrennie.com/blog/2025-03-11-data-driven-art/images/diagram.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:70.0%" alt="Scatter plot showing the locations of different types of art based on how abstract and how digital they are. Generative art sits in the top right."></a></p>
</figure>
</div>
<p>I also asked ChatGPT to give me a definition of data-driven art and it said: <em>Data-driven art is creative work that transforms raw data into visual or interactive forms using algorithms, patterns, or real-time inputs.</em>. Personally, I think that only the first half of that sentence is necessary and correct.</p>
</section>
<section id="why-is-data-driven-art-important" class="level2">
<h2 class="anchored" data-anchor-id="why-is-data-driven-art-important">Why is data-driven art important?</h2>
<p>When thinking about data visualisations, we often think about how to convey a message as clearly and honestly as possible - thinking about elements such as appropriate axes, informative titles, and chart types. We don’t necessarily think about these factors when creating data art. And that’s because it has a different purpose. The aim of data art isn’t to communicate statistics or to explore data before further analysis. The main aim (in my opinion) of data art is to evoke emotion. Art can make data more memorable and impactful, especially when the data relates to sensitive or emotional topics. When people connect emotionally with data, they are more likely to engage with it, understand its significance, and reflect on its implications. This emotional connection can drive awareness, inspire action, or challenge perspectives in ways that raw numbers or traditional data visualisations can’t.</p>
<p>Data art can also have another benefit - it may help to protect against confirmation bias. If we’re looking at a traditional data visualisation, we may look for patterns and see what we expect to see. For example, focusing on one category of interest but not paying as much attention to patterns in other categories. But when we look at data art, which is most often abstracted and without textual labels to identify data, it allows us to see patterns without our preconceptions, before we know what underlying data is being represented.</p>
</section>
<section id="creating-your-own-data-driven-art" class="level2">
<h2 class="anchored" data-anchor-id="creating-your-own-data-driven-art">Creating your own data-driven art</h2>
<p>You don’t need to identify as an artist, or as a data visualisation expert, to create data-driven art. You don’t even need to be able to use data processing or visualisation software.</p>
<section id="what-do-you-want-to-say" class="level3">
<h3 class="anchored" data-anchor-id="what-do-you-want-to-say">What do you want to say?</h3>
<p>As with data visualisation, the first thing to think about is the purpose of your work. What do you want to show? What do you want people to see? What do you want people to feel? It’s often easier to think about these questions in the context of an example. So let’s take <a href="https://github.com/rfordatascience/tidytuesday/tree/main/data/2023/2023-12-05" target="_blank">life expectancy data from Our World in Data</a> as an example and think about how we might create data art.</p>
<p>What stories could we tell with data art?</p>
<ul>
<li>The gap in life expectancy between the richest and poorest countries in the world?</li>
<li>How life expectancy has changed over time for a specific country?</li>
<li>The patterns in the rankings of countries based on life expectancy?</li>
</ul>
<p>Let’s go for that last option.</p>
</section>
<section id="starting-with-sketching" class="level3">
<h3 class="anchored" data-anchor-id="starting-with-sketching">Starting with sketching</h3>
<p>Whether you use pen and paper or digital tools, sketching is a great way to explore ideas for both data art and data visualisations. It’s a quick way to outline an idea, and (because it’s just a sketch) it’s easy to throw it away if it doesn’t work!</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/sketch.png" class="lightbox" data-gallery="quarto-lightbox-gallery-2"><img src="https://nrennie.com/blog/2025-03-11-data-driven-art/images/sketch.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt=""></a></p>
</figure>
</div>
<p>Your sketches might be inspired by different chart types, by other pieces of art you’ve seen, or by the patterns you see in a random object! In the sketches above, the <em>x-axis</em> shows time, which is a common approach in data visualisaton, and the <em>y-axis</em> shows the ranking. You might also think about how you could present the data using a chart type that wouldn’t be recommended for a traditional data visualisation. For example, could you present ranking data in a proportional area chart?</p>
</section>
<section id="adapting-from-a-chart" class="level3">
<h3 class="anchored" data-anchor-id="adapting-from-a-chart">Adapting from a chart</h3>
<p>An alternative place to start creating data art is from an existing, traditional data visualisation. It can be a good way to draw attention to a wider piece of analysis that you’ve done. For the example of life expectancy rankings, we may have a line chart showing the rankings over time, with each country in a different colour and direct labels identifying the country. Perhaps something like the one shown below. The code for this visualisation can be found on <a href="https://github.com/nrennie/tidytuesday/tree/main/2023/2023-12-05/20231205.R" target="_blank">GitHub</a>.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/plot.png" class="lightbox" data-gallery="quarto-lightbox-gallery-3"><img src="https://nrennie.com/blog/2025-03-11-data-driven-art/images/plot.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt="Chart of top 8 countries based on life expectancy between 2011 and 2021, with the top spots looking very stable, and the next few showing a lot of variation"></a></p>
</figure>
</div>
<p>To transform it from a data visualisation to a piece of data art, there are a few different adjustments we can try:</p>
<ul>
<li>Remove the title, subtitle, and caption text as well as the axis labels and titles to make it immediately more abstract.</li>
<li>Remove labels and legends, perhaps also grid lines.</li>
<li>Choose colours that are aesthetically pleasing, even if some groups are not as visually distinct. Perhaps the lack of distinction between groups is something you’re trying to show?</li>
<li>Play around with different aspect ratios and arrangements. Try different coordinate systems.</li>
<li>Layer multiple charts on top of each other.</li>
</ul>
<p>Of course, these are just suggestions to play around with - your art is whatever you want it to be?</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/art.png" class="lightbox" data-gallery="quarto-lightbox-gallery-4"><img src="https://nrennie.com/blog/2025-03-11-data-driven-art/images/art.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:70.0%" alt="Square data art piece with lines going from left to right with dots at evenly spaced points in bright colours"></a></p>
</figure>
</div>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center collapsed" data-bs-toggle="collapse" data-bs-target=".callout-1-contents" aria-controls="callout-1" aria-expanded="false" aria-label="Toggle callout">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span>Show code: Python or R
</div>
<div class="callout-btn-toggle d-inline-block border-0 py-1 ps-1 pe-0 float-end"><i class="callout-toggle"></i></div>
</div>
<div id="callout-1" class="callout-1-contents callout-collapse collapse">
<div class="callout-body-container callout-body">
<div class="tabset-margin-container"></div><div class="panel-tabset">
<ul class="nav nav-tabs"><li class="nav-item"><a class="nav-link active" id="tabset-1-1-tab" data-bs-toggle="tab" data-bs-target="#tabset-1-1" aria-controls="tabset-1-1" aria-selected="true" href="">Python</a></li><li class="nav-item"><a class="nav-link" id="tabset-1-2-tab" data-bs-toggle="tab" data-bs-target="#tabset-1-2" aria-controls="tabset-1-2" aria-selected="false" href="">R</a></li></ul>
<div class="tab-content">
<div id="tabset-1-1" class="tab-pane active" aria-labelledby="tabset-1-1-tab">
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb1-1"><span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">import</span> pandas <span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">as</span> pd</span>
<span id="cb1-2"><span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">import</span> numpy <span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">as</span> np</span>
<span id="cb1-3"><span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">import</span> plotnine <span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">as</span> gg</span>
<span id="cb1-4"><span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">import</span> matplotlib.pyplot <span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">as</span> plt</span>
<span id="cb1-5"></span>
<span id="cb1-6"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Data</span></span>
<span id="cb1-7">life_expectancy <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> pd.read_csv(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'https://raw.githubusercontent.com/rfordatascience/tidytuesday/main/data/2023/2023-12-05/life_expectancy.csv'</span>)</span>
<span id="cb1-8"></span>
<span id="cb1-9"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Colours</span></span>
<span id="cb1-10">bg_col <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#262626"</span></span>
<span id="cb1-11">text_col <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#e5e5e5"</span></span>
<span id="cb1-12"></span>
<span id="cb1-13"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Wrangling</span></span>
<span id="cb1-14">plot_data <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> (life_expectancy</span>
<span id="cb1-15">    .query(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Year &gt;= 2011 and Year &lt;= 2021"</span>)</span>
<span id="cb1-16">    .groupby(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Year"</span>, group_keys<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">False</span>)</span>
<span id="cb1-17">    .<span class="bu" style="color: null;
background-color: null;
font-style: inherit;">apply</span>(<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">lambda</span> x: x.nlargest(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">8</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"LifeExpectancy"</span>))</span>
<span id="cb1-18">    .sort_values(by<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Year"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"LifeExpectancy"</span>], ascending<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>[<span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">True</span>, <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">False</span>])</span>
<span id="cb1-19">    .reset_index(drop<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">True</span>)</span>
<span id="cb1-20">)</span>
<span id="cb1-21">plot_data[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"rank"</span>] <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> plot_data.groupby(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Year"</span>).cumcount() <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span></span>
<span id="cb1-22">plot_data[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"rank"</span>] <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> plot_data[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"rank"</span>].astype(<span class="bu" style="color: null;
background-color: null;
font-style: inherit;">str</span>)</span>
<span id="cb1-23"></span>
<span id="cb1-24"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Colours</span></span>
<span id="cb1-25">colors <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> [<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#5A5156"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#E4E1E3"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#F6222E"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#FE00FA"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#16FF32"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#3283FE"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#FEAF16"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#B00068"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#1CFFCE"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#90AD1C"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#2ED9FF"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#DEA0FD"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#AA0DFE"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#F8A19F"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#325A9B"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#C4451C"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#1C8356"</span>]</span>
<span id="cb1-26"></span>
<span id="cb1-27"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Plot</span></span>
<span id="cb1-28">g <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> (</span>
<span id="cb1-29">    gg.ggplot()</span>
<span id="cb1-30">    <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> gg.geom_point(gg.aes(x<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Year"</span>, y<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"rank"</span>, color<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Entity"</span>), data<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>plot_data, size<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">2.5</span>)</span>
<span id="cb1-31">    <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> gg.geom_line(gg.aes(x<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Year"</span>, y<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"rank"</span>, color<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Entity"</span>, group<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Entity"</span>), data<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>plot_data)</span>
<span id="cb1-32">    <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> gg.scale_x_continuous(expand<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.1</span>), limits<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>(<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">2010.75</span>, <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">2021.25</span>), breaks<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>np.arange(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2011</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2022</span>), minor_breaks<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>np.arange(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2011</span>, <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">2021.25</span>, <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.25</span>))</span>
<span id="cb1-33">    <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> gg.scale_y_discrete(limits<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="bu" style="color: null;
background-color: null;
font-style: inherit;">reversed</span>)</span>
<span id="cb1-34">    <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> gg.scale_color_manual(values<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>colors)</span>
<span id="cb1-35">    <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> gg.theme_light()</span>
<span id="cb1-36">    <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> gg.theme(</span>
<span id="cb1-37">        legend_position<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"none"</span>,</span>
<span id="cb1-38">        plot_margin<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>,</span>
<span id="cb1-39">        axis_title<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>gg.element_blank(),</span>
<span id="cb1-40">        axis_text<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>gg.element_blank(),</span>
<span id="cb1-41">        plot_background<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>gg.element_rect(fill<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>bg_col, color<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>bg_col),</span>
<span id="cb1-42">        panel_background<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>gg.element_rect(fill<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>bg_col, color<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>bg_col),</span>
<span id="cb1-43">        panel_grid_major_y<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>gg.element_line(color<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>text_col, alpha<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.5</span>, size<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.1</span>),</span>
<span id="cb1-44">        panel_grid_major_x<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>gg.element_line(color<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>text_col, alpha<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.5</span>, size<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.1</span>),</span>
<span id="cb1-45">        panel_grid_minor_x<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>gg.element_line(color<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>text_col, alpha<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.2</span>, size<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.1</span>),</span>
<span id="cb1-46">        panel_border<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>gg.element_rect(color<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>text_col, alpha<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.7</span>, fill<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">None</span>, size<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.1</span>),</span>
<span id="cb1-47">        axis_ticks<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>gg.element_blank(),</span>
<span id="cb1-48">        figure_size <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> (<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">6</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">6</span>)</span>
<span id="cb1-49">    )</span>
<span id="cb1-50">)</span>
<span id="cb1-51">g.draw()</span></code></pre></div></div>
</div>
</div>
<div id="tabset-1-2" class="tab-pane" aria-labelledby="tabset-1-2-tab">
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb2-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(tidyverse)</span>
<span id="cb2-2"></span>
<span id="cb2-3"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Data</span></span>
<span id="cb2-4">life_expectancy <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> readr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">read_csv</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"https://raw.githubusercontent.com/rfordatascience/tidytuesday/main/data/2023/2023-12-05/life_expectancy.csv"</span>)</span>
<span id="cb2-5"></span>
<span id="cb2-6"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Colours</span></span>
<span id="cb2-7">bg_col <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#262626"</span></span>
<span id="cb2-8">text_col <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#e5e5e5"</span></span>
<span id="cb2-9"></span>
<span id="cb2-10"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Wrangling</span></span>
<span id="cb2-11">plot_data <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> life_expectancy <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb2-12">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">filter</span>(Year <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%in%</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">seq</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2011</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2021</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">by =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>)) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb2-13">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">group_by</span>(Year) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb2-14">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">slice_max</span>(LifeExpectancy, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">n =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">8</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb2-15">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">arrange</span>(Year, <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">desc</span>(LifeExpectancy)) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb2-16">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">rank =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">row_number</span>()) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb2-17">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ungroup</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb2-18">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">rank =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">factor</span>(rank, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">levels =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">8</span>))</span>
<span id="cb2-19"></span>
<span id="cb2-20"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Colours</span></span>
<span id="cb2-21">colors <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#5A5156"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#E4E1E3"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#F6222E"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#FE00FA"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#16FF32"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#3283FE"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#FEAF16"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#B00068"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#1CFFCE"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#90AD1C"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#2ED9FF"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#DEA0FD"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#AA0DFE"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#F8A19F"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#325A9B"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#C4451C"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#1C8356"</span>)</span>
<span id="cb2-22"></span>
<span id="cb2-23"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Plot</span></span>
<span id="cb2-24">g <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb2-25">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_point</span>(</span>
<span id="cb2-26">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> plot_data,</span>
<span id="cb2-27">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> Year, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> rank, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">colour =</span> Entity),</span>
<span id="cb2-28">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">size =</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">2.5</span></span>
<span id="cb2-29">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb2-30">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_line</span>(</span>
<span id="cb2-31">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> plot_data,</span>
<span id="cb2-32">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> Year, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> rank, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">colour =</span> Entity, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">group =</span> Entity)</span>
<span id="cb2-33">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb2-34">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_x_continuous</span>(</span>
<span id="cb2-35">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">expand =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">expansion</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.1</span>),</span>
<span id="cb2-36">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">limits =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">2010.75</span>, <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">2021.25</span>),</span>
<span id="cb2-37">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">breaks =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2011</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2021</span>,</span>
<span id="cb2-38">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">minor_breaks =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">seq</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2011</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2021</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">by =</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.25</span>)</span>
<span id="cb2-39">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb2-40">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_y_discrete</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">limits =</span> rev) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb2-41">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_colour_manual</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">values =</span> colors) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb2-42">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme_void</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb2-43">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme</span>(</span>
<span id="cb2-44">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">legend.position =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"none"</span>,</span>
<span id="cb2-45">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">plot.margin =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">margin</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span>),</span>
<span id="cb2-46">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">axis.title =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">element_blank</span>(),</span>
<span id="cb2-47">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">axis.text =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">element_blank</span>(),</span>
<span id="cb2-48">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">plot.background =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">element_rect</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">fill =</span> bg_col, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">colour =</span> bg_col),</span>
<span id="cb2-49">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">panel.background =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">element_rect</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">fill =</span> bg_col, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">colour =</span> bg_col),</span>
<span id="cb2-50">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">panel.grid.major.y =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">element_line</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">colour =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">alpha</span>(text_col, <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.5</span>), <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">linewidth =</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.1</span>),</span>
<span id="cb2-51">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">panel.grid.major.x =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">element_line</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">colour =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">alpha</span>(text_col, <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.5</span>), <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">linewidth =</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.1</span>),</span>
<span id="cb2-52">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">panel.grid.minor.x =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">element_line</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">colour =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">alpha</span>(text_col, <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.2</span>), <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">linewidth =</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.1</span>),</span>
<span id="cb2-53">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">panel.border =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">element_rect</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">colour =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">alpha</span>(text_col, <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.7</span>), <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">fill =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">NA</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">linewidth =</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.1</span>),</span>
<span id="cb2-54">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">axis.ticks =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">element_blank</span>()</span>
<span id="cb2-55">  )</span>
<span id="cb2-56">g</span></code></pre></div></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p>Although this example is created using Python, you don’t need to use digital tools to create data art. This same piece of art could have been created with paper and crayons just the same!</p>
</section>
</section>
<section id="inspiration-and-examples" class="level2">
<h2 class="anchored" data-anchor-id="inspiration-and-examples">Inspiration and examples</h2>
<p>If you’re looking for some more data art examples to inspire you, here are a few I recommend:</p>
<ul>
<li><p>Examples of data art created by students at Amherst College using data on studies that investigate racial and ethnic disparities in reproductive medicine can be found at <a href="https://katcorr.github.io/this-art-is-HARD/" target="_blank">katcorr.github.io/this-art-is-HARD</a>. Their work inspired the piece displayed in the cover image of this blog post.</p></li>
<li><p>My <a href="https://nrennie.rbind.io/data-art/" target="_blank">Data Art Gallery</a> is collection of data art examples, which includes the R or Python code used to create it. Each example includes a synopsis of the underlying data, and how the art is used to represent it.</p></li>
</ul>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/website.png" class="lightbox" data-gallery="quarto-lightbox-gallery-5"><img src="https://nrennie.com/blog/2025-03-11-data-driven-art/images/website.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt="Screenshot of data art gallery website showing previews of six examples"></a></p>
</figure>
</div>
<ul>
<li><p>The <a href="https://www.environmentalgraphiti.org/series-folder" target="_blank">Environmental Graphiti</a> has many examples of art inspired by the science of climate change, with each digital work derived from a chart, map, word or number related to the topic.</p></li>
<li><p>The <a href="https://www.herdata.net/gallery" target="_blank">Tableau Data Art Gallery</a> showcases beautiful examples of visualisations and data art created with Tableau.</p></li>
</ul>


</section>

<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-reuse"><h2 class="anchored quarto-appendix-heading">Reuse</h2><div class="quarto-appendix-contents"><div><a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></div></div></section><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Citation</h2><div><div class="quarto-appendix-secondary-label">BibTeX citation:</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{rennie2025,
  author = {Rennie, Nicola},
  title = {Creating Data-Driven Art},
  date = {2025-03-11},
  url = {https://nrennie.com/blog/2025-03-11-data-driven-art/},
  langid = {en}
}
</code></pre><div class="quarto-appendix-secondary-label">For attribution, please cite this work as:</div><div id="ref-rennie2025" class="csl-entry quarto-appendix-citeas">
Rennie, Nicola. 2025. <span>“Creating Data-Driven Art.”</span> March 11.
<a href="https://nrennie.com/blog/2025-03-11-data-driven-art/">https://nrennie.com/blog/2025-03-11-data-driven-art/</a>.
</div></div></section></div> ]]></description>
  <category>R</category>
  <category>Python</category>
  <category>Generative Art</category>
  <category>Data Visualisation</category>
  <guid>https://nrennie.com/blog/2025-03-11-data-driven-art/</guid>
  <pubDate>Tue, 11 Mar 2025 00:00:00 GMT</pubDate>
  <media:content url="https://nrennie.com/blog/2025-03-11-data-driven-art/featured.png" medium="image" type="image/png" height="103" width="144"/>
</item>
<item>
  <title>Designing monochrome data visualisations</title>
  <dc:creator>Nicola Rennie</dc:creator>
  <link>https://nrennie.com/blog/2025-02-05-monochrome-data-visualisations/</link>
  <description><![CDATA[ 





<p>First of all, let’s start with a definition of what we mean by <em>monochrome</em> (or monochromatic). Creating a monochrome chart essentially means only using different shades of one colour. In most cases, this means different shades of grey (or black and white) which, can also be termed <em>greyscale</em>. The examples in this blog post will all be relating to creating charts using only black, white, and grey. However, you should find some of the advice useful if you ever need to make monochrome charts with a different colour.</p>
<p>There are several different reasons why you might need to make monochrome visualisations. A (frustratingly) common one is that some academic publishers still require versions of plots to be submitted in black and white. Another reason might be to improve accessibility - if a plot is understandable in greyscale, it’s much more likely to be colourblind-friendly. It also has the added benefit of preserving the colour representations in your charts for people who like to print out documents (and save money by not using colour ink)!</p>
<blockquote class="blockquote">
<p>Although this blog post isn’t a follow-up to <a href="https://nrennie.rbind.io/blog/colours-in-r/" target="_blank">Working with colours in R</a>, you might also find it helpful for implementing some of the ideas discussed here.</p>
</blockquote>
<section id="cant-we-just-print-existing-plots-in-monochrome" class="level2">
<h2 class="anchored" data-anchor-id="cant-we-just-print-existing-plots-in-monochrome">Can’t we just print existing plots in monochrome?</h2>
<p>You might think the easiest way to produce a black and white visualisation is to take your existing, colourful plot and simply print it in black and white. You could do this by decreasing the saturation with a simple image editor, or choose <em>Print to PDF</em>. If only it was that easy!</p>
<p>For example, let’s see what happens when we use the default colour scheme from {ggplot2} in R (left), and then reduce the saturation (right). There are now very small differences between the colours, and the categories are difficult to tell apart.</p>
<div class="cell">
<details class="code-fold">
<summary>Show code: bar chart in {ggplot2}</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb1-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(ggplot2)</span>
<span id="cb1-2">g_bar <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb1-3">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_bar</span>(</span>
<span id="cb1-4">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> mpg,</span>
<span id="cb1-5">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> class, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">fill =</span> drv)</span>
<span id="cb1-6">  )</span>
<span id="cb1-7">g_bar</span></code></pre></div></div>
</details>
</div>
<div class="grid">
<div class="g-col-6">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/init_example_1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1" title="A bar chart using the default colour palette in {ggplot2}."><img src="https://nrennie.com/blog/2025-02-05-monochrome-data-visualisations/images/init_example_1.png" class="img-fluid figure-img" alt="A stacked bar chart with salmon pink, blue, and green bars"></a></p>
<figcaption>A bar chart using the default colour palette in {ggplot2}.</figcaption>
</figure>
</div>
</div>
<div class="g-col-6">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/init_example_2.png" class="lightbox" data-gallery="quarto-lightbox-gallery-2" title="A desaturated image of a bar chart using the default colour palette in {ggplot2}."><img src="https://nrennie.com/blog/2025-02-05-monochrome-data-visualisations/images/init_example_2.png" class="img-fluid figure-img" alt="A stacked bar chart with grey bars that are hard to distinguish"></a></p>
<figcaption>A desaturated image of a bar chart using the default colour palette in {ggplot2}.</figcaption>
</figure>
</div>
</div>
</div>
<p>The approach of desaturating plots might work sometimes, but it’s not likely to give you the best results. When we create charts in monochrome, we have to rely only on the intensity of the colour to differentiate categories. For some colour palette choices, there will already be a range of colour intensities, and so they look okay when printed in greyscale. The <a href="https://colorbrewer2.org/" target="_blank">ColorBrewer palettes</a> are common choices for chart colours, and you can choose to view only <em>Photocopy Friendly</em> palettes (which gives palettes that will withstand black and white photocopying).</p>
<p>For example, the <code>Set3</code> palette is classed as photocopy friendly, although it’s still not especially easy to differentiate categories when they don’t all appear in the same order (e.g.&nbsp;when some are missing).</p>
<div class="cell">
<details class="code-fold">
<summary>Show code: using ColorBrewer in {ggplot2}</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb2-1">g_bar <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb2-2">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_fill_brewer</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">palette =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Set3"</span>)</span></code></pre></div></div>
</details>
</div>
<div class="grid">
<div class="g-col-6">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/set3_1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-3" title="A bar chart using the Set3 colour palette."><img src="https://nrennie.com/blog/2025-02-05-monochrome-data-visualisations/images/set3_1.png" class="img-fluid figure-img" alt="A stacked bar chart with light green, yellow, and purple bars"></a></p>
<figcaption>A bar chart using the <code>Set3</code> colour palette.</figcaption>
</figure>
</div>
</div>
<div class="g-col-6">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/set3_2.png" class="lightbox" data-gallery="quarto-lightbox-gallery-4" title="A desaturated image of a bar chart using the Set3 colour palette."><img src="https://nrennie.com/blog/2025-02-05-monochrome-data-visualisations/images/set3_2.png" class="img-fluid figure-img" alt="A stacked bar chart with grey bars that are partly difficult to distinguish"></a></p>
<figcaption>A desaturated image of a bar chart using the <code>Set3</code> colour palette.</figcaption>
</figure>
</div>
</div>
</div>
<p>Other palette packages often don’t offer the option to view only photocopy safe palettes. However, you can use functions such as <code>cvd_grid()</code> in {colorblindr} to simulate how a plot will look desaturated. It’s also important to check that your colour choices are colour blind friendly (which the <code>cvd_grid()</code> function can also help with).</p>
</section>
<section id="monochrome-colour-palettes" class="level2">
<h2 class="anchored" data-anchor-id="monochrome-colour-palettes">Monochrome <em>colour</em> palettes</h2>
<p>When we talk about colour palettes, they typically fall into one of three categories:</p>
<ul>
<li><strong>Sequential</strong>: A gradual blend from a darker colour to a lighter shade (of the same or a different colour) used to show a continuous variable.</li>
<li><strong>Diverging</strong>: Two contrasting colours at either end of the scale with a neutral colour (such white) in the middle, which is used to show differences above or below some baseline.</li>
<li><strong>Discrete/Qualitative/Categorical</strong>: distinct colours with no natural ordering, used to show different categories.</li>
</ul>
<section id="sequential-palettes" class="level3">
<h3 class="anchored" data-anchor-id="sequential-palettes">Sequential palettes</h3>
<p>Sequential scales are perhaps the easiest to work with in monochrome. The natural dark to light (or vice versa) palettes translate well. For example, darker colours may represent higher values and then gradually lighter shades of grey represent lower values.</p>
<p>You should also consider the background colour of your charts. A white background is likely to provide better contrast compared to other colour choices.</p>
<blockquote class="blockquote">
<p>In {ggplot2}, you can use <code>scale_*_gradient(low = "grey80", high = "black")</code> to create a monochrome colour palette. I would recommend using a light grey instead of a white as the <code>low</code> argument to improve contrast against the plot background. You can remove the grey plot background using <code>theme_bw()</code>.</p>
</blockquote>
<details class="code-fold">
<summary>Show code: sequential colours in {ggplot2}</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb3-1">g_point <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb3-2">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_point</span>(</span>
<span id="cb3-3">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> mpg,</span>
<span id="cb3-4">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> displ, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> class, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">colour =</span> hwy)</span>
<span id="cb3-5">  )</span>
<span id="cb3-6">g_point</span>
<span id="cb3-7">g_point <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb3-8">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_color_gradient</span>(</span>
<span id="cb3-9">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">low =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"grey80"</span>,</span>
<span id="cb3-10">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">high =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"black"</span></span>
<span id="cb3-11">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb3-12">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme_bw</span>()</span></code></pre></div></div>
</details>
<div class="cell quarto-layout-panel" data-layout-ncol="2">
<div class="quarto-layout-row">
<div class="quarto-layout-cell" style="flex-basis: 50.0%;justify-content: flex-start;">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-3-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-5" title="A scatter plot using the default continuous colour gradient in {ggplot2}."><img src="https://nrennie.com/blog/2025-02-05-monochrome-data-visualisations/index_files/figure-html/unnamed-chunk-3-1.png" class="img-fluid figure-img" alt="A scatter plot with a blue colour palette" width="432"></a></p>
<figcaption>A scatter plot using the default continuous colour gradient in {ggplot2}.</figcaption>
</figure>
</div>
</div>
<div class="quarto-layout-cell" style="flex-basis: 50.0%;justify-content: flex-start;">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-3-2.png" class="lightbox" data-gallery="quarto-lightbox-gallery-6" title="A scatter plot using a monochrome grey palette."><img src="https://nrennie.com/blog/2025-02-05-monochrome-data-visualisations/index_files/figure-html/unnamed-chunk-3-2.png" class="img-fluid figure-img" alt="A scatter plot with a grey colour palette" width="432"></a></p>
<figcaption>A scatter plot using a monochrome grey palette.</figcaption>
</figure>
</div>
</div>
</div>
</div>
</section>
<section id="diverging-palettes" class="level3">
<h3 class="anchored" data-anchor-id="diverging-palettes">Diverging palettes</h3>
<p>Diverging scales don’t translate well (arguably not at all) to monochrome, so you need to think about a way to present your data that doesn’t rely on colour. For example, a lollipop chart where the length of the lines, in either direction, will represent the direction and difference from the baseline.</p>
</section>
<section id="discrete-palettes" class="level3">
<h3 class="anchored" data-anchor-id="discrete-palettes">Discrete palettes</h3>
<p>Discrete palettes are the most difficult type of colour palette to get right in monochrome visualisations. It’s partly because the colours used in discrete palettes may appear different in colour, but actually have similar colour intensities. It’s made more difficult since they’re used to differentiate categories rather than show a continuous value. This means that all colours need to be visually distinct. The <a href="https://colorbrewer2.org/" target="_blank">ColorBrewer palettes</a> discussed earlier only have a single <em>Photocopy Friendly</em> discrete colour palette, and it has a maximum of 3 colours! That’s not often enough for visualisations.</p>
<p>Rather than starting with a colour palette and trying to make it look okay in monochrome, start designing with a monochrome palette. We can use different, visually distinct, shades of grey to denote different categories in the example below. There’s an argument that this doesn’t quite match the data type - you’re showing categorical data with what is essentially a sequential grey colour palette. However, if you’re designing in monochrome, that may be unavoidable.</p>
<blockquote class="blockquote">
<p>In {ggplot2}, you can use <code>scale_*_grey()</code> to get a grey, discrete palette. In base R bar charts, the default already is a grey palette for discrete variables!</p>
</blockquote>
<p>Compare the two charts below. The left is the example from the start of this blog post where the chart with the default colours is desaturated, and the right is an example of starting with a monochrome (grey) palette. Which one is easier to read?</p>
<div class="cell">
<details class="code-fold">
<summary>Show code: discrete (fill) colours in {ggplot2}</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb4" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb4-1">g_bar <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb4-2">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_fill_grey</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb4-3">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme_bw</span>()</span></code></pre></div></div>
</details>
</div>
<div class="grid">
<div class="g-col-6">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/init_example_2.png" class="lightbox" data-gallery="quarto-lightbox-gallery-7" title="A desaturated image of a bar chart using the default colour palette in {ggplot2}."><img src="https://nrennie.com/blog/2025-02-05-monochrome-data-visualisations/images/init_example_2.png" class="img-fluid figure-img" alt="A stacked bar chart with grey bars that are hard to distinguish"></a></p>
<figcaption>A desaturated image of a bar chart using the default colour palette in {ggplot2}.</figcaption>
</figure>
</div>
</div>
<div class="g-col-6">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/bar_grey.png" class="lightbox" data-gallery="quarto-lightbox-gallery-8" title="A bar chart using a monochrome grey palette."><img src="https://nrennie.com/blog/2025-02-05-monochrome-data-visualisations/images/bar_grey.png" class="img-fluid figure-img" alt="A stacked bar chart with grey bars that are easy to distinguish"></a></p>
<figcaption>A bar chart using a monochrome grey palette.</figcaption>
</figure>
</div>
</div>
</div>
<p>The approach of using different shades of grey for different categories works well in bar charts, where each categories are shown as solid blocks of colour, positioned next to each other. When we make something like a scatter plot where each category is shown by a point with a much smaller area and not directly next to a different colour, we can use the same approach but it’s not quite as effective. We’ll look at some ways to improve this further a little bit later.</p>
<details class="code-fold">
<summary>Show code: discrete colours in {ggplot2}</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb5" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb5-1">g <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb5-2">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_point</span>(</span>
<span id="cb5-3">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> mpg,</span>
<span id="cb5-4">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> displ, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> class, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">colour =</span> drv)</span>
<span id="cb5-5">  )</span>
<span id="cb5-6">g</span>
<span id="cb5-7">g <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb5-8">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_colour_grey</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb5-9">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme_bw</span>()</span></code></pre></div></div>
</details>
<div class="cell quarto-layout-panel" data-layout-ncol="2">
<div class="quarto-layout-row">
<div class="quarto-layout-cell" style="flex-basis: 50.0%;justify-content: flex-start;">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-5-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-9" title="A scatter plot using the default colour palette in {ggplot2}."><img src="https://nrennie.com/blog/2025-02-05-monochrome-data-visualisations/index_files/figure-html/unnamed-chunk-5-1.png" class="img-fluid figure-img" alt="A scatter plot with three discrete coloured points" width="432"></a></p>
<figcaption>A scatter plot using the default colour palette in {ggplot2}.</figcaption>
</figure>
</div>
</div>
<div class="quarto-layout-cell" style="flex-basis: 50.0%;justify-content: flex-start;">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-5-2.png" class="lightbox" data-gallery="quarto-lightbox-gallery-10" title="A scatter plot using a monochrome grey palette."><img src="https://nrennie.com/blog/2025-02-05-monochrome-data-visualisations/index_files/figure-html/unnamed-chunk-5-2.png" class="img-fluid figure-img" alt="A scatter plot with three shades of grey coloured points" width="432"></a></p>
<figcaption>A scatter plot using a monochrome grey palette.</figcaption>
</figure>
</div>
</div>
</div>
</div>
</section>
</section>
<section id="alternatives-to-colour" class="level2">
<h2 class="anchored" data-anchor-id="alternatives-to-colour">Alternatives to colour</h2>
<p>Rather than relying solely on colour (whether monochrome or not) to differentiate categories, it’s good practice to also use some other chart elements to differentiate the categories. For example, in a chart with multiple lines, you may show one category in an orange solid line and another in a blue dashed line.</p>
<section id="using-patterns-and-shapes" class="level3">
<h3 class="anchored" data-anchor-id="using-patterns-and-shapes">Using patterns and shapes</h3>
<p>Although the bar chart example above is reasonably clear, we may wish to make it even easier to distinguish the categories. This is especially important if we’re referring to specific categories when we’re talking about the chart in a presentation or report. We may combine different shades of colour with different patterns. In the example below, it’s much easier to refer to and identify <em>the dotted bars</em> compared to the <em>light grey</em> bars.</p>
<blockquote class="blockquote">
<p>The <a href="https://coolbutuseless.github.io/package/ggpattern/" target="_blank">{ggpattern} package</a> in R makes it easy to use pattern-filled geometries. For example, you can use <code>geom_bar_pattern()</code> instead of <code>geom_bar()</code> to create your bar charts. The <a href="https://cmmr.github.io/fillpattern/" target="_blank">{fillpattern} package</a> provides similar functionality, including for base R graphics.</p>
</blockquote>
<details class="code-fold">
<summary>Show code: using patterns in {ggplot2}</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb6" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb6-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(ggpattern)</span>
<span id="cb6-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb6-3">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_bar</span>(</span>
<span id="cb6-4">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> mpg,</span>
<span id="cb6-5">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> class, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">fill =</span> drv)</span>
<span id="cb6-6">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb6-7">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_fill_grey</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb6-8">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme_bw</span>()</span>
<span id="cb6-9"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb6-10">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_bar_pattern</span>(</span>
<span id="cb6-11">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> mpg,</span>
<span id="cb6-12">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> class, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">fill =</span> drv, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">pattern =</span> drv)</span>
<span id="cb6-13">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb6-14">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_fill_grey</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb6-15">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme_bw</span>()</span></code></pre></div></div>
</details>
<div class="cell quarto-layout-panel" data-layout-ncol="2">
<div class="quarto-layout-row">
<div class="quarto-layout-cell" style="flex-basis: 50.0%;justify-content: flex-start;">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-6-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-11" title="A stacked bar chart with grey bars that are easy to distinguish."><img src="https://nrennie.com/blog/2025-02-05-monochrome-data-visualisations/index_files/figure-html/unnamed-chunk-6-1.png" class="img-fluid figure-img" alt="A bar chart using only shades of grey for different categories" width="432"></a></p>
<figcaption>A stacked bar chart with grey bars that are easy to distinguish.</figcaption>
</figure>
</div>
</div>
<div class="quarto-layout-cell" style="flex-basis: 50.0%;justify-content: flex-start;">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-6-2.png" class="lightbox" data-gallery="quarto-lightbox-gallery-12" title="A stacked bar chart with that additionally uses patterns."><img src="https://nrennie.com/blog/2025-02-05-monochrome-data-visualisations/index_files/figure-html/unnamed-chunk-6-2.png" class="img-fluid figure-img" alt="A bar chart using shades of grey and different patterns" width="432"></a></p>
<figcaption>A stacked bar chart with that additionally uses patterns.</figcaption>
</figure>
</div>
</div>
</div>
</div>
<p>In scatter plots, it’s common to use different shapes (either with or without different colours) to differentiate categories. In the example below, both the shade of grey and the shape identify the three categories. It’s an improvement on the previous version, but some of the categories are still quite hard to see.</p>
<details class="code-fold">
<summary>Show code: using shapes in {ggplot2}</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb7" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb7-1">g <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>(</span>
<span id="cb7-2">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> mpg,</span>
<span id="cb7-3">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(</span>
<span id="cb7-4">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> displ, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> class, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">colour =</span> drv</span>
<span id="cb7-5">  )</span>
<span id="cb7-6">) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb7-7">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_colour_grey</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb7-8">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme_bw</span>()</span>
<span id="cb7-9">g <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb7-10">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_point</span>()</span>
<span id="cb7-11">g <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb7-12">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_point</span>(</span>
<span id="cb7-13">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">shape =</span> drv)</span>
<span id="cb7-14">  )</span></code></pre></div></div>
</details>
<div class="cell quarto-layout-panel" data-layout-ncol="2">
<div class="quarto-layout-row">
<div class="quarto-layout-cell" style="flex-basis: 50.0%;justify-content: flex-start;">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-7-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-13" title="A scatter plot using only shades of grey for different categories."><img src="https://nrennie.com/blog/2025-02-05-monochrome-data-visualisations/index_files/figure-html/unnamed-chunk-7-1.png" class="img-fluid figure-img" alt="A scatter plot using three shades of grey" width="432"></a></p>
<figcaption>A scatter plot using only shades of grey for different categories.</figcaption>
</figure>
</div>
</div>
<div class="quarto-layout-cell" style="flex-basis: 50.0%;justify-content: flex-start;">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-7-2.png" class="lightbox" data-gallery="quarto-lightbox-gallery-14" title="A scatter plot using shades of grey and different shapes for different categories."><img src="https://nrennie.com/blog/2025-02-05-monochrome-data-visualisations/index_files/figure-html/unnamed-chunk-7-2.png" class="img-fluid figure-img" alt="A scatter plot using three shades of grey and additionally uses shapes" width="432"></a></p>
<figcaption>A scatter plot using shades of grey and different shapes for different categories.</figcaption>
</figure>
</div>
</div>
</div>
</div>
</section>
<section id="different-plotting-approaches" class="level3">
<h3 class="anchored" data-anchor-id="different-plotting-approaches">Different plotting approaches</h3>
<p>Rather than thinking of monochrome charts as an afterthought or a limitation, try to see it as an opportunity to really think about the design of your chart. Start with monochrome, and add colour if you need it. You may even find that you don’t need to use colour at all. It’s good way to force yourself to consider how best to communicate what you’re trying to show, rather than sticking to your default, colour-oriented visualisations.</p>
<p>Let’s take the scatter plot example from above, where we try to show three different groups of data using three different colours. One alternative to a single scatter plot, is to make three scatter plots and highlight each group on just one of the small multiple plots. You can see in the example below, each category is highlighted in black and this actually makes it easier to see the patterns. For example, straight away you can see that the first facet is dominated by the <code>suv</code> and <code>pickup</code> categories. That’s harder to see in the single scatter plot, colour version.</p>
<div class="cell">
<details class="code-fold">
<summary>Show code: using facets and highlighting</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb8" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb8-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(gghighlight)</span>
<span id="cb8-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb8-3">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_point</span>(</span>
<span id="cb8-4">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> mpg,</span>
<span id="cb8-5">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> displ, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> class)</span>
<span id="cb8-6">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb8-7">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_colour_grey</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb8-8">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">facet_wrap</span>(<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">~</span>drv) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb8-9">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">gghighlight</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb8-10">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme_bw</span>()</span></code></pre></div></div>
</details>
<div class="cell-output-display">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-8-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-15" title="A set of three small multiples, with each smaller chart highlighting one of three categories."><img src="https://nrennie.com/blog/2025-02-05-monochrome-data-visualisations/index_files/figure-html/unnamed-chunk-8-1.png" class="img-fluid figure-img" alt="A faceted plot with three panels with grey scatter plots, and a group highlighted in black on each panel." width="864"></a></p>
<figcaption>A set of three small multiples, with each smaller chart highlighting one of three categories.</figcaption>
</figure>
</div>
</div>
</div>
<p>We can also reconsider the bar chart example from above. Stacked bar charts are typically quite hard to interpret anyway as the stacked nature of them makes comparisons between any category (other than the one nearest the axis) quite difficult. We might instead choose to create a grouped bar chart, and add labels directly to the bars. There’s, again, perhaps an argument that colour is not needed at all with this approach.</p>
<details class="code-fold">
<summary>Show code: adding labels in {ggplot2}</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb9" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb9-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb9-2">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_bar</span>(</span>
<span id="cb9-3">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> mpg,</span>
<span id="cb9-4">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> class, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">fill =</span> drv)</span>
<span id="cb9-5">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb9-6">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_fill_grey</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb9-7">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme_bw</span>()</span>
<span id="cb9-8">mpg <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb9-9">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">count</span>(class, drv) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb9-10">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb9-11">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_col</span>(</span>
<span id="cb9-12">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> n, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> class, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">fill =</span> drv),</span>
<span id="cb9-13">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">position =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">position_dodge2</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">preserve =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"single"</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">width =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>)</span>
<span id="cb9-14">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb9-15">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_text</span>(</span>
<span id="cb9-16">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(</span>
<span id="cb9-17">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> n <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.5</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> class,</span>
<span id="cb9-18">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">group =</span> drv,</span>
<span id="cb9-19">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">label =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">paste0</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"drv:"</span>, drv)</span>
<span id="cb9-20">    ),</span>
<span id="cb9-21">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">position =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">position_dodge2</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">preserve =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"single"</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">width =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>),</span>
<span id="cb9-22">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">hjust =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span></span>
<span id="cb9-23">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb9-24">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_fill_grey</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb9-25">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_x_continuous</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">limits =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">60</span>)) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb9-26">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme_bw</span>()</span></code></pre></div></div>
</details>
<div class="cell quarto-layout-panel" data-layout-ncol="2">
<div class="quarto-layout-row">
<div class="quarto-layout-cell" style="flex-basis: 50.0%;justify-content: flex-start;">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-9-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-16" title="A stacked bar chart using only shades of grey for different categories."><img src="https://nrennie.com/blog/2025-02-05-monochrome-data-visualisations/index_files/figure-html/unnamed-chunk-9-1.png" class="img-fluid figure-img" alt="A stacked bar chart with grey bars that are easy to distinguish" width="432"></a></p>
<figcaption>A stacked bar chart using only shades of grey for different categories.</figcaption>
</figure>
</div>
</div>
<div class="quarto-layout-cell" style="flex-basis: 50.0%;justify-content: flex-start;">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-9-2.png" class="lightbox" data-gallery="quarto-lightbox-gallery-17" title="A grouped bar chart using shades of grey for different categories which also uses direct labelling."><img src="https://nrennie.com/blog/2025-02-05-monochrome-data-visualisations/index_files/figure-html/unnamed-chunk-9-2.png" class="img-fluid figure-img" alt="A grouped bar chart that instead uses direct labels and horizontal bars" width="432"></a></p>
<figcaption>A grouped bar chart using shades of grey for different categories which also uses direct labelling.</figcaption>
</figure>
</div>
</div>
</div>
</div>
</section>
</section>
<section id="there-are-other-problems" class="level2">
<h2 class="anchored" data-anchor-id="there-are-other-problems">There are other problems…</h2>
<p>There are several other problems that we haven’t yet covered. For example, in multi-coloured visualisations, grey is often used to show missing values, especially in plots such as choropleth maps. If you’re using grey to show data, it can’t also be used to show missing data. However some of the solutions discussed earlier may also be help e.g.&nbsp;using a striped pattern fill for missing data.</p>
<p>The key message from this blog post is that, if you need to design monochrome visualisations, you need to actively design them rather than assuming things will just work when printed in black and white.</p>
<p>If you want to read a little bit more about monochrome visualisations:</p>
<ul>
<li><p><a href="https://medium.com/%40aorrao/using-monochromatic-color-schemes-for-effective-data-visualization-8e24cd8fe6a9" target="_blank">Using Monochromatic Color Schemes for Effective Data Visualization</a>: this blog post from Anastasia Romanova discusses some of the benefits of monochrome visualisations, helping you to see them as an approach to improve clarity rather than as a limitation.</p></li>
<li><p><a href="https://arxiv.org/abs/2307.10089" target="_blank">Design Characterization for Black-and-White Textures in Visualization</a>: this paper explores which types of icons or patterns are most effective for identifying categories in data visualisations.</p></li>
<li><p><a href="https://www.y42.com/blog/color-rules-data-visualization" target="_blank">8 rules for using color effectively in data visualizations</a>: this blog post from Hugo Cheyne gives some more general advice about colours in visualisations, but talks about combining the design ideas from monochrome visualisations with some colour for highlighting. The post ends with the advice to <em>“get your design right in black and white first…then at least you’ll have a usable black-and-white version”</em> which I think is also a good quote to end this post with!</p></li>
</ul>


</section>

<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-reuse"><h2 class="anchored quarto-appendix-heading">Reuse</h2><div class="quarto-appendix-contents"><div><a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></div></div></section><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Citation</h2><div><div class="quarto-appendix-secondary-label">BibTeX citation:</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{rennie2025,
  author = {Rennie, Nicola},
  title = {Designing Monochrome Data Visualisations},
  date = {2025-02-05},
  url = {https://nrennie.com/blog/2025-02-05-monochrome-data-visualisations/},
  langid = {en}
}
</code></pre><div class="quarto-appendix-secondary-label">For attribution, please cite this work as:</div><div id="ref-rennie2025" class="csl-entry quarto-appendix-citeas">
Rennie, Nicola. 2025. <span>“Designing Monochrome Data
Visualisations.”</span> February 5. <a href="https://nrennie.com/blog/2025-02-05-monochrome-data-visualisations/">https://nrennie.com/blog/2025-02-05-monochrome-data-visualisations/</a>.
</div></div></section></div> ]]></description>
  <category>R</category>
  <category>Data Visualisation</category>
  <guid>https://nrennie.com/blog/2025-02-05-monochrome-data-visualisations/</guid>
  <pubDate>Wed, 05 Feb 2025 00:00:00 GMT</pubDate>
  <media:content url="https://nrennie.com/blog/2025-02-05-monochrome-data-visualisations/featured.png" medium="image" type="image/png" height="103" width="144"/>
</item>
<item>
  <title>Working with colours in R</title>
  <dc:creator>Nicola Rennie</dc:creator>
  <link>https://nrennie.com/blog/2025-01-10-colours-in-r/</link>
  <description><![CDATA[ 





<p>When you create a data visualisation using R (or any other software), a set of default colours is used. These aren’t always the most effective, or aesthetically pleasing, set of colours. That means that, at some point, you’ll likely want to use a different set of colours that you have chosen. This blog post will cover how to define those colours in R, where to find examples of colour palettes, and how to make generate your own. It won’t focus too much on how to use these in plots, in base R or {ggplot2}, but there are plenty of good resources out there on this topic, several of which are listed at the end of the post.</p>
<p>To demonstrate some of the palettes that will be used or created in this blog post, we’ll start by creating a function, <code>plot_palette()</code>, that takes a vector of colours and returns a plot showing them.</p>
<div class="cell">
<details class="code-fold">
<summary>Show code: <code>plot_palette()</code> function</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb1-1">plot_palette <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">function</span>(palette) {</span>
<span id="cb1-2">  g <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>(</span>
<span id="cb1-3">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">data.frame</span>(</span>
<span id="cb1-4">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">seq_len</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">length</span>(palette)),</span>
<span id="cb1-5">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"1"</span>,</span>
<span id="cb1-6">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">fill =</span> palette</span>
<span id="cb1-7">    ),</span>
<span id="cb1-8">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(</span>
<span id="cb1-9">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> x, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> y, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">fill =</span> fill</span>
<span id="cb1-10">    )</span>
<span id="cb1-11">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb1-12">    ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_tile</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb1-13">    ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_fill_identity</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb1-14">    ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme_void</span>()</span>
<span id="cb1-15">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">return</span>(g)</span>
<span id="cb1-16">}</span></code></pre></div></div>
</details>
</div>
<section id="different-ways-to-define-colours" class="level2">
<h2 class="anchored" data-anchor-id="different-ways-to-define-colours">Different ways to define colours</h2>
<p>There are multiple different ways to define colours in R. We’ll take a look at a few of the most common.</p>
<section id="colour-names" class="level3">
<h3 class="anchored" data-anchor-id="colour-names">Colour names</h3>
<p>Perhaps the easiest way to use colours in R to simply use the name of a colour, written as a character string e.g.&nbsp;<code>"red"</code>. You can run <code>colors()</code> to get a list of all the valid colour names. There are currently 657 to choose from - plenty of options other than just <code>"red"</code> or <code>"blue"</code>! Note that all colour names are lowercase, i.e.&nbsp;<code>"red"</code> is a valid colour name but <code>"Red"</code> is not. We can see an example of three of these colours below:</p>
<div class="cell" data-layout-align="center">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb2-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">plot_palette</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"tomato"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"skyblue"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"yellow2"</span>))</span></code></pre></div></div>
<div class="cell-output-display">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-2-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1"><img src="https://nrennie.com/blog/2025-01-10-colours-in-r/index_files/figure-html/unnamed-chunk-2-1.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt="Red, blue, and yellow squares"></a></p>
</figure>
</div>
</div>
</div>
</section>
<section id="hex-codes" class="level3">
<h3 class="anchored" data-anchor-id="hex-codes">Hex codes</h3>
<p>A very popular way of defining colours (not just in R) is hex codes. Hex codes are of a <code>#</code> followed by a combination of six characters - which can be any of the digits 0 - 9, or any of the letters A - F. This gives 16 options, hence <em>hex</em>adecimal. If you think of hex codes as three pairs of characters then each pair has <code>16*16</code> possible combinations which is 256.</p>
<p>In R, hex codes should be written as a character string. If you’re using RStudio, you’ll know it’s a valid hex code because the character string will be highlighted in the colour it defines! You might sometimes see hex codes written with 8 characters rather than 6. The first six characters define the colour as normal, and the last two define the transparency.</p>
<div class="cell" data-layout-align="center">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb3-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">plot_palette</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#A053A1"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#DB778F"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#E69F52"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#09A39A"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#5869C7"</span>))</span></code></pre></div></div>
<div class="cell-output-display">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-3-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-2"><img src="https://nrennie.com/blog/2025-01-10-colours-in-r/index_files/figure-html/unnamed-chunk-3-1.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt="Purple, pink, orange, green, and blue squares"></a></p>
</figure>
</div>
</div>
</div>
<p>Hex codes can be defined using either upper or lowercase letters (or a mix and match!), and the results are the same, i.e.&nbsp;<code>"#DB778F"</code> and <code>"#db778f"</code> give the same colour. In R, you can also mix and match colour names with hex codes in the one vector e.g.&nbsp;<code>c("black", "#A053A1")</code> will work perfectly fine.</p>
</section>
<section id="rgb" class="level3">
<h3 class="anchored" data-anchor-id="rgb">RGB</h3>
<p>Another common way of defining a colour is using RGB, which specifies the mixture of Red, Green, and Blue used to create the colour. In R, you can use the <code>rgb()</code> function to define colours in this way. The <code>rgb()</code> function has three arguments that need to be specified, <code>red</code>, <code>green</code>, and <code>blue</code>, which take a vector (of length 1 or longer). For example, the colour defined as <code>rgb(1, 0, 0)</code> is red - 100% red, no green, and no blue. Optionally, you can also set <code>alpha</code> values to change the transparency of the colours.</p>
<p>The arguments can be specified as either a number between 0 and 1, or a number between 0 and some other <code>maxColorValue</code>. The default is between 0 and 1. However, it’s very common to set values between 0 and 255 (giving 256 unique options for each of red, green, and blue, the same as hex codes do). In fact, the <code>rgb()</code> function will actually return a hex code for the colour you’ve defined.</p>
<p>An example of generating three colours using <code>rgb()</code> is shown below:</p>
<div class="cell" data-layout-align="center">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb4" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb4-1">colours <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">rgb</span>(</span>
<span id="cb4-2">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">red =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">32</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">243</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">176</span>),</span>
<span id="cb4-3">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">blue =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">52</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">62</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">200</span>),</span>
<span id="cb4-4">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">green =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">165</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">50</span>),</span>
<span id="cb4-5">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">maxColorValue =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">255</span></span>
<span id="cb4-6">)</span>
<span id="cb4-7"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">plot_palette</span>(colours)</span></code></pre></div></div>
<div class="cell-output-display">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-4-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-3"><img src="https://nrennie.com/blog/2025-01-10-colours-in-r/index_files/figure-html/unnamed-chunk-4-1.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt="Green, red, and purple squares"></a></p>
</figure>
</div>
</div>
</div>
</section>
<section id="other-definitions" class="level3">
<h3 class="anchored" data-anchor-id="other-definitions">Other definitions</h3>
<p>Some other common ways of defining colours are:</p>
<ul>
<li><strong>HSV (Hue, Saturation, Value)</strong>: a colour definition that represents colours based on their hue (type of colour), saturation (intensity or purity of the colour), and value (brightness). In R, you can use the <code>hsv()</code> function e.g.&nbsp;<code>hsv(h = 0.5, s = 0.8, v = 0.9)</code>. This function returns a hex code for the colour.</li>
<li><strong>HCL (Hue, Chroma, Lightness)</strong>: a colour definition that represents colours based on their hue (type of colour), chroma (intensity or vividness), and lightness (perceived brightness). In R, you can use the <code>hcl()</code> function e.g.&nbsp;<code>hcl(h = 120, c = 50, l = 70)</code>. This function also returns a hex code for the colour.</li>
</ul>
<p>Personally, I use hex codes most often. they give you a wider range of colour options compared to named colours, but are simpler and easier re-use in other software outside of R.</p>
<p>Although the <code>rgb()</code>, <code>hcl()</code>, and <code>hsv()</code> function all return hex codes, and you can use hex codes and colour names in the same vector, there may be times when you need colours in a specific format.</p>
<p>The <code>col2rgb()</code> function (which is part of the {grDevices} package in base R) can convert colours to RGB format. It returns a matrix with three rows, where each column gives the definition of a different colour:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb5" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb5-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">col2rgb</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"red"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#DB778F"</span>))</span></code></pre></div></div>
<div class="cell-output cell-output-stdout">
<pre><code>      [,1] [,2]
red    255  219
green    0  119
blue     0  143</code></pre>
</div>
</div>
<p>The {grDevices} package also has <code>rgb2hsv()</code> function for converting to HSV. <a href="https://www.linkedin.com/feed/update/urn:li:activity:7273818891670167552/" target="_blank">Antti Rask</a> has shared a function for converting from named colours to hex codes. The {plotcolr} package has functions for converting to and from HSL (Hue, Saturation, Lightness which is similar to HSV). The {monochromeR} package also has helper functions for converting between hex codes to RGB and back, with or without transparency. We’ll talk more about these packages later!</p>
</section>
</section>
<section id="choosing-colours" class="level2">
<h2 class="anchored" data-anchor-id="choosing-colours">Choosing colours</h2>
<p>Now that we know how to define different colours, and how to switch between different formats, we need to think about how to decide which colours to actually use.</p>
<section id="colour-palettes" class="level3">
<h3 class="anchored" data-anchor-id="colour-palettes">Colour palettes</h3>
<p>There are a few built-in colour palettes that come with the {grDevices} package. For example, the <code>terrain.colors()</code> function:</p>
<div class="cell" data-layout-align="center">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb7" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb7-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">plot_palette</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">terrain.colors</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">n =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5</span>))</span></code></pre></div></div>
<div class="cell-output-display">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-6-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-4"><img src="https://nrennie.com/blog/2025-01-10-colours-in-r/index_files/figure-html/unnamed-chunk-6-1.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt="Green, yellow, orange, and grey squares"></a></p>
</figure>
</div>
</div>
</div>
<p>There are many, many R packages that provide colour palettes. The <a href="https://github.com/EmilHvitfeldt/paletteer" target="_blank">{paletteer} package</a> collects many of these palettes together into a single R package. It also contains functions to use these palettes with {ggplot2} through a series of <code>scale_*</code> functions. You can access the colours using the <code>paletteer_d()</code> or <code>paletteer_c()</code> functions for discrete or continuous palettes, respectively. Simply pass in a character string of the form <code>"{package::palette}"</code>.</p>
<p>For example, the <a href="https://github.com/BlakeRMills/MetBrewer" target="_blank">{MetBrewer} package</a> provides a set of colour palettes inspired by paintings in the Metropolitan Museum of Art in New York. The palettes can be accessed directly through the {MetBrewer} package, or through the {paletteer} package:</p>
<div class="cell" data-layout-align="center">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb8" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb8-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(paletteer)</span>
<span id="cb8-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">plot_palette</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">paletteer_d</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"MetBrewer::Tara"</span>))</span></code></pre></div></div>
<div class="cell-output-display">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-7-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-5"><img src="https://nrennie.com/blog/2025-01-10-colours-in-r/index_files/figure-html/unnamed-chunk-7-1.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt="Pink, red, orange, and green squares"></a></p>
</figure>
</div>
</div>
</div>
<p>The <a href="https://r-graph-gallery.com/color-palette-finder" target="_blank">Color Palette Finder on the R Graph Gallery</a> offers an easy, interactive way to explore palettes for use in R. You can view different types of palettes (sequential, diverging, or discrete), choose the number of colours, and choose a starting place for the palette e.g.&nbsp;to generate a <em>blue-ish palette</em>.</p>
</section>
<section id="accessible-choices" class="level3">
<h3 class="anchored" data-anchor-id="accessible-choices">Accessible choices</h3>
<p>Although using colour is not always necessary or the best choice for data visualisations, sometimes it’s unavoidable. When choosing colours for plots, it’s important to think about the accessibility of the colours you are using. There are multiple different types of color vision deficiency (CVD), which affects how people perceive colours. A poor choice of colours may result in your visualisation not being as clear and understandable as you think it is.</p>
<p>There are several packages in R that can be used to assess how colour blind friendly your colour choices are. The <code>cvd_grid()</code> function from the <a href="https://github.com/clauswilke/colorblindr" target="_blank">{colorblindr} package</a> simulates how a plot you’ve created may look to people with colour blindness.</p>
<p>For example, we can test the colours used in a bar chart created with {ggplot2}:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb9" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb9-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(colorblindr)</span>
<span id="cb9-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(ggplot2)</span>
<span id="cb9-3">g <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb9-4">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_bar</span>(</span>
<span id="cb9-5">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> mpg,</span>
<span id="cb9-6">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> class, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">fill =</span> drv)</span>
<span id="cb9-7">  )</span>
<span id="cb9-8"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">cvd_grid</span>(g)</span></code></pre></div></div>
</div>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/pal06.png" class="lightbox" data-gallery="quarto-lightbox-gallery-6"><img src="https://nrennie.com/blog/2025-01-10-colours-in-r/images/pal06.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt="2x2 grid showing bar charts with different types of colour deficiency"></a></p>
</figure>
</div>
<p>Note that the default colour palette used in {ggplot2} is not very accessible, and the colour for the <code>4</code> and <code>f</code> categories are hard to distinguish in the top left. They are also all equally bright, so appear no different when printed in grayscale.</p>
<p>The <a href="https://github.com/thedatacollective/plotcolr" target="_blank">{plotcolr} package</a> also shows how colours may look with different types of colour vision deficiency. Rather than passing in an existing plot, you pass in a vector of colours and it shows you how they may look on different types of plots.</p>
<blockquote class="blockquote">
<p>Note that here we use names spacing (pre-fixing the function name with the package name and <code>::</code>) to avoid confusing the <code>plot_palette()</code> function from {plotcolr} with the one we defined at the start of this blog post.</p>
</blockquote>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb10" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb10-1">plotcolr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">plot_palette</span>(</span>
<span id="cb10-2">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">palette =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#F75C03"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#D90368"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#04A777"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#820263"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#F4E409"</span>),</span>
<span id="cb10-3">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">cvd =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"all"</span></span>
<span id="cb10-4">)</span></code></pre></div></div>
</div>
<p><a href="images/pal07.png" class="lightbox" data-gallery="quarto-lightbox-gallery-7"><img src="https://nrennie.com/blog/2025-01-10-colours-in-r/images/pal07.png" class="img-fluid" style="width:100.0%" alt="Grid of different types of charts including line charts, maps, tree maps, and bar charts under different types of colour deficiency"></a></p>
<p>Several other packages exist for similar purposes. The <a href="https://jakubnowosad.com/colorblindcheck/" target="_blank">{colorblindcheck} package</a> can be used to obtain a report about similarity between colours in a vector. The <a href="https://github.com/mtennekes/cols4all" target="_blank">{cols4all} package</a> has several useful function, including one that launches a GUI to explore different palettes and how accessible they are.</p>
</section>
</section>
<section id="generating-colours" class="level2">
<h2 class="anchored" data-anchor-id="generating-colours">Generating colours</h2>
<p>There may be times when you can’t quite find the colour palette you’re looking for and you need to create your own. Note that hand-picking colours is generally not a great idea for plots, since it’s easy to end up with colours that aren’t very accessible. However, for some tasks (such as generative art where sufficient contrast between colours is not the only goal) hand-picked colours may work.</p>
<section id="monochrome-palettes" class="level3">
<h3 class="anchored" data-anchor-id="monochrome-palettes">Monochrome palettes</h3>
<p>The <a href="https://github.com/cararthompson/monochromeR/" target="_blank">{monochromeR} package</a> is designed for creating monochrome colour palettes, based on some colour input. There are options to create a palette that goes lighter than the input colour, darker, or both. There is also an option to blend the input with another colour. For example to blend a palette of 4 colours that goes from orange to pink:</p>
<div class="cell" data-layout-align="center">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb11" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb11-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(monochromeR)</span>
<span id="cb11-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">generate_palette</span>(</span>
<span id="cb11-3">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">colour =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#E69F52"</span>,</span>
<span id="cb11-4">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">blend_colour =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#DB778F"</span>,</span>
<span id="cb11-5">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">n_colours =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">4</span>,</span>
<span id="cb11-6">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">view_palette =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">TRUE</span></span>
<span id="cb11-7">)</span></code></pre></div></div>
<div class="cell-output-display">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-10-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-8"><img src="https://nrennie.com/blog/2025-01-10-colours-in-r/index_files/figure-html/unnamed-chunk-10-1.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt="Four squares changing gradually from orange to pink"></a></p>
</figure>
</div>
</div>
</div>
<p>The built-in palette plot function from {monochromeR} also prints the hex code in both black and white on each colour, allowing you to see the contrast of text against the background colour.</p>
</section>
<section id="blending-colours" class="level3">
<h3 class="anchored" data-anchor-id="blending-colours">Blending colours</h3>
<p>The <code>colorRampPalette()</code> function from {grDevices} also offers a way to blend together colours. You can pass in a vector of initial colours, and specify how many colours you want out at the end. The function then interpolates the <em>in-between</em> colours, resulting in a colour gradient:</p>
<div class="cell" data-layout-align="center">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb12" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb12-1">all_colours <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">colorRampPalette</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"tomato"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"skyblue"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"yellow2"</span>))(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">100</span>)</span>
<span id="cb12-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">plot_palette</span>(all_colours)</span></code></pre></div></div>
<div class="cell-output-display">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-11-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-9"><img src="https://nrennie.com/blog/2025-01-10-colours-in-r/index_files/figure-html/unnamed-chunk-11-1.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt="Colour gradient going from red to blue to yellow"></a></p>
</figure>
</div>
</div>
</div>
<p>Generating 100 of colours on a gradient may not be that useful in itself, but you can then take a random sample of these colours. This often results in a palette that appears harmonised because they are all generated from the same set of blended colours:</p>
<div class="cell" data-layout-align="center">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb13" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb13-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">set.seed</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">123</span>)</span>
<span id="cb13-2">choose_colours <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">sample</span>(all_colours, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">size =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5</span>)</span>
<span id="cb13-3"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">plot_palette</span>(choose_colours)</span></code></pre></div></div>
<div class="cell-output-display">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-12-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-10"><img src="https://nrennie.com/blog/2025-01-10-colours-in-r/index_files/figure-html/unnamed-chunk-12-1.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt="Grey, green, red, and blue squares"></a></p>
</figure>
</div>
</div>
</div>
</section>
<section id="random-hex-codes" class="level3">
<h3 class="anchored" data-anchor-id="random-hex-codes">Random hex codes</h3>
<p>Both of the approaches mentioned so far require some initial input colour(s). So how do you decide on that? One approach is to start with a colour at random. The <a href="https://coolors.co/" target="_blank">coolors.co</a> website is a great way to generate a random set of colours. You can then use one or more of these as your initial starting colour(s).</p>
<p>However, we can also generate random colours in R. Let’s create a <code>random_hex()</code> function that generates as many random hex codes as we want (given by the argument <code>n</code>).</p>
<p>We start by constructing a vector containing the digits 0-9 and the letters A-F, sample (with replacement) six of these values at random, and squash them into a single character, pre-fixed by <code>#</code>. We then call that function <code>n</code> times, and return a character vector of length <code>n</code>.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb14" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb14-1">random_hex <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">function</span>(n) {</span>
<span id="cb14-2">  generate_hex <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">function</span>() {</span>
<span id="cb14-3">    choices <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">sample</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">as.character</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">9</span>), LETTERS[<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">6</span>]), <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">size =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">6</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">replace =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">TRUE</span>)</span>
<span id="cb14-4">    output <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">paste0</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#"</span>, stringr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">str_flatten</span>(choices))</span>
<span id="cb14-5">    <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">return</span>(output)</span>
<span id="cb14-6">  }</span>
<span id="cb14-7">  hex <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">replicate</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">n =</span> n, <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">generate_hex</span>(), <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">simplify =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">TRUE</span>)</span>
<span id="cb14-8">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">return</span>(hex)</span>
<span id="cb14-9">}</span></code></pre></div></div>
</div>
<p>We can then generate colours using our <code>random_hex()</code> function, remembering to set a random seed so we can re-create the palette again:</p>
<div class="cell" data-layout-align="center">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb15" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb15-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">set.seed</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">123</span>)</span>
<span id="cb15-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">plot_palette</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">random_hex</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">6</span>))</span></code></pre></div></div>
<div class="cell-output-display">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="index_files/figure-html/unnamed-chunk-14-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-11"><img src="https://nrennie.com/blog/2025-01-10-colours-in-r/index_files/figure-html/unnamed-chunk-14-1.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt="Red, blue, green, brown, and purple squares"></a></p>
</figure>
</div>
</div>
</div>
</section>
<section id="colours-from-images" class="level3">
<h3 class="anchored" data-anchor-id="colours-from-images">Colours from images</h3>
<p>Another option is to use an image as your starting point. This might be a company logo, or an image related to the data you are plotting, for example. There are several online tools for generating palettes from images but, again, we can do this directly in R! The <a href="https://github.com/doehm/eyedroppeR" target="_blank">{eyedroppeR} package</a> is designed for picking colours from images. The <code>eyedropper()</code> function allows you to interactively click on an image and then returns the hex code of the pixel you clicked on. The <code>extract_pal()</code> function goes one step further, and extracts your chosen number of colours from the image for you. You can pass in either a local image or a URL to one online. Here, we’ll use the image of a river from a previous blog post on <a href="https://nrennie.rbind.io/blog/creating-typewriter-images-r/" target="_blank">creating typewriter-styled images in R</a>.</p>
<p>We could use our own palette plotting function, but the {eyedroppeR} package has it’s own <code>swatch()</code> function which is used automatically:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb16" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb16-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(eyedroppeR)</span>
<span id="cb16-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">extract_pal</span>(</span>
<span id="cb16-3">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">n =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">4</span>,</span>
<span id="cb16-4">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">img_path =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"https://nrennie.rbind.io/blog/creating-typewriter-images-r/image.jpg"</span></span>
<span id="cb16-5">)</span></code></pre></div></div>
</div>
<p><a href="images/pal12.png" class="lightbox" data-gallery="quarto-lightbox-gallery-12"><img src="https://nrennie.com/blog/2025-01-10-colours-in-r/images/pal12.png" class="img-fluid" data-fig-width="100%" alt="Image of a river cropped into a circle with four circles showing different blue colours underneath"></a></p>
</section>
</section>
<section id="further-reading" class="level2">
<h2 class="anchored" data-anchor-id="further-reading">Further reading</h2>
<p>If you’d like to continue reading about working with colours in R, these are some good places to start:</p>
<ul>
<li><p>Cara Thompson has many useful resources about choosing colours in R, including the <a href="https://www.cararthompson.com/talks/nhsr2022-palatable-palettes/" target="_blank">resources from her NHS-R conference talk</a> on creating and applying bespoke colour schemes.</p></li>
<li><p>I previously wrote a <a href="https://www.jumpingrivers.com/blog/custom-colour-palettes-for-ggplot2/" target="_blank">blog post for Jumping Rivers</a> about how to create your own custom colour palette functions if you want to make it easier to use your chosen colours in {ggplot2}.</p></li>
<li><p>This one isn’t R specific but it’s insanely useful! Lisa Muth’s <a href="https://blog.datawrapper.de/colors-for-data-vis-style-guides/" target="_blank">Datawrapper blog post</a> contains lots of design tips for creating your own colour palette.</p></li>
</ul>


</section>

<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-reuse"><h2 class="anchored quarto-appendix-heading">Reuse</h2><div class="quarto-appendix-contents"><div><a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></div></div></section><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Citation</h2><div><div class="quarto-appendix-secondary-label">BibTeX citation:</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{rennie2025,
  author = {Rennie, Nicola},
  title = {Working with Colours in {R}},
  date = {2025-01-10},
  url = {https://nrennie.com/blog/2025-01-10-colours-in-r/},
  langid = {en}
}
</code></pre><div class="quarto-appendix-secondary-label">For attribution, please cite this work as:</div><div id="ref-rennie2025" class="csl-entry quarto-appendix-citeas">
Rennie, Nicola. 2025. <span>“Working with Colours in R.”</span> January
10. <a href="https://nrennie.com/blog/2025-01-10-colours-in-r/">https://nrennie.com/blog/2025-01-10-colours-in-r/</a>.
</div></div></section></div> ]]></description>
  <category>R</category>
  <category>Data Visualisation</category>
  <guid>https://nrennie.com/blog/2025-01-10-colours-in-r/</guid>
  <pubDate>Fri, 10 Jan 2025 00:00:00 GMT</pubDate>
  <media:content url="https://nrennie.com/blog/2025-01-10-colours-in-r/featured.png" medium="image" type="image/png" height="103" width="144"/>
</item>
<item>
  <title>Introducing the messy package</title>
  <dc:creator>Nicola Rennie</dc:creator>
  <link>https://nrennie.com/blog/2024-12-03-introducing-messy-r-package/</link>
  <description><![CDATA[ 





<p>When teaching examples using R, instructors often use <em>nice</em> datasets, but these aren’t very realistic, and aren’t what students will later encounter in the real world. Real datasets have typos, missing values encoded in strange ways, and weird spaces - to name just a few issues. At the same, it’s quite rare to teach a module solely on data wrangling. Since genuinely real datasets aren’t always ideal for teaching because they might not fit the assumptions of the model you’re trying to teach, or it’s just <em>too</em> messy. That’s where the <code>messy</code> package comes in!</p>
<section id="what-does-messy-do" class="level2">
<h2 class="anchored" data-anchor-id="what-does-messy-do">What does <code>messy</code> do?</h2>
<p>The <code>messy</code> R package takes a clean dataset, and randomly adds these features of <em>real</em> datasets in - giving students the opportunity to practice their data cleaning and wrangling skills without educators having to change all of their examples.</p>
</section>
<section id="installing-messy" class="level2">
<h2 class="anchored" data-anchor-id="installing-messy">Installing <code>messy</code></h2>
<p>As of early December 2024, <code>messy</code> is officially available on CRAN. You can install <code>messy</code> using <code>install.packages("messy")</code>.</p>
<p>You can also install the development version from GitHub:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb1-1">pak<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">pkg_install</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"nrennie/messy"</span>)</span></code></pre></div></div>
</div>
<p>You can then load it in the normal way:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb2-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(messy)</span></code></pre></div></div>
</div>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="featured.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1"><img src="https://nrennie.com/blog/2024-12-03-introducing-messy-r-package/featured.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:80.0%" alt="messy package hex logo"></a></p>
</figure>
</div>
</section>
<section id="a-few-examples" class="level2">
<h2 class="anchored" data-anchor-id="a-few-examples">A few examples</h2>
<blockquote class="blockquote">
<p>Before we jump into showcasing some examples, I want to thank the people who have contributed to <code>messy</code> already:</p>
<ul>
<li><a href="https://github.com/jack-davison" target="_blank">Jack Davison</a>: added functions for creating messy date/time data.</li>
<li><a href="https://github.com/drmowinckels" target="_blank">Athanasia Monika Mowinckel</a>: added functions for creating messy column names and even messier character strings.</li>
<li><a href="https://github.com/Philip-Leftwich" target="_blank">Philip Leftwich</a>: added functions for randomly duplicating and reordering rows of data.</li>
</ul>
</blockquote>
<section id="using-the-messy-function" class="level3">
<h3 class="anchored" data-anchor-id="using-the-messy-function">Using the <code>messy()</code> function</h3>
<p>Let’s start with the first 10 rows of the <code>ToothGrowth</code> data as an example of a small, clean dataset:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb3-1">ToothGrowth[<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span>,]</span></code></pre></div></div>
<div class="cell-output cell-output-stdout">
<pre><code>    len supp dose
1   4.2   VC  0.5
2  11.5   VC  0.5
3   7.3   VC  0.5
4   5.8   VC  0.5
5   6.4   VC  0.5
6  10.0   VC  0.5
7  11.2   VC  0.5
8  11.2   VC  0.5
9   5.2   VC  0.5
10  7.0   VC  0.5</code></pre>
</div>
</div>
<p>The easiest way to use the <code>messy</code> package, is through the <code>messy()</code> function. Simply pass in the data frame that you want to make messier:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb5" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb5-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">set.seed</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1234</span>)</span>
<span id="cb5-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">messy</span>(ToothGrowth[<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span>,])</span></code></pre></div></div>
<div class="cell-output cell-output-stdout">
<pre><code>    len supp dose
1   4.2   VC  0.5
2  11.5 &lt;NA&gt; &lt;NA&gt;
3  7.3    VC  0.5
4   5.8  (VC  0.5
5   6.4   VC &lt;NA&gt;
6    10   VC  0.5
7  11.2 &lt;NA&gt;  0.5
8  11.2   VC  0.5
9  5.2    VC  0.5
10    7   VC 0.5 </code></pre>
</div>
</div>
</section>
<section id="chaining-together-multiple-functions" class="level3">
<h3 class="anchored" data-anchor-id="chaining-together-multiple-functions">Chaining together multiple functions</h3>
<p>You can also vary the amount of <code>messiness</code>, and pick and choose which functions are applied to which columns, by chaining together multiple functions:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb7" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb7-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">set.seed</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1234</span>)</span>
<span id="cb7-2">ToothGrowth[<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span>,] <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb7-3">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">make_missing</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">cols =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"supp"</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">missing =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">" "</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb7-4">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">make_missing</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">cols =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"len"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"dose"</span>), <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">missing =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">NA</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">999</span>)) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb7-5">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">add_whitespace</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">cols =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"supp"</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">messiness =</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.5</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb7-6">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">add_special_chars</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">cols =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"supp"</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb7-7">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">messy_colnames</span>()</span></code></pre></div></div>
<div class="cell-output cell-output-stdout">
<pre><code>   !l_e)n  S^UPP d^o)se 
1      4.2    VC     0.5
2     11.5   VC       NA
3      7.3    VC     0.5
4      5.8  *VC      0.5
5      6.4   VC      0.5
6     10.0    VC     0.5
7     11.2           0.5
8     11.2   V#C      NA
9      5.2   !VC     0.5
10     7.0  VC*      0.5</code></pre>
</div>
</div>
<blockquote class="blockquote">
<p>Tip: If you’re adding <code>messy_colnames()</code> to a chain (and you specify only some columns in other functions), make sure <code>messy_colnames()</code> comes at the end. Otherwise, the column names you try to select may no longer exist!</p>
</blockquote>
<p>See the <a href="https://nrennie.rbind.io/messy/" target="_blank">package documentation</a> for more examples, and descriptions of all available functions.</p>
</section>
</section>
<section id="some-other-thoughts-about-messy" class="level2">
<h2 class="anchored" data-anchor-id="some-other-thoughts-about-messy">Some other thoughts about <code>messy</code></h2>
<p>Though this is an R package, it’s also useful for teaching programming in other languages. You create a <em>messy</em> dataset and then save it as a CSV (or Excel) file and then use it for any data wrangling practice, regardless of language. It also has uses beyond teaching. For example, testing functions or R packages to make sure that functions work as expected, or give useful and appropriate errors when they don’t.</p>
<p>I’m incredibly grateful for the excellent response to <code>messy</code> so far, and especially to those people who have contributed suggestions, issues, and pull requests. If you have another suggestion of how to make messy data that you think would be useful to add, please <a href="https://github.com/nrennie/messy/issues" target="_blank">open a GitHub issue</a>.</p>
<p>The source code for the <code>messy</code> R package can be found on GitHub at <a href="https://github.com/nrennie/messy" target="_blank">github.com/nrennie/messy</a>.</p>


</section>

<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-reuse"><h2 class="anchored quarto-appendix-heading">Reuse</h2><div class="quarto-appendix-contents"><div><a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></div></div></section><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Citation</h2><div><div class="quarto-appendix-secondary-label">BibTeX citation:</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{rennie2024,
  author = {Rennie, Nicola},
  title = {Introducing the `Messy` Package},
  date = {2024-12-03},
  url = {https://nrennie.com/blog/2024-12-03-introducing-messy-r-package/},
  langid = {en}
}
</code></pre><div class="quarto-appendix-secondary-label">For attribution, please cite this work as:</div><div id="ref-rennie2024" class="csl-entry quarto-appendix-citeas">
Rennie, Nicola. 2024. <span>“Introducing the `Messy` Package.”</span>
December 3. <a href="https://nrennie.com/blog/2024-12-03-introducing-messy-r-package/">https://nrennie.com/blog/2024-12-03-introducing-messy-r-package/</a>.
</div></div></section></div> ]]></description>
  <category>R</category>
  <category>Teaching</category>
  <guid>https://nrennie.com/blog/2024-12-03-introducing-messy-r-package/</guid>
  <pubDate>Tue, 03 Dec 2024 00:00:00 GMT</pubDate>
  <media:content url="https://nrennie.com/blog/2024-12-03-introducing-messy-r-package/featured.png" medium="image" type="image/png" height="103" width="144"/>
</item>
<item>
  <title>Getting comfortable talking about tech</title>
  <dc:creator>Nicola Rennie</dc:creator>
  <link>https://nrennie.com/blog/2024-11-05-talking-about-tech/</link>
  <description><![CDATA[ 





<p>I’ve spent over 40 hours so far this year delivering talks and workshops about programming, visualisation, and data science, with several more hours still to come before the end of the year. If you’d told me 10 years ago that this is something I would do voluntarily (and would actively enjoy), I would never have believed you. I’d have been horrified at the thought.</p>
<p>And as I’ve started organising more events and finding speakers for meetups, I’ve realised that there are many more people who are also horrified at the thought of talking about tech in public. For example, there are so many people who write code every day but don’t feel comfortable talking about their code in public. I was definitely that person for a long time.</p>
<p>Now, I think I might actually be at my most relaxed when I’m running workshops. So I wanted to write down some of the things that have helped me in getting comfortable talking about tech (although hopefully some of the advice is also useful for non-tech talks!)</p>
<section id="five-tips-for-talking-about-tech" class="level2">
<h2 class="anchored" data-anchor-id="five-tips-for-talking-about-tech">Five tips for talking about tech</h2>
<p>These are some of the things that have helped me and are personal opinions - they many or may not be things that help you!</p>
<section id="talk-for-longer" class="level3">
<h3 class="anchored" data-anchor-id="talk-for-longer">1. Talk for longer</h3>
<p>This might seem entirely counter-intuitive, but if you hate public speaking, I recommend speaking for longer. Lightning talks (usually somewhere between 3 and 5 minutes) are often recommended as a good entry point to talking about tech. Personally, I find lightning talks the hardest talks to deliver. With only a few minutes, it can feel like it has to be really well-rehearsed with little room for error. And that can feel like a lot of pressure.</p>
<p>Conversely, in a one hour workshop setting, if you muddle something up or make a mistake, you have plenty of time to correct it or clarify. You can take a little bit more time to breathe and collect your thoughts. It’s a much more relaxed environment on the whole.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/rss2024.jpg" class="lightbox" data-gallery="quarto-lightbox-gallery-1"><img src="https://nrennie.com/blog/2024-11-05-talking-about-tech/images/rss2024.jpg" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:80.0%" alt="Photo of me at RSS conference standing in front a TV showing some R code"></a></p>
</figure>
</div>
<div class="center smaller">
<p>Photo: <a href="https://rugfootphotography.pixieset.com/rssconference2024/speakers/?pid=12551894678&amp;id=171&amp;h=NTA3ODU4Mjc5" target="_blank">rugfoot photography</a></p>
</div>
</section>
<section id="find-your-community-of-nerds" class="level3">
<h3 class="anchored" data-anchor-id="find-your-community-of-nerds">2. Find your community of nerds</h3>
<p>People who dislike public speaking often avoid it until they absolutely have to do it. And those situations where you’re forced to speak in public are often more high pressure e.g.&nbsp;a job interview, conference presentation, or important work meeting.</p>
<p>Meetups are often a great low pressure environment to practice a talk. They’re informal gatherings of nerdy people who want to spend some time talking about data. Organisations like PyData, R-Ladies, PyLadies, rainbowR, R User groups, Tableau User Groups, or data visualisation meetups can be a great place to meet people with similar interests, and give a talk to people who you already know are interested in what you have to say.</p>
<div class="grid">
<div class="g-col-12 g-col-md-4">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/rladies.png" class="lightbox" data-gallery="quarto-lightbox-gallery-2"><img src="https://nrennie.com/blog/2024-11-05-talking-about-tech/images/rladies.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt="R-Ladies logo"></a></p>
</figure>
</div>
</div>
<div class="g-col-12 g-col-md-4">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/pyladies.png" class="lightbox" data-gallery="quarto-lightbox-gallery-3"><img src="https://nrennie.com/blog/2024-11-05-talking-about-tech/images/pyladies.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt="PyLadies logo"></a></p>
</figure>
</div>
</div>
<div class="g-col-12 g-col-md-4">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/pydata.jpg" class="lightbox" data-gallery="quarto-lightbox-gallery-4"><img src="https://nrennie.com/blog/2024-11-05-talking-about-tech/images/pydata.jpg" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:100.0%" alt="PyData logo"></a></p>
</figure>
</div>
</div>
</div>
<p>Several of these organisations (and the <a href="https://dslc.io/" target="_blank">Data Science Learning Community</a>) also host book clubs, if you want a more relaxed way to get to know other people. You could present a chapter of a book to build your confidence in delivering a talk.</p>
</section>
<section id="deliver-your-talk-online" class="level3">
<h3 class="anchored" data-anchor-id="deliver-your-talk-online">3. Deliver your talk online</h3>
<p>At the start of the Covid-19 pandemic, many communities moved their events online, and many have kept some or all of their events available in an online format. Although some may find delivering online talks a little demotivating at times (we all get screen fatigue and can find online talks less engaging), they can be really good for building your confidence in delivering talks. If you’re nervous about talking in front of an audience, it’s much easier to pretend they’re not there if you’re just sitting at home. Delivering a presentation is often more relaxed if you’re in a familiar environment rather than having to travel and deal with the technical problems of connecting laptops and sharing screens in a new location.</p>
<p>It’s also easier to have some notes for yourself. I used to (and occasionally still do) have the habit of talking too fast when I’m nervous. When I started doing online talks, I would write giant notes to myself to <em>BREATHE</em> and then count to four. It’s started to become a more natural habit when I’m delivering presentations, and it was much easier to build that habit in an online setting first.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/twitter.png" class="lightbox" data-gallery="quarto-lightbox-gallery-5"><img src="https://nrennie.com/blog/2024-11-05-talking-about-tech/images/twitter.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:50.0%" alt="Twitter screenshot"></a></p>
</figure>
</div>
<div class="center smaller">
<p>One of the first technical meetup talks I delivered was for R-Ladies Nairobi</p>
</div>
</section>
<section id="pre-record-live-demos" class="level3">
<h3 class="anchored" data-anchor-id="pre-record-live-demos">4. Pre-record live demos</h3>
<p>There’s plenty of literature (both scientific and anecdotal) that shows, when talking about writing code, it’s more engaging and beneficial to do live demonstrations with code. And I would highly recommend it as a way to make tech talks more engaging!</p>
<p>But, if you’re already feeling nervous about delivering a presentation, the thought of writing code live, in front of an audience, is unlikely to make you feel less nervous. There’s a more room for mistakes - which is absolutely fine by the way! The mistakes are often the most useful as an audience member because they show easy-to-make mistakes, and how to fix them.</p>
<p>One of the compromises between showing static code and live-coding, that I found useful, was pre-recording short snippets of code. For example, a gif showing the process (rather than just the final product) of writing YAML options in a Quarto document:</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/yaml.gif" class="lightbox" data-gallery="quarto-lightbox-gallery-6"><img src="https://nrennie.com/blog/2024-11-05-talking-about-tech/images/yaml.gif" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:80.0%" alt="Gif of quarto document typing"></a></p>
</figure>
</div>
<div class="center smaller">
<p>Pre-recorded gif of YAML in a Quarto document</p>
</div>
<p>The short, repeating nature of the clip means you don’t have to worry about talking at a certain pace. But you also don’t have to worry about being able to write code live. And it’s more engaging for an audience than just looking at a static image of your code.</p>
</section>
<section id="do-the-same-talk-multiple-times" class="level3">
<h3 class="anchored" data-anchor-id="do-the-same-talk-multiple-times">5. Do the same talk multiple times</h3>
<p>Don’t be afraid to re-use the same talk at multiple places. Developing slides for a talk takes time, and it’s easier to iterate on your slides rather than starting from scratch each time. You can tailor the talk to different audiences e.g.&nbsp;spending more time talking about code in a meetup versus talking about results at a conference. Or use different data sets for the examples you show.</p>
<p>Each time you deliver your talk, you’ll notice things you want to edit, things you want to remove, or things you want to add in. You’ll gradually become more confident in delivering it, and have a talk you can deliver at short notice.</p>
<blockquote class="blockquote">
<p>Note: some conferences may require you to submit a new talk that hasn’t been presented before.</p>
</blockquote>
</section>
</section>
<section id="additional-resources" class="level2">
<h2 class="anchored" data-anchor-id="additional-resources">Additional resources</h2>
<p>Feeling ready to give your next (or first) talk about tech? Here are some more resources you might find useful:</p>
<ul>
<li><p>This episode of the <a href="https://posit.co/data-science-hangout/acacia-duncan-and-blythe-coons/" target="_blank">Posit Data Science Hangout</a> fetaures Acacia Duncan and Blythe Coons from Articulation (the company who have been coaching speakers for posit::conf).</p></li>
<li><p>Emil Hvitfeldt’s <a href="https://emilhvitfeldt.com/post/slidecraft-colors-fonts/" target="_blank">Slidecraft blog series</a> can help you to design beautiful slides using Quarto - perfect for presenting slides about code!</p></li>
<li><p>The <a href="https://nrennie.rbind.io/talks/2022-september-rss-international-conference/" target="_blank">slides</a> from my pre-conference workshop at the 2022 RSS Conference on <em>Technical presentations are difficult - let’s make them easier!</em> take you through some guidance for developing a good talk. It also has the advice we crowd-sourced during the session about what makes a good technical presentation.</p></li>
</ul>


</section>

<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-reuse"><h2 class="anchored quarto-appendix-heading">Reuse</h2><div class="quarto-appendix-contents"><div><a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></div></div></section><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Citation</h2><div><div class="quarto-appendix-secondary-label">BibTeX citation:</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{rennie2024,
  author = {Rennie, Nicola},
  title = {Getting Comfortable Talking about Tech},
  date = {2024-11-05},
  url = {https://nrennie.com/blog/2024-11-05-talking-about-tech/},
  langid = {en}
}
</code></pre><div class="quarto-appendix-secondary-label">For attribution, please cite this work as:</div><div id="ref-rennie2024" class="csl-entry quarto-appendix-citeas">
Rennie, Nicola. 2024. <span>“Getting Comfortable Talking about
Tech.”</span> November 5. <a href="https://nrennie.com/blog/2024-11-05-talking-about-tech/">https://nrennie.com/blog/2024-11-05-talking-about-tech/</a>.
</div></div></section></div> ]]></description>
  <category>R</category>
  <category>Python</category>
  <category>Community</category>
  <guid>https://nrennie.com/blog/2024-11-05-talking-about-tech/</guid>
  <pubDate>Tue, 05 Nov 2024 00:00:00 GMT</pubDate>
  <media:content url="https://nrennie.com/blog/2024-11-05-talking-about-tech/featured.png" medium="image" type="image/png" height="103" width="144"/>
</item>
</channel>
</rss>
