Select Table or Map and drag slider for Year/Quarter. Press Play for animation. Float over map to see regional figures. Raw data is here.
v0.6. Maps modified from Wikimedia Commons under CC BY-SA 3.0 license
Select Table or Map and drag slider for Year/Quarter. Press Play for animation. Float over map to see regional figures. Raw data is here.
v0.6. Maps modified from Wikimedia Commons under CC BY-SA 3.0 license
<!DOCTYPE html> | |
<html><head> | |
<meta content="text/html; charset=UTF-8" http-equiv="content-type"/> | |
<link rel="stylesheet" type="text/css" href="main.css"> | |
</head> | |
<body> | |
<div id="chart"></div> | |
<div id="ctrls"> | |
<div id="readme"/></div> | |
<strong>Display</strong> | |
<form name="buttons" action=""> | |
<input type="radio" id="radio1" name="charttype" onclick="chartType(0)" checked>Table<br> | |
<input type="radio" id="radio2" name="charttype" onclick="chartType(1)">Map<br> | |
</form> | |
<br><br> | |
<input id="slider" type="range" min="0" max="10" oninput="sliderInput()"> | |
<br> | |
<label id="period">period</label> | |
<br><br> | |
<button id="play" type="button" onclick="play()">Play</button> | |
</div> | |
<script src="//d3js.org/d3.v3.min.js"></script> | |
<script src="//labratrevenge.com/d3-tip/javascripts/d3.tip.v0.6.3.js"></script> | |
<script src="//cdn.rawgit.com/showdownjs/showdown/1.3.0/dist/showdown.min.js"></script> | |
<script src="/pinsterdev/raw/a2fcc47fae884342e190/util.js"></script> | |
<script src="https://api.github.com/gists/0f82dc8380acfd77299724369184a01d?callback=gistDataLoaded"></script> | |
<script src="main.js"></script> | |
</body> | |
</html> |
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
<svg | |
xmlns:dc="http://purl.org/dc/elements/1.1/" | |
xmlns:cc="http://creativecommons.org/ns#" | |
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |
xmlns:svg="http://www.w3.org/2000/svg" | |
xmlns="http://www.w3.org/2000/svg" | |
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |
width="725.75348" | |
height="922.53076" | |
id="svg2" | |
sodipodi:version="0.32" | |
inkscape:version="0.91 r13725" | |
sodipodi:docname="dublin1.svg" | |
inkscape:output_extension="org.inkscape.output.svg.inkscape" | |
version="1.1"> | |
<defs | |
id="defs4" /> | |
<sodipodi:namedview | |
id="base" | |
pagecolor="#ffffff" | |
bordercolor="#666666" | |
borderopacity="1.0" | |
gridtolerance="10000" | |
guidetolerance="10" | |
objecttolerance="10" | |
inkscape:pageopacity="0.0" | |
inkscape:pageshadow="2" | |
inkscape:zoom="0.45254834" | |
inkscape:cx="671.81534" | |
inkscape:cy="449.1297" | |
inkscape:document-units="px" | |
inkscape:current-layer="dubg" | |
showguides="true" | |
inkscape:guide-bbox="true" | |
inkscape:window-width="1278" | |
inkscape:window-height="768" | |
inkscape:window-x="2" | |
inkscape:window-y="22" | |
showgrid="false" | |
fit-margin-top="0" | |
fit-margin-left="0" | |
fit-margin-right="0" | |
fit-margin-bottom="0" | |
inkscape:window-maximized="0" /> | |
<metadata | |
id="metadata7"> | |
<rdf:RDF> | |
<cc:Work | |
rdf:about=""> | |
<dc:format>image/svg+xml</dc:format> | |
<dc:type | |
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | |
<dc:title></dc:title> | |
</cc:Work> | |
</rdf:RDF> | |
</metadata> | |
<g | |
inkscape:label="Layer 1" | |
inkscape:groupmode="layer" | |
id="dubg" | |
transform="translate(-8.9436891,-120.28534)"> | |
<path | |
style="fill:#499920;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |
d="m 332.56116,630.86025 c 0,0 35.35534,-28.72621 51.37573,-49.16602 16.02038,-20.4398 29.27864,-43.64174 29.27864,-43.64174 l -97.77961,0 17.12524,92.80776 z" | |
id="dublin-2" | |
inkscape:connector-curvature="0" | |
inkscape:label="#dublin-2" /> | |
<path | |
style="fill:#ffff00;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |
d="m 265.79724,360.03534 79.3925,-0.17857 2.0203,-103.57143 8.05148,0 0,-72.85714 -12.14285,-0.71429 -27.14286,-45 -74.28571,0.71429 -17.14286,-13.57143 -65.71429,0.71429 -32.14285,85 139.10714,149.46428 z" | |
id="dublin-11" | |
sodipodi:nodetypes="cccccccccccc" | |
inkscape:connector-curvature="0" | |
inkscape:label="#path3136" /> | |
<path | |
style="fill:#ff0000;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |
d="m 171.6901,361.28534 96.42857,0 -140,-152.85714 32.85714,-83.57143 -148.571426,0.71429 -1.428571,332.85714 160.714287,0 0,-97.14286 z" | |
id="dublin-15" | |
sodipodi:nodetypes="cccccccc" | |
inkscape:connector-curvature="0" | |
inkscape:label="#path2164" /> | |
<path | |
style="fill:#4cab00;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |
d="m 224.72581,361.28535 121.42857,0.71429 0,130 -15,0 -106.42857,-130.71429 z" | |
id="dublin-7" | |
inkscape:connector-curvature="0" | |
inkscape:label="#path3140" /> | |
<path | |
style="fill:#4c3aff;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
d="m 584.38967,121.00154 -57.85487,120.57887 151.0178,-2.57266 54.82442,-118.00621 -147.98735,0 z" | |
id="dublin-13" | |
sodipodi:nodetypes="ccccc" | |
inkscape:connector-curvature="0" | |
inkscape:label="#path3142" /> | |
<path | |
style="fill:#e83a00;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |
d="m 408.83295,183.4282 0,24.28572 35,0 0,32.41071 82.33259,0 39.81027,-81.69643 -147.14286,-0.71429 -10,25.71429 z" | |
id="dublin-17" | |
sodipodi:nodetypes="cccccccc" | |
inkscape:connector-curvature="0" | |
inkscape:label="#path3144" /> | |
<path | |
style="fill:#459f13;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |
d="m 355.26152,181.82106 0.71429,73.57143 -10,0 -0.71429,165.71428 97.14286,-85.71428 2.14286,-128.57143 -35.71429,0 0,-24.28572 -53.57143,-0.71428 z" | |
id="dublin-9" | |
inkscape:connector-curvature="0" | |
inkscape:label="#path3146" /> | |
<path | |
style="fill:#459fd5;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |
d="m 443.79947,239.94606 -0.32366,94.73214 189.28572,0 43.66071,-94.69865 -232.62277,-0.0335 z" | |
id="dublin-5" | |
sodipodi:nodetypes="ccccc" | |
inkscape:connector-curvature="0" | |
inkscape:label="#path3148" /> | |
<path | |
style="fill:#453ad5;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |
d="m 444.08121,333.78844 -99.85127,88.46342 86.04833,10.69742 154.80588,-0.25254 1.26269,-0.25255 46.71956,-99.24748 -188.98519,0.59173 z" | |
id="dublin-3" | |
sodipodi:nodetypes="ccccccc" | |
inkscape:connector-curvature="0" | |
inkscape:label="#dublin-3" /> | |
<path | |
style="fill:#df0020;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |
d="m 345.48859,421.52192 0.25254,68.69037 223.74879,0 16.66752,0 -0.25254,-57.32615 -154.3008,0 -86.11551,-11.36422 z" | |
id="dublin-1" | |
inkscape:connector-curvature="0" /> | |
<path | |
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |
d="m 13.11867,125.57106 212.85714,0 14.28571,12.85714 75.71429,0 25.71429,44.28571 68.57142,0 8.57143,-24.28571 147.14286,0 18.57143,-37.14286 148.57143,0 -147.14286,311.42858 0,57.85714 -253.57143,0 -105,-129.28571 -55.71428,0 0,97.14285 -160.000002,0 1.428572,-332.85714 z" | |
id="path2160" | |
sodipodi:nodetypes="cccccccccccccccccc" | |
inkscape:connector-curvature="0" /> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-weight:normal;font-size:12px;line-height:125%;font-family:'Bitstream Vera Sans';fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="33.442329" | |
y="294.53311" | |
id="text4141" | |
sodipodi:linespacing="125%"><tspan | |
sodipodi:role="line" | |
id="tspan4143" | |
x="33.442329" | |
y="294.53311" | |
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:36px;line-height:125%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start">15</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:36px;line-height:125%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="196.36644" | |
y="236.16258" | |
id="text4157" | |
sodipodi:linespacing="125%"><tspan | |
sodipodi:role="line" | |
id="tspan4159" | |
x="196.36644" | |
y="236.16258">11</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:36px;line-height:125%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="367.85083" | |
y="256.08444" | |
id="text4161" | |
sodipodi:linespacing="125%"><tspan | |
sodipodi:role="line" | |
id="tspan4163" | |
x="367.85083" | |
y="256.08444">9</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:36px;line-height:125%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="513.16327" | |
y="196.70946" | |
id="text4165" | |
sodipodi:linespacing="125%"><tspan | |
sodipodi:role="line" | |
id="tspan4167" | |
x="513.16327" | |
y="196.70946">17</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:36px;line-height:125%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="570.19452" | |
y="217.80321" | |
id="text4169" | |
sodipodi:linespacing="125%"><tspan | |
sodipodi:role="line" | |
id="tspan4171" | |
x="570.19452" | |
y="217.80321">13</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:36px;line-height:125%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="467.46021" | |
y="277.95944" | |
id="text4173" | |
sodipodi:linespacing="125%"><tspan | |
sodipodi:role="line" | |
id="tspan4175" | |
x="467.46021" | |
y="277.95944">5</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:36px;line-height:125%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="432.30396" | |
y="386.94382" | |
id="text4177" | |
sodipodi:linespacing="125%"><tspan | |
sodipodi:role="line" | |
id="tspan4179" | |
x="432.30396" | |
y="386.94382">3</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:36px;line-height:125%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="365.11646" | |
y="477.56882" | |
id="text4181" | |
sodipodi:linespacing="125%"><tspan | |
sodipodi:role="line" | |
id="tspan4183" | |
x="365.11646" | |
y="477.56882">1</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:36px;line-height:125%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="318.78238" | |
y="463.77917" | |
id="text4185" | |
sodipodi:linespacing="125%"><tspan | |
sodipodi:role="line" | |
id="tspan4187" | |
x="318.78238" | |
y="463.77917">7</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="35.750568" | |
y="307.41415" | |
id="text4189" | |
sodipodi:linespacing="125%"><tspan | |
sodipodi:role="line" | |
id="tspan4191" | |
x="35.750568" | |
y="307.41415">Blanchardstown</tspan><tspan | |
sodipodi:role="line" | |
x="35.750568" | |
y="321.16415" | |
id="tspan4193">Castleknock</tspan><tspan | |
sodipodi:role="line" | |
x="35.750568" | |
y="334.91415" | |
id="tspan4195">Clonee</tspan><tspan | |
sodipodi:role="line" | |
x="35.750568" | |
y="348.66415" | |
id="tspan4197">Clonsilla</tspan><tspan | |
sodipodi:role="line" | |
x="35.750568" | |
y="362.41415" | |
id="tspan4199">Corduff</tspan><tspan | |
sodipodi:role="line" | |
x="35.750568" | |
y="376.16415" | |
id="tspan4201">Mulhuddart</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="239.04378" | |
y="179.52725" | |
id="text4203" | |
sodipodi:linespacing="125%"><tspan | |
sodipodi:role="line" | |
id="tspan4205" | |
x="239.04378" | |
y="179.52725">Ballygall</tspan><tspan | |
sodipodi:role="line" | |
x="239.04378" | |
y="193.27725" | |
id="tspan4207">Cappagh</tspan><tspan | |
sodipodi:role="line" | |
x="239.04378" | |
y="207.02725" | |
id="tspan4209">Cremore</tspan><tspan | |
sodipodi:role="line" | |
x="239.04378" | |
y="220.77725" | |
id="tspan4211">Dubber</tspan><tspan | |
sodipodi:role="line" | |
x="239.04378" | |
y="234.52725" | |
id="tspan4213">Finglas</tspan><tspan | |
sodipodi:role="line" | |
x="239.04378" | |
y="248.27725" | |
id="tspan4215">Jamestown</tspan><tspan | |
sodipodi:role="line" | |
x="239.04378" | |
y="262.02725" | |
id="tspan4217">Kilshane</tspan><tspan | |
sodipodi:role="line" | |
x="239.04378" | |
y="275.77725" | |
id="tspan4219">Wadelai</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="368.31174" | |
y="267.91559" | |
id="text4221" | |
sodipodi:linespacing="125%"><tspan | |
sodipodi:role="line" | |
id="tspan4223" | |
x="368.31174" | |
y="267.91559">Beaumont</tspan><tspan | |
sodipodi:role="line" | |
x="368.31174" | |
y="281.66559" | |
id="tspan4225">Drumcondra</tspan><tspan | |
sodipodi:role="line" | |
x="368.31174" | |
y="295.41559" | |
id="tspan4227">Elm Mount</tspan><tspan | |
sodipodi:role="line" | |
x="368.31174" | |
y="309.16559" | |
id="tspan4229">Griffith Ave.</tspan><tspan | |
sodipodi:role="line" | |
x="368.31174" | |
y="322.91559" | |
id="tspan4231">Santry</tspan><tspan | |
sodipodi:role="line" | |
x="368.31174" | |
y="336.66559" | |
id="tspan4233">Whitehall</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="277.71368" | |
y="373.9816" | |
id="text4235" | |
sodipodi:linespacing="125%"><tspan | |
sodipodi:role="line" | |
id="tspan4237" | |
x="277.71368" | |
y="373.9816">Arbour Hill</tspan><tspan | |
sodipodi:role="line" | |
x="277.71368" | |
y="387.7316" | |
id="tspan4239">Cabra</tspan><tspan | |
sodipodi:role="line" | |
x="277.71368" | |
y="401.4816" | |
id="tspan4241">Phibsboro</tspan><tspan | |
sodipodi:role="line" | |
x="277.71368" | |
y="415.2316" | |
id="tspan4243">Four Courts</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="495.37" | |
y="256.86703" | |
id="text4245" | |
sodipodi:linespacing="125%"><tspan | |
sodipodi:role="line" | |
id="tspan4247" | |
x="495.37" | |
y="256.86703">Artane</tspan><tspan | |
sodipodi:role="line" | |
x="495.37" | |
y="270.61703" | |
id="tspan4249">Harmonstown</tspan><tspan | |
sodipodi:role="line" | |
x="495.37" | |
y="284.36703" | |
id="tspan4251">Raheny</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="452.28067" | |
y="168.02106" | |
id="text4253" | |
sodipodi:linespacing="125%"><tspan | |
sodipodi:role="line" | |
id="tspan4255" | |
x="452.28067" | |
y="168.02106">Belcamp</tspan><tspan | |
sodipodi:role="line" | |
x="452.28067" | |
y="181.77106" | |
id="tspan4257">Balgriffin</tspan><tspan | |
sodipodi:role="line" | |
x="452.28067" | |
y="195.52106" | |
id="tspan4259">Clonshaugh</tspan><tspan | |
sodipodi:role="line" | |
x="452.28067" | |
y="209.27106" | |
id="tspan4261">Priorswood</tspan><tspan | |
sodipodi:role="line" | |
x="452.28067" | |
y="223.02106" | |
id="tspan4263">Darndale</tspan><tspan | |
sodipodi:role="line" | |
x="452.28067" | |
y="236.77106" | |
id="tspan4265">Riverside</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="618.00879" | |
y="139.75249" | |
id="text4267" | |
sodipodi:linespacing="125%"><tspan | |
sodipodi:role="line" | |
id="tspan4269" | |
x="618.00879" | |
y="139.75249">Baily</tspan><tspan | |
sodipodi:role="line" | |
x="618.00879" | |
y="153.50249" | |
id="tspan4271">Baldoyle</tspan><tspan | |
sodipodi:role="line" | |
x="618.00879" | |
y="167.25249" | |
id="tspan4273">Bayside</tspan><tspan | |
sodipodi:role="line" | |
x="618.00879" | |
y="181.00249" | |
id="tspan4275">Donaghmede</tspan><tspan | |
sodipodi:role="line" | |
x="618.00879" | |
y="194.75249" | |
id="tspan4277">Sutton</tspan><tspan | |
sodipodi:role="line" | |
x="618.00879" | |
y="208.50249" | |
id="tspan4279">Howth</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="461.11951" | |
y="345.2554" | |
id="text4281" | |
sodipodi:linespacing="125%"><tspan | |
sodipodi:role="line" | |
id="tspan4283" | |
x="461.11951" | |
y="345.2554">Ballybough</tspan><tspan | |
sodipodi:role="line" | |
x="461.11951" | |
y="359.0054" | |
id="tspan4285">Clonliffe</tspan><tspan | |
sodipodi:role="line" | |
x="461.11951" | |
y="372.7554" | |
id="tspan4287">Clontarf</tspan><tspan | |
sodipodi:role="line" | |
x="461.11951" | |
y="386.5054" | |
id="tspan4289">Dollymount</tspan><tspan | |
sodipodi:role="line" | |
x="461.11951" | |
y="400.2554" | |
id="tspan4291">East Wall</tspan><tspan | |
sodipodi:role="line" | |
x="461.11951" | |
y="414.0054" | |
id="tspan4293">Fairview</tspan><tspan | |
sodipodi:role="line" | |
x="461.11951" | |
y="427.7554" | |
id="tspan4295">Marino</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="653.36414" | |
y="344.15054" | |
id="text4297" | |
sodipodi:linespacing="125%"><tspan | |
sodipodi:role="line" | |
id="tspan4299" | |
x="653.36414" | |
y="344.15054">Abbey St.</tspan><tspan | |
sodipodi:role="line" | |
x="653.36414" | |
y="357.90054" | |
id="tspan4301">Amiens St.</tspan><tspan | |
sodipodi:role="line" | |
x="653.36414" | |
y="371.65054" | |
id="tspan4303">Capel St.</tspan><tspan | |
sodipodi:role="line" | |
x="653.36414" | |
y="385.40054" | |
id="tspan4305">Dorset St.</tspan><tspan | |
sodipodi:role="line" | |
x="653.36414" | |
y="399.15054" | |
id="tspan4307">Henry St.</tspan><tspan | |
sodipodi:role="line" | |
x="653.36414" | |
y="412.90054" | |
id="tspan4309">Mountjoy Sq.</tspan><tspan | |
sodipodi:role="line" | |
x="653.36414" | |
y="426.65054" | |
id="tspan4311">Marlboro St.</tspan><tspan | |
sodipodi:role="line" | |
x="653.36414" | |
y="440.40054" | |
id="tspan4313">North Wall</tspan><tspan | |
sodipodi:role="line" | |
x="653.36414" | |
y="454.15054" | |
id="tspan4315">O'Connell St.</tspan><tspan | |
sodipodi:role="line" | |
x="653.36414" | |
y="467.90054" | |
id="tspan4317">Parnell Sq.</tspan><tspan | |
sodipodi:role="line" | |
x="653.36414" | |
y="481.65054" | |
id="tspan4319">Summerhill</tspan><tspan | |
sodipodi:role="line" | |
x="653.36414" | |
y="495.40054" | |
id="tspan4321">Talbot St.</tspan></text> | |
<text | |
sodipodi:linespacing="125%" | |
id="text4430" | |
y="573.40784" | |
x="328.69418" | |
style="font-weight:bold;font-size:36px;line-height:125%" | |
xml:space="preserve"><tspan | |
y="573.40784" | |
x="328.69418" | |
id="tspan4432" | |
sodipodi:role="line">2</tspan></text> | |
<path | |
id="path4434" | |
d="m 355.7631,561.80685 0,-38.6699 317.0932,0 0,30.93592" | |
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:10, 5;stroke-dashoffset:50;stroke-opacity:1" | |
inkscape:connector-curvature="0" /> | |
<path | |
id="path4436" | |
d="m 387.25145,468.99909 260.74563,0" | |
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:10, 5;stroke-dashoffset:49.99996948;stroke-opacity:1" | |
inkscape:connector-curvature="0" /> | |
<text | |
sodipodi:linespacing="125%" | |
id="text4438" | |
y="579.70593" | |
x="634.375" | |
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
xml:space="preserve"><tspan | |
y="579.70593" | |
x="634.375" | |
id="tspan4440" | |
sodipodi:role="line">Baggot St. LWR.</tspan><tspan | |
id="tspan4444" | |
y="593.45593" | |
x="634.375" | |
sodipodi:role="line">College Green</tspan><tspan | |
id="tspan4448" | |
y="607.20593" | |
x="634.375" | |
sodipodi:role="line">Dawson St.</tspan><tspan | |
id="tspan4450" | |
y="620.95593" | |
x="634.375" | |
sodipodi:role="line">Fitzwilliam Sq.</tspan><tspan | |
id="tspan4452" | |
y="634.70593" | |
x="634.375" | |
sodipodi:role="line">Harcourt St.</tspan><tspan | |
id="tspan4454" | |
y="648.45593" | |
x="634.375" | |
sodipodi:role="line">Kildare St.</tspan><tspan | |
id="tspan4456" | |
y="662.20593" | |
x="634.375" | |
sodipodi:role="line">Lord Edward St.</tspan><tspan | |
id="tspan4458" | |
y="675.95593" | |
x="634.375" | |
sodipodi:role="line">Merrion Sq.</tspan><tspan | |
id="tspan4460" | |
y="689.70593" | |
x="634.375" | |
sodipodi:role="line">Mount St. U. & L.</tspan><tspan | |
id="tspan4462" | |
y="703.45593" | |
x="634.375" | |
sodipodi:role="line">Nassau St.</tspan><tspan | |
id="tspan4464" | |
y="717.20593" | |
x="634.375" | |
sodipodi:role="line">Pearse St.</tspan><tspan | |
id="tspan4466" | |
y="730.95593" | |
x="634.375" | |
sodipodi:role="line">St Stephens Gt.</tspan><tspan | |
id="tspan4468" | |
y="744.70593" | |
x="634.375" | |
sodipodi:role="line">Sth. Gt. Georges St.</tspan><tspan | |
id="tspan4470" | |
y="758.45593" | |
x="634.375" | |
sodipodi:role="line">Leeson St. U. & L.</tspan><tspan | |
id="tspan4472" | |
y="772.20593" | |
x="634.375" | |
sodipodi:role="line" /></text> | |
<path | |
style="fill:#910020;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |
d="m 413.28458,537.84532 c -21.29454,34.9271 -18.81306,33.68543 -48.68265,64.0125 l 49.6419,97.42012 -0.20905,0.10964 43.92833,65.14576 64.63299,-43.62746 0.41432,-126.43677 105.37548,-29.07148 0.75959,-27.41421 -215.86091,-0.1381 z" | |
id="dublin-4" | |
sodipodi:nodetypes="cccccccccc" | |
inkscape:connector-curvature="0" | |
inkscape:label="#path4325" /> | |
<path | |
style="fill:#ff9900;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |
d="m 114.90486,522.58452 95.29369,80.93058 -53.03301,26.51651 1.51917,25.96407 110.07112,-37.01262 64.08155,7.73398 -17.67767,-89.76941 -31.21213,-16.02039 -44.19418,-45.02281 -51.37573,0.27621 0.27622,46.40388 -73.74903,0 z" | |
id="dublin-8" | |
sodipodi:nodetypes="cccccccccccc" | |
inkscape:connector-curvature="0" | |
inkscape:label="#path4474" /> | |
<path | |
style="fill:#ff7efc;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |
d="m 9.9436891,575.0651 72.9203869,19.33495 117.666984,0 -84.52135,-71.2631 -106.0660209,0 0,51.92815 z" | |
id="dublin-20" | |
inkscape:connector-curvature="0" | |
inkscape:label="#path4476" /> | |
<path | |
style="fill:#00a800;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |
d="m 10.267293,575.45573 74.806492,18.94432 0.778375,87.2835 4.745896,37.56505 35.969034,-17.64416 47.54225,22.97312 L 10.496116,867.29908 10.267293,575.45573 Z" | |
id="dublin-22" | |
sodipodi:nodetypes="cccccccc" | |
inkscape:connector-curvature="0" | |
inkscape:label="#path4482" /> | |
<path | |
style="fill:#517ee2;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |
d="m 84.002441,594.43357 1.953125,86.73106 72.524004,-25.09211 -1.23315,-26.15532 55.76739,-25.53994 -14.3631,-11.60097 -114.648269,1.65728 z" | |
id="dublin-10" | |
sodipodi:nodetypes="ccccccc" | |
inkscape:connector-curvature="0" | |
inkscape:label="#path4478" /> | |
<path | |
style="fill:#ff2400;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |
d="m 85.839843,681.5614 185.253907,-64.35547 64.0625,9.375 -160.15625,206.25 -0.78125,-107.8125 -47.65625,-23.4375 -36.71875,18.75 -4.003907,-38.76953 z" | |
id="dublin-12" | |
sodipodi:nodetypes="cccccccc" | |
inkscape:connector-curvature="0" | |
inkscape:label="#path4480" /> | |
<path | |
style="fill:#00a7ed;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |
d="M 174.14479,724.72546 173.73047,1041.8152 10.449219,1041.6199 10.742188,864.86218 174.14479,724.72546 Z" | |
id="dublin-24" | |
sodipodi:nodetypes="ccccc" | |
inkscape:connector-curvature="0" | |
inkscape:label="#path4484" /> | |
<path | |
style="fill:#f3ff2a;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |
d="m 174.93298,832.89796 158.73303,-205.9047 -13.19122,142.45918 -62.72012,44.70734 1.28867,50.83283 -84.75257,33.79482 0.64221,-65.88947 z" | |
id="dublin-6W" | |
sodipodi:nodetypes="ccccccc" | |
inkscape:connector-curvature="0" | |
inkscape:label="#path4486" /> | |
<path | |
style="fill:#ff0000;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |
d="m 320.11719,769.74499 95.11719,-68.9453 -50.39063,-98.82813 -30.46875,25.39062 -14.25781,142.38281 z" | |
id="dublin-6" | |
sodipodi:nodetypes="ccccc" | |
inkscape:connector-curvature="0" | |
inkscape:label="#path4488" /> | |
<path | |
style="fill:#039323;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |
d="m 257.8125,864.47155 0,-50 158.00781,-112.49999 42.48047,62.25585 -0.0976,104.54102 -61.09931,-0.41025 -35.4429,60.41225 -103.84842,-64.29888 z" | |
id="dublin-14" | |
sodipodi:nodetypes="cccccccc" | |
inkscape:connector-curvature="0" | |
inkscape:label="#path4490" /> | |
<path | |
style="fill:#f79423;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |
d="m 654.68751,1041.8154 -101.17188,-174.60947 -155.46875,0 -67.87884,117.56961 -54.93203,56.88526 379.4515,0.1546 z" | |
id="dublin-18" | |
sodipodi:nodetypes="cccccc" | |
inkscape:connector-curvature="0" | |
inkscape:label="#path4492" /> | |
<path | |
style="fill:#ff0000;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |
d="m 173.04688,1041.4247 0.87891,-143.75002 83.88671,-33.20312 104.29688,64.25781 -32.81251,56.83594 -52.73437,55.46879 -103.51562,0.3906 z" | |
id="dublin-16" | |
sodipodi:nodetypes="ccccccc" | |
inkscape:connector-curvature="0" | |
inkscape:label="#path4494" /> | |
<path | |
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |
d="m 629.17433,537.82462 -315.625,0 -29.36974,-16.95663 -44.41494,-44.41494 -51.21532,0 0,46.52782 -178.124997,0 0,518.75003 643.749997,0 -100.93422,-174.82323 -95.24943,-0.0652 0.0743,-102.21109 64.05129,-44.72907 0,-125.82773 106.08422,-28.42518 0.97386,-27.82482 z" | |
id="path4323" | |
sodipodi:nodetypes="cccccccccccccccc" | |
inkscape:connector-curvature="0" /> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:36px;line-height:125%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start" | |
x="18.782524" | |
y="554.07288" | |
id="text2404" | |
sodipodi:linespacing="125%"><tspan | |
sodipodi:role="line" | |
id="tspan2406" | |
x="18.782524" | |
y="554.07288">20</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-weight:bold;font-size:36px" | |
x="96.12233" | |
y="661.24371" | |
id="text2408"><tspan | |
sodipodi:role="line" | |
id="tspan2410" | |
x="96.12233" | |
y="661.24371">10</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:36px;line-height:125%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="202.18835" | |
y="509.05005" | |
id="text2412" | |
sodipodi:linespacing="125%"><tspan | |
sodipodi:role="line" | |
id="tspan2414" | |
x="202.18835" | |
y="509.05005">8</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:35.99999619px;line-height:125%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="-413.39008" | |
y="659.40759" | |
id="text2416" | |
sodipodi:linespacing="125%" | |
transform="matrix(0.5735764,-0.819152,0.819152,0.5735764,0,0)"><tspan | |
sodipodi:role="line" | |
id="tspan2418" | |
x="-413.39008" | |
y="659.40759">6w</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:36px;line-height:125%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="504.91843" | |
y="577.27478" | |
id="text2420" | |
sodipodi:linespacing="125%"><tspan | |
sodipodi:role="line" | |
id="tspan2422" | |
x="504.91843" | |
y="577.27478">4</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:36px;line-height:125%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="504.91843" | |
y="918.6748" | |
id="text2424" | |
sodipodi:linespacing="125%"><tspan | |
sodipodi:role="line" | |
id="tspan2426" | |
x="504.91843" | |
y="918.6748">18</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:36px;line-height:125%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="299.41553" | |
y="825.86707" | |
id="text2428" | |
sodipodi:linespacing="125%"><tspan | |
sodipodi:role="line" | |
id="tspan2430" | |
x="299.41553" | |
y="825.86707">14</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:36px;line-height:125%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="201.0835" | |
y="923.09424" | |
id="text2432" | |
sodipodi:linespacing="125%"><tspan | |
sodipodi:role="line" | |
id="tspan2434" | |
x="201.0835" | |
y="923.09424">16</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:36px;line-height:125%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="68.500969" | |
y="871.16608" | |
id="text2436" | |
sodipodi:linespacing="125%"><tspan | |
sodipodi:role="line" | |
id="tspan2438" | |
x="68.500969" | |
y="871.16608">24</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:36px;line-height:125%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="254.66614" | |
y="654.83673" | |
id="text2440" | |
sodipodi:linespacing="125%"><tspan | |
sodipodi:role="line" | |
id="tspan2442" | |
x="254.66614" | |
y="654.83673">12</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:36px;line-height:125%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="335.9375" | |
y="735.17468" | |
id="text2444" | |
sodipodi:linespacing="125%"><tspan | |
sodipodi:role="line" | |
id="tspan2446" | |
x="335.9375" | |
y="735.17468">6</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-weight:normal;font-size:11px;font-family:Arial;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="413.0687" | |
y="580.66046" | |
id="text3417"><tspan | |
sodipodi:role="line" | |
id="tspan3419" | |
x="413.0687" | |
y="580.66046">Ballsbridge</tspan><tspan | |
sodipodi:role="line" | |
x="413.0687" | |
y="594.41046" | |
id="tspan3421">Donnybrook</tspan><tspan | |
sodipodi:role="line" | |
x="413.0687" | |
y="608.16046" | |
id="tspan3423">Irishtown</tspan><tspan | |
sodipodi:role="line" | |
x="413.0687" | |
y="621.91046" | |
id="tspan3425">Merrion</tspan><tspan | |
sodipodi:role="line" | |
x="413.0687" | |
y="635.66046" | |
id="tspan3427">Pembroke</tspan><tspan | |
sodipodi:role="line" | |
x="413.0687" | |
y="649.41046" | |
id="tspan3429">Ringsend</tspan><tspan | |
sodipodi:role="line" | |
x="413.0687" | |
y="663.16046" | |
id="tspan3431">Sandymount</tspan><tspan | |
sodipodi:role="line" | |
x="413.0687" | |
y="676.91046" | |
id="tspan3433">Baggot St. UPR.</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-weight:bold;font-size:11px;font-family:Arial;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="362.39224" | |
y="770.0719" | |
id="text3435"><tspan | |
sodipodi:role="line" | |
id="tspan3437" | |
x="362.39224" | |
y="770.0719" | |
style="font-weight:normal">Churchtown</tspan><tspan | |
sodipodi:role="line" | |
x="362.39224" | |
y="783.8219" | |
style="font-weight:normal" | |
id="tspan3439">Dundrum</tspan><tspan | |
sodipodi:role="line" | |
x="362.39224" | |
y="797.5719" | |
style="font-weight:normal" | |
id="tspan3441">Goatstown</tspan><tspan | |
sodipodi:role="line" | |
x="362.39224" | |
y="811.3219" | |
style="font-weight:normal" | |
id="tspan3445">Roebuck</tspan><tspan | |
sodipodi:role="line" | |
x="362.39224" | |
y="825.0719" | |
style="font-weight:normal" | |
id="tspan3449">Windy Arbour</tspan><tspan | |
sodipodi:role="line" | |
x="362.39224" | |
y="838.8219" | |
style="font-weight:normal" | |
id="tspan3451">Clonskeagh</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-weight:bold;font-size:11px;font-family:Arial;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="428.13107" | |
y="899.89227" | |
id="text3453"><tspan | |
sodipodi:role="line" | |
id="tspan3455" | |
x="428.13107" | |
y="899.89227" | |
style="font-weight:normal">Cabinteely</tspan><tspan | |
sodipodi:role="line" | |
x="428.13107" | |
y="913.64227" | |
style="font-weight:normal" | |
id="tspan3457">Carrickmines</tspan><tspan | |
sodipodi:role="line" | |
x="428.13107" | |
y="927.39227" | |
style="font-weight:normal" | |
id="tspan3459">Foxrock</tspan><tspan | |
sodipodi:role="line" | |
x="428.13107" | |
y="941.14227" | |
style="font-weight:normal" | |
id="tspan3461">Kilternan</tspan><tspan | |
sodipodi:role="line" | |
x="428.13107" | |
y="954.89227" | |
style="font-weight:normal" | |
id="tspan3463">Sandyford</tspan><tspan | |
sodipodi:role="line" | |
x="428.13107" | |
y="968.64227" | |
style="font-weight:normal" | |
id="tspan3465">Ticknock</tspan><tspan | |
sodipodi:role="line" | |
x="428.13107" | |
y="982.39227" | |
style="font-weight:normal" | |
id="tspan3467">Ballyedmonduff</tspan><tspan | |
sodipodi:role="line" | |
x="428.13107" | |
y="996.14227" | |
style="font-weight:normal" | |
id="tspan3469">Stepaside</tspan><tspan | |
sodipodi:role="line" | |
x="428.13107" | |
y="1009.8923" | |
style="font-weight:normal" | |
id="tspan3471">Leopardstown</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-weight:bold;font-size:11px;font-family:Arial;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="209.92233" | |
y="941.87677" | |
id="text3473"><tspan | |
sodipodi:role="line" | |
id="tspan3475" | |
x="209.92233" | |
y="941.87677" | |
style="font-weight:normal">Ballinteer</tspan><tspan | |
sodipodi:role="line" | |
x="209.92233" | |
y="955.62677" | |
style="font-weight:normal" | |
id="tspan3477">Kilmashogue</tspan><tspan | |
sodipodi:role="line" | |
x="209.92233" | |
y="969.37677" | |
style="font-weight:normal" | |
id="tspan3479">Knoclyon</tspan><tspan | |
sodipodi:role="line" | |
x="209.92233" | |
y="983.12677" | |
style="font-weight:normal" | |
id="tspan3481">Rockbrook</tspan><tspan | |
sodipodi:role="line" | |
x="209.92233" | |
y="996.87677" | |
style="font-weight:normal" | |
id="tspan3483">Whitechurch</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-weight:bold;font-size:11px;font-family:Arial;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="67.396118" | |
y="886.91022" | |
id="text3485"><tspan | |
sodipodi:role="line" | |
id="tspan3487" | |
x="67.396118" | |
y="886.91022" | |
style="font-weight:normal">Firhouse</tspan><tspan | |
sodipodi:role="line" | |
x="67.396118" | |
y="900.66022" | |
style="font-weight:normal" | |
id="tspan3489">Jobstown</tspan><tspan | |
sodipodi:role="line" | |
x="67.396118" | |
y="914.41022" | |
style="font-weight:normal" | |
id="tspan3491">Kilnamanagh</tspan><tspan | |
sodipodi:role="line" | |
x="67.396118" | |
y="928.16022" | |
style="font-weight:normal" | |
id="tspan3493">Oldbawn</tspan><tspan | |
sodipodi:role="line" | |
x="67.396118" | |
y="941.91022" | |
style="font-weight:normal" | |
id="tspan3495">Tallaght</tspan><tspan | |
sodipodi:role="line" | |
x="67.396118" | |
y="955.66022" | |
style="font-weight:normal" | |
id="tspan3497" /></text> | |
<text | |
xml:space="preserve" | |
style="font-weight:normal;font-size:36px" | |
x="26.516504" | |
y="692.17969" | |
id="text3499"><tspan | |
sodipodi:role="line" | |
id="tspan3501" | |
x="26.516504" | |
y="692.17969" | |
style="font-weight:bold">22</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-weight:bold;font-size:11px;font-family:Arial;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="26.516504" | |
y="713.17188" | |
id="text3503"><tspan | |
sodipodi:role="line" | |
id="tspan3505" | |
x="26.516504" | |
y="713.17188" | |
style="font-weight:normal">Bawnogue</tspan><tspan | |
sodipodi:role="line" | |
x="26.516504" | |
y="726.92188" | |
style="font-weight:normal" | |
id="tspan3507">Clondalkin</tspan><tspan | |
sodipodi:role="line" | |
x="26.516504" | |
y="740.67188" | |
style="font-weight:normal" | |
id="tspan3509">Neilstown</tspan><tspan | |
sodipodi:role="line" | |
x="26.516504" | |
y="754.42188" | |
style="font-weight:normal" | |
id="tspan3511" /></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-weight:bold;font-size:11px;font-family:Arial;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="100.54175" | |
y="618.15442" | |
id="text3513"><tspan | |
sodipodi:role="line" | |
id="tspan3515" | |
x="100.54175" | |
y="618.15442" | |
style="font-weight:normal">Ballyfermot</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-weight:bold;font-size:11px;font-family:Arial;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="65.186409" | |
y="555.17773" | |
id="text3517"><tspan | |
sodipodi:role="line" | |
id="tspan3519" | |
x="65.186409" | |
y="555.17773" | |
style="font-weight:normal">Chapelizod</tspan><tspan | |
sodipodi:role="line" | |
x="65.186409" | |
y="568.92773" | |
style="font-weight:normal" | |
id="tspan3521">Palmerstown</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-weight:bold;font-size:11px;font-family:Arial;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="206.33156" | |
y="519.26996" | |
id="text3523"><tspan | |
sodipodi:role="line" | |
id="tspan3525" | |
x="206.33156" | |
y="519.26996" | |
style="font-weight:normal">Dolphins Barn</tspan><tspan | |
sodipodi:role="line" | |
x="206.33156" | |
y="533.01996" | |
style="font-weight:normal" | |
id="tspan3527">Inchicore</tspan><tspan | |
sodipodi:role="line" | |
x="206.33156" | |
y="546.76996" | |
style="font-weight:normal" | |
id="tspan3529">Island Bridge</tspan><tspan | |
sodipodi:role="line" | |
x="206.33156" | |
y="560.51996" | |
style="font-weight:normal" | |
id="tspan3531">Kilmainham</tspan><tspan | |
sodipodi:role="line" | |
x="206.33156" | |
y="574.26996" | |
style="font-weight:normal" | |
id="tspan3533"> Merchants Qy.</tspan><tspan | |
sodipodi:role="line" | |
x="206.33156" | |
y="588.01996" | |
style="font-weight:normal" | |
id="tspan3535"> Portobello</tspan><tspan | |
sodipodi:role="line" | |
x="206.33156" | |
y="601.76996" | |
style="font-weight:normal" | |
id="tspan3537"> S.C.R.</tspan><tspan | |
sodipodi:role="line" | |
x="206.33156" | |
y="615.51996" | |
style="font-weight:normal" | |
id="tspan3539"> The Coombe</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-weight:bold;font-size:11px;font-family:Arial;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="339.19028" | |
y="644.67096" | |
id="text3541"><tspan | |
sodipodi:role="line" | |
id="tspan3543" | |
x="339.19028" | |
y="644.67096" | |
style="font-weight:normal">Dartry</tspan><tspan | |
sodipodi:role="line" | |
x="339.19028" | |
y="658.42096" | |
style="font-weight:normal" | |
id="tspan3547">Ranelagh</tspan><tspan | |
sodipodi:role="line" | |
x="339.19028" | |
y="672.17096" | |
style="font-weight:normal" | |
id="tspan3549">Rathmines</tspan><tspan | |
sodipodi:role="line" | |
x="339.19028" | |
y="685.92096" | |
style="font-weight:normal" | |
id="tspan3551">Rathgar</tspan><tspan | |
sodipodi:role="line" | |
x="339.19028" | |
y="699.67096" | |
style="font-weight:normal" | |
id="tspan3553">Sandford</tspan><tspan | |
sodipodi:role="line" | |
x="339.19028" | |
y="713.42096" | |
style="font-weight:normal" | |
id="tspan3545" /></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-weight:bold;font-size:11px;font-family:Arial;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="185.06311" | |
y="673.39716" | |
id="text3555"><tspan | |
sodipodi:role="line" | |
id="tspan3557" | |
x="185.06311" | |
y="673.39716" | |
style="font-weight:normal">Bluebell</tspan><tspan | |
sodipodi:role="line" | |
x="185.06311" | |
y="687.14716" | |
style="font-weight:normal" | |
id="tspan3561">Crumlin</tspan><tspan | |
sodipodi:role="line" | |
x="185.06311" | |
y="700.89716" | |
style="font-weight:normal" | |
id="tspan3563">Drimnagh</tspan><tspan | |
sodipodi:role="line" | |
x="185.06311" | |
y="714.64716" | |
style="font-weight:normal" | |
id="tspan3565">Walkinstown</tspan></text> | |
<text | |
xml:space="preserve" | |
style="font-style:normal;font-weight:bold;font-size:10.99999905px;font-family:Arial;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | |
x="-583.48975" | |
y="635.23395" | |
id="text3567" | |
transform="matrix(0.5735764,-0.819152,0.819152,0.5735764,0,0)"><tspan | |
sodipodi:role="line" | |
id="tspan3569" | |
x="-583.48975" | |
y="635.23395" | |
style="font-weight:normal">Domvilles/Wellington</tspan><tspan | |
sodipodi:role="line" | |
x="-583.48975" | |
y="648.98395" | |
id="tspan3571" | |
style="font-weight:normal">Rossmores, Glendowns</tspan><tspan | |
sodipodi:role="line" | |
x="-583.48975" | |
y="662.73395" | |
id="tspan3573" | |
style="font-weight:normal">Kimmage Rd. LWR., Wainsfort</tspan><tspan | |
sodipodi:role="line" | |
x="-583.48975" | |
y="676.48395" | |
id="tspan3575" | |
style="font-weight:normal">Harolds Cross Rd., Terenure Rd.</tspan></text> | |
</g> | |
</svg> |
<div id="tabular"> | |
<div id="tableft"> | |
<table> | |
<thead> | |
<tr> | |
<th class="col1" width="90">County/City</th> | |
<th width="55">€/sq.ft.</th> | |
<th width="55">YoY chg</th> | |
</tr> | |
</thead> | |
<tbody/> | |
</table> | |
</div> | |
<div id="tabright"> | |
<table> | |
<thead> | |
<tr> | |
<th class="col1" width="90">Post code</th> | |
<th width="55">€/sq.ft.</th> | |
<th width="55">YoY chg</th> | |
</tr> | |
</thead> | |
<tbody/> | |
</table> | |
<br><br><br> | |
<table> | |
<thead> | |
<tr> | |
<th class="col1" width="90">Region</th> | |
<th width="55">€/sq.ft.</th> | |
<th width="55">YoY chg</th> | |
</tr> | |
</thead> | |
<tbody/> | |
</table> | |
</div> | |
</div> |
/* main layouts */ | |
body { | |
font: 12px sans-serif; | |
width: 1000; | |
} | |
#chart { | |
width: 60%; | |
float: left; | |
} | |
#ctrls { | |
width: 40%; | |
float: left; | |
} | |
#period { | |
font-size: 36px; | |
} | |
#tableft, #tabright { | |
width: 260px; | |
float:left;" | |
} | |
/* data table */ | |
#tabular { | |
width: 540; | |
margin:20px auto; | |
font-size: 12px; | |
} | |
#tabular table { | |
border-collapse: collapse; | |
table-layout:fixed; | |
} | |
#tabular td { | |
border-bottom: 1px solid lightgray; | |
} | |
#tabular th { | |
border-bottom: 2px solid lightgray; | |
} | |
#tabular td, th { | |
text-align: right; | |
} | |
#tabular td.col1, th.col1 { | |
text-align: left; | |
} | |
#tabular td.neg { | |
color: red; | |
} | |
#tabular td.pos { | |
color: green; | |
} | |
#tabular table tr:nth-child(odd) td{ | |
background-color: #f0f0f0; | |
} | |
/* SVG transforms */ | |
svg { | |
width: 640px; | |
height: 640px; | |
} | |
#layer1 { | |
display: inline; | |
transform: scale(1) translate(0px,1200px); | |
} | |
/* irl map defaults */ | |
.region { | |
fill: #008000; | |
stroke: #000000; | |
stroke-width: 2; | |
} | |
.region:hover { | |
fill: green !important; | |
} | |
.ni { | |
fill: #a0a0a0; | |
} | |
/* tooltip */ | |
.d3-tip { | |
line-height: 1; | |
padding: 12px; | |
background: rgba(0, 0, 0, 0.8); | |
color: #fff; | |
border-radius: 2px; | |
} | |
.d3-tip .h { | |
float: left; | |
white-space: nowrap; | |
} | |
.d3-tip .v { | |
float: left; | |
font-weight: bold; | |
} | |
.d3-tip .vm { | |
font-weight: bold; | |
color: #ff8080; | |
} | |
.d3-tip .vp { | |
font-weight: bold; | |
color: lightgreen; | |
} | |
/* Creates a small triangle extender for the tooltip */ | |
.d3-tip:after { | |
box-sizing: border-box; | |
display: inline; | |
font-size: 10px; | |
width: 100%; | |
line-height: 1; | |
color: rgba(0, 0, 0, 0.8); | |
content: "\25BC"; | |
position: absolute; | |
text-align: center; | |
} | |
/* Style northward tooltips differently */ | |
.d3-tip.n:after { | |
margin: -1px 0 0 0; | |
top: 100%; | |
left: 0; | |
} |
var | |
isFirefox = (typeof InstallTrigger !== 'undefined'), | |
tip = d3.tip().attr('class','d3-tip').offset(tipOffset).html(tipHtml), | |
tipData = null, savedChoice = -1, playing = false, mapSelector = "path.region", | |
elemMap, elemTable, xdata, ydata, mapData, tblData, colNames, rowName, qDub, qOth, | |
selectedPeriod, timer; | |
loadData(); | |
/** | |
* Load a number of resources in parallel. | |
*/ | |
function loadData() { | |
readme(document.getElementById("readme")); // async load readme | |
var loaded = new Object(), remaining = 3; | |
var load = function(d3Function, urlToLoad, resultName) { | |
d3Function(urlToLoad, function(error,d) { | |
if (error) throw error; | |
loaded[resultName] = d; | |
if (!--remaining) { | |
loadChart(loaded); | |
} | |
}); | |
}; | |
load(d3.text, "irlmap.svg", "map"); | |
load(d3.text, "ireland_table.txt", "table"); | |
load(d3.text, "sortedregion.csv", "regions"); | |
} | |
/** | |
* Munge data and views after loading. | |
* @param loaded async loaded data | |
*/ | |
function loadChart(loaded) { | |
// Munge loaded data into usable form | |
mungeData(); | |
// Create SVG map elements and data table | |
(elemMap = document.createElement("div")).innerHTML = loaded.map; | |
(elemTable = document.createElement("div")).innerHTML = loaded.table; | |
// Create empty rows in the table view. | |
var regionRows = d3.csv.parseRows(loaded.regions) | |
var rows = d3.select(elemTable).selectAll("tbody").data(regionRows) | |
.selectAll("tr").data(function(d) { return d;}) | |
.enter().append("tr").attr("id", function(d,i) {return d;}); | |
// 3 columns per row | |
rows.insert("td").classed("col1", true); | |
rows.insert("td"); | |
rows.insert("td"); | |
// munge data for map and set up tooltip | |
mapData = d3.select(elemMap).selectAll(mapSelector)[0].map(function(d,j) { | |
var id = d.getAttribute("id"); | |
return (id in xdata)? xdata[id] : {id: id, missing : true}; | |
}); | |
d3.select(elemMap).select("svg g").call(tip); | |
d3.select(elemMap).selectAll(mapSelector).data(mapData) | |
.on('mouseover', tip.show) | |
.on('mouseout', tip.hide); | |
// set up slider based on number of periods | |
var last = (typeof parseQueryString().p == 'undefined')? | |
colNames.length - 1 : parseQueryString().p; | |
d3.select("#slider").attr("max", colNames.length - 1).property("value", last); | |
selectedPeriod = colNames[last]; | |
d3.select("#period").text(selectedPeriod); | |
// default to table | |
var ct = parseParamWithDefault('d',['table','map']); | |
document.buttons.charttype[ct].checked = true; | |
chartType(ct); | |
} | |
function sliderInput() { | |
selectedPeriod = colNames[d3.select("#slider").property("value")]; | |
d3.select("#period").text(selectedPeriod); | |
displayChart(); | |
} | |
function play() { | |
if (playing) { | |
playing = false; | |
d3.select("#play").text("Play"); | |
clearInterval(timer); | |
} else { | |
playing = true; | |
d3.select("#play").text("Stop"); | |
timer = setInterval(playStep, 750); | |
} | |
} | |
function playStep() { | |
selectedPeriod = colNames[d3.select("#slider").property("value")]; | |
var slider = d3.select("#slider"); | |
var period = +slider.property("value"); | |
period = (period < (colNames.length - 1))? period + 1 : 0; | |
slider.property("value", period); | |
sliderInput(); | |
} | |
function chartType(choice) { | |
if (choice == savedChoice) { | |
return; | |
} | |
savedChoice = choice; | |
d3.selectAll("#chart>*").remove(); | |
var choices = [elemTable, elemMap] | |
d3.select("#chart").append(function(d) {return choices[choice];}); | |
displayChart(); | |
} | |
function displayChart() { | |
switch (savedChoice) { | |
case 0: displayTable(); break; | |
case 1: displayMap(); break; | |
} | |
} | |
function displayMap() { | |
d3.select(elemMap).selectAll(mapSelector).data(mapData) | |
.attr("style", function(d) { | |
return d.missing? "fill:#a0a0a0;" : d.quantize(d[selectedPeriod]); | |
}); | |
document.querySelector(".d3-tip").innerHTML = tipHtml(tipData); | |
displayLegend(); | |
} | |
function displayLegend() { | |
var numLeg = 4; | |
var svg = d3.select(elemMap).select("svg"); | |
var qclass = ".legendo", legx = 2000, legt = "Ireland"; | |
[qOth, qDub].forEach(function(quant) { | |
var dom = quant.domain(), step = ((dom[1]-dom[0])/numLeg)-0.1; | |
var legData = d3.range(dom[0],dom[1], step); | |
legData.push(legt); | |
legData.reverse(); | |
var legend = svg.selectAll(".legend").data(legData) | |
.enter().append("g").attr("class", qclass).attr("transform", | |
function(d, i) { | |
return "translate(5," + (i * 40 + 400) + ")"; | |
}); | |
var sq = 36; | |
legend.append("rect").attr("x", legx).attr("width", sq).attr( | |
"height", sq).attr("style", function(d,i) {return i>0? quant(d) : "fill:#ffffff;"}); | |
legend.append("text").attr("x", legx - 6).attr("y", 9).attr("dy", | |
"0.5em").style({"text-anchor": "end", "font-size": "36px"}).text(function(d,i) { | |
return i>0?'€'+d3.round(d,0) : d; | |
}); | |
qclass = ".legendd"; | |
legx = 2200; | |
legt = "Dublin"; | |
}); | |
} | |
function displayTable() { | |
d3.select(elemTable).selectAll("tr[id]").each(function(d, i){ | |
var yoy = ydata[d][selectedPeriod]; | |
d3.selectAll(this.childNodes) | |
.text(function(d, i) { | |
switch (i) { | |
case 0: return d; | |
case 1: return xdata[d][selectedPeriod]; | |
case 2: return yoy; | |
} | |
}) | |
.classed("neg",function(d, i) {return i == 2 && yoy.startsWith('-');}) | |
.classed("pos",function(d, i) {return i == 2 && !yoy.startsWith('-');}); | |
}); | |
} | |
/** | |
* Html content for tooltip | |
* @param d data associated with moused-over svg element | |
* @returns html string | |
*/ | |
function tipHtml(d) { | |
if (typeof(d) == 'undefined' || d === null) return; | |
tipData = d; // cache | |
if (d.missing) return d.id; // name only | |
var val = d[selectedPeriod]; | |
var yoy = ydata[d.id][selectedPeriod]; | |
var cls = yoy.charAt(0) != '-' ? "vp" : "vm"; // css for +/- colour | |
var s = "<div><div class='h'>#per#: <br>€/sq.ft: <br>YoY: </div><div " + | |
"class='v'>#id#<br>#val#<br><span class='#cls#'>#yoy#</span></div>"; | |
return s.replace("#per#", selectedPeriod).replace("#id#", d.id) | |
.replace("#val#", val).replace("#cls#", cls).replace("#yoy#", yoy); | |
} | |
/** | |
* Workaround for a bug in Firefox whereby it ignores SVG scaling. | |
* Scaling adjustment is calculated and returned as an offset for | |
* displaying the d3 tooltip. | |
* @returns {Array} of vertical and horizontal offset | |
*/ | |
function tipOffset() { | |
if (!isFirefox) return [0, 0]; | |
var tbbox = this.getBBox(); | |
var matrix = this.getScreenCTM(); | |
var scale = 1.0; // TODO: hardcoded, must match CSS | |
var pt = { | |
// only works for default 'north' tooltip direction | |
x: tbbox.x + (tbbox.width / 2) + matrix.e, | |
y: tbbox.y + matrix.f | |
}; | |
return [pt.y * (scale - 1), pt.x * (scale - 1)]; | |
} | |
function mungeData() { | |
var sheet = extractGistData(gistData["MyhomeData.csv"].content); | |
colNames = sheet.colNames.filter(function (d) { | |
return d.indexOf(" Q") > -1; | |
}); | |
rowName = sheet.rowName; | |
xdata = new Object(); | |
ydata = new Object(); | |
var yoy = d3.format("+.0f"); // formatter for yoy | |
var allValuesDub = [], allValuesOth = []; | |
sheet.data.forEach(function(d) { | |
var arr = d[rowName].startsWith("dublin-")? allValuesDub : allValuesOth; | |
for (i = 0; i < colNames.length; i++) { | |
arr.push(+d[colNames[i]]); | |
} | |
}); | |
qDub = getQuantizeFunc(d3.min(allValuesDub),d3.max(allValuesDub), false); | |
qOth = getQuantizeFunc(d3.min(allValuesOth),d3.max(allValuesOth), true); | |
sheet.data.forEach(function(d) { | |
var id = d[rowName]; | |
xdata[id]= {id : id, quantize : id.startsWith("dublin-")? qDub : qOth, missing: false}; | |
ydata[id]= {id : id}; | |
for (i = 0; i < colNames.length; i++) { | |
var c = colNames[i]; | |
xdata[id][c] = d[c]; | |
// calculate YoY for years after first | |
ydata[id][c] = (i < 4) ? "" : yoy(d[c] / d[colNames[i - 4]] * 100 - 100) + "%"; | |
} | |
}); | |
} | |
/** | |
* Quantize given range into white-red or white-blue color gradient | |
* @param min range minimum | |
* @param max range maximum | |
* @param redblue true/false for blue or red gradient | |
* @returns color gradient quantize function | |
*/ | |
function getQuantizeFunc(min, max, redblue) { | |
var hex1 = d3.format("0x"); | |
var hex = function(n) { | |
var s = hex1(255-n); | |
return s.length == 1? "0" + s : s; | |
}; | |
return d3.scale.quantize() | |
.domain([min, max]) | |
.range(d3.range(255).map(function(i) { | |
return redblue? "fill:#ff" + hex(i) + hex(i)+";" : | |
"fill:#" + hex(i) + hex(i)+"ff;"; | |
})); | |
} | |
carlow,cavan,clare,cork,cork-city,cork-west,donegal,dublin,galway,galway-city,kerry,kildare,kilkenny,laois,leitrim,limerick,limerick-city,longford,louth,mayo,meath,monaghan,offaly,roscommon,sligo,tipperary,waterford,westmeath,wexford,wicklow | |
dublin-1,dublin-2,dublin-3,dublin-4,dublin-5,dublin-6,dublin-6W,dublin-7,dublin-8,dublin-9,dublin-10,dublin-11,dublin-12,dublin-13,dublin-14,dublin-15,dublin-16,dublin-17,dublin-18,dublin-20,dublin-22,dublin-24 | |
dublin-county,dublin-north,dublin-south,dublin-west |
What's up with that grey bit on the auld Ireland map?
That's the bad weather area of the country. Also not covered by myhome.ie.
Looking good so far. I mightn't be able to contribute anything of value but I'll enjoy watching as it comes together.
Project Diary
Requirement
Planning to do an Ireland chloropleth with historical asking prices. Slider controller allows scrolling through historical data by quarter, and Play button does it automatically.
Milestones