├── .gitignore ├── .block ├── .DS_Store ├── lib ├── .DS_Store ├── Thumbs.db ├── sketch.png ├── ons_logo.png ├── sketch.png.zip ├── chosen-sprite.png ├── chosen-sprite-sm.png ├── chosen-sprite@2x.png ├── icons--chevron-down.png ├── chosen-sprite-sm-white.png ├── caret-down-solid.svg ├── queue.js ├── icons--chevron-down.svg ├── x_close.svg ├── x_close_slate.svg ├── modernizr.svg.min.js ├── tabstyles.css ├── swoopy-drag.js ├── tabs.css ├── chosen.order.jquery.min.js ├── jquery.ui.labeledslider.js ├── swoopy-drag-d3v4.js ├── globalStyle2.css ├── topojson.js ├── globalStyle.css ├── d3-jetpack.js ├── footer.js ├── saveSvgAsPng.js ├── style-chosen.css └── styles.css ├── multiple-beeswarms ├── .DS_Store ├── data.csv ├── css │ ├── Thumbs.db │ ├── chosen-sprite.png │ ├── chosen-sprite@2x.png │ ├── icons--chevron-down.svg │ ├── x_close.svg │ └── x_close_slate.svg ├── datadownload.csv ├── images │ ├── Thumbs.db │ ├── chosen-sprite.png │ ├── chosen-sprite@2x.png │ ├── icons--chevron-down.svg │ ├── x_close.svg │ └── x_close_slate.svg └── config.json ├── population-profiles ├── image.png ├── images │ ├── Thumbs.db │ ├── chosen-sprite.png │ ├── chosen-sprite@2x.png │ ├── icons--chevron-down.svg │ ├── x_close.svg │ └── x_close_slate.svg ├── css │ ├── chosen-sprite.png │ └── chosen-sprite@2x.png ├── Socio-demographic_indicators_.xlsx ├── config.json ├── deprivation.csv ├── age.csv └── employment.csv ├── multiple-beeswarms-alternative ├── .DS_Store ├── Thumbs.db ├── data.xlsx ├── image.png ├── images │ ├── Thumbs.db │ ├── chosen-sprite.png │ ├── chosen-sprite@2x.png │ ├── icons--chevron-down.svg │ ├── x_close.svg │ └── x_close_slate.svg ├── css │ ├── chosen-sprite.png │ └── chosen-sprite@2x.png ├── config.json ├── datadownload.csv └── menTidy.csv ├── .github └── CODEOWNERS ├── plain-beeswarm ├── config.json ├── data.csv └── index.html ├── accurate-plain-beeswarm ├── config.json ├── data.csv └── index.html ├── group-beeswarm ├── config.json ├── data.csv └── index.html └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | *.DS_Store 3 | -------------------------------------------------------------------------------- /.block: -------------------------------------------------------------------------------- 1 | license: gpl-3.0 2 | height: 200 3 | -------------------------------------------------------------------------------- /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/.DS_Store -------------------------------------------------------------------------------- /lib/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/lib/.DS_Store -------------------------------------------------------------------------------- /lib/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/lib/Thumbs.db -------------------------------------------------------------------------------- /lib/sketch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/lib/sketch.png -------------------------------------------------------------------------------- /lib/ons_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/lib/ons_logo.png -------------------------------------------------------------------------------- /lib/sketch.png.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/lib/sketch.png.zip -------------------------------------------------------------------------------- /lib/chosen-sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/lib/chosen-sprite.png -------------------------------------------------------------------------------- /lib/chosen-sprite-sm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/lib/chosen-sprite-sm.png -------------------------------------------------------------------------------- /lib/chosen-sprite@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/lib/chosen-sprite@2x.png -------------------------------------------------------------------------------- /lib/icons--chevron-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/lib/icons--chevron-down.png -------------------------------------------------------------------------------- /multiple-beeswarms/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/multiple-beeswarms/.DS_Store -------------------------------------------------------------------------------- /multiple-beeswarms/data.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/multiple-beeswarms/data.csv -------------------------------------------------------------------------------- /population-profiles/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/population-profiles/image.png -------------------------------------------------------------------------------- /lib/chosen-sprite-sm-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/lib/chosen-sprite-sm-white.png -------------------------------------------------------------------------------- /multiple-beeswarms/css/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/multiple-beeswarms/css/Thumbs.db -------------------------------------------------------------------------------- /multiple-beeswarms/datadownload.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/multiple-beeswarms/datadownload.csv -------------------------------------------------------------------------------- /multiple-beeswarms/images/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/multiple-beeswarms/images/Thumbs.db -------------------------------------------------------------------------------- /population-profiles/images/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/population-profiles/images/Thumbs.db -------------------------------------------------------------------------------- /multiple-beeswarms-alternative/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/multiple-beeswarms-alternative/.DS_Store -------------------------------------------------------------------------------- /multiple-beeswarms-alternative/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/multiple-beeswarms-alternative/Thumbs.db -------------------------------------------------------------------------------- /multiple-beeswarms-alternative/data.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/multiple-beeswarms-alternative/data.xlsx -------------------------------------------------------------------------------- /multiple-beeswarms-alternative/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/multiple-beeswarms-alternative/image.png -------------------------------------------------------------------------------- /multiple-beeswarms/css/chosen-sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/multiple-beeswarms/css/chosen-sprite.png -------------------------------------------------------------------------------- /population-profiles/css/chosen-sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/population-profiles/css/chosen-sprite.png -------------------------------------------------------------------------------- /multiple-beeswarms/css/chosen-sprite@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/multiple-beeswarms/css/chosen-sprite@2x.png -------------------------------------------------------------------------------- /multiple-beeswarms/images/chosen-sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/multiple-beeswarms/images/chosen-sprite.png -------------------------------------------------------------------------------- /population-profiles/css/chosen-sprite@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/population-profiles/css/chosen-sprite@2x.png -------------------------------------------------------------------------------- /population-profiles/images/chosen-sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/population-profiles/images/chosen-sprite.png -------------------------------------------------------------------------------- /multiple-beeswarms/images/chosen-sprite@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/multiple-beeswarms/images/chosen-sprite@2x.png -------------------------------------------------------------------------------- /multiple-beeswarms-alternative/images/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/multiple-beeswarms-alternative/images/Thumbs.db -------------------------------------------------------------------------------- /population-profiles/images/chosen-sprite@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/population-profiles/images/chosen-sprite@2x.png -------------------------------------------------------------------------------- /multiple-beeswarms-alternative/css/chosen-sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/multiple-beeswarms-alternative/css/chosen-sprite.png -------------------------------------------------------------------------------- /population-profiles/Socio-demographic_indicators_.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/population-profiles/Socio-demographic_indicators_.xlsx -------------------------------------------------------------------------------- /multiple-beeswarms-alternative/css/chosen-sprite@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/multiple-beeswarms-alternative/css/chosen-sprite@2x.png -------------------------------------------------------------------------------- /multiple-beeswarms-alternative/images/chosen-sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/multiple-beeswarms-alternative/images/chosen-sprite.png -------------------------------------------------------------------------------- /multiple-beeswarms-alternative/images/chosen-sprite@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ONSdigital/beeswarm/HEAD/multiple-beeswarms-alternative/images/chosen-sprite@2x.png -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | # https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners#codeowners-syntax 2 | 3 | - @ONSdigital/dp-data-visualisation 4 | -------------------------------------------------------------------------------- /plain-beeswarm/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "essential" : { 3 | "graphic_data_url": "data.csv", 4 | "colour_palette": "#008080", 5 | "sourceText":["Statistics"], 6 | "xAxisLabel":"% hrte", 7 | "xAxisScale":[0,100], 8 | "svgheight":200 9 | }, 10 | "optional" : { 11 | "mobileBreakpoint" : 610, 12 | "x_num_ticks_sm_md" : [6,10] 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /accurate-plain-beeswarm/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "essential" : { 3 | "graphic_data_url": "data.csv", 4 | "colour_palette": "#008080", 5 | "sourceText":["Statistics"], 6 | "xAxisLabel":"% hrte", 7 | "xAxisScale":[0,100], 8 | "svgheight":200 9 | }, 10 | "optional" : { 11 | "mobileBreakpoint" : 610, 12 | "x_num_ticks_sm_md" : [6,10] 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /group-beeswarm/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "essential" : { 3 | "graphic_data_url": "data.csv", 4 | "colour_palette": ["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f"], 5 | "sourceText":["Statistics"], 6 | "xAxisLabel":"% hrte", 7 | "xAxisScale":[0,100], 8 | "svgheight":200 9 | }, 10 | "optional" : { 11 | "mobileBreakpoint" : 610, 12 | "x_num_ticks_sm_md" : [6,10] 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /multiple-beeswarms-alternative/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "essential" : { 3 | "graphic_data_url": "data.csv", 4 | "colour_palette": ["#206095","#339a59"], 5 | "sourceText":["Public Health England - National Cancer Registration and Analysis Service, Office for National Statistics"], 6 | "xAxisLabel":"1-year survival estimate (%)", 7 | "xAxisScale":"auto", 8 | "heightperstrip":50, 9 | "dotradius":3 10 | }, 11 | "optional" : { 12 | "mobileBreakpoint" : 610, 13 | "x_num_ticks_sm_md" : [6,10] 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /lib/caret-down-solid.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 10 | 11 | -------------------------------------------------------------------------------- /lib/queue.js: -------------------------------------------------------------------------------- 1 | !function(){function n(n){function e(){for(;i=ap;){var u=a++,e=c[u],o=t.call(e,1);o.push(l(u)),++p,e[0].apply(null,o)}}function l(n){return function(u,t){--p,null==s&&(null!=u?(s=u,a=d=0/0,o()):(c[n]=t,--d?i||e():o()))}}function o(){null!=s?m(s):f?m(s,c):m.apply(null,[s].concat(c))}var r,i,f,c=[],a=0,p=0,d=0,s=null,m=u;return n||(n=1/0),r={defer:function(){return s||(c.push(arguments),++d,e()),r},await:function(n){return m=n,f=!1,d||o(),r},awaitAll:function(n){return m=n,f=!0,d||o(),r}}}function u(){}var t=[].slice;n.version="1.0.7","function"==typeof define&&define.amd?define(function(){return n}):"object"==typeof module&&module.exports?module.exports=n:this.queue=n}(); -------------------------------------------------------------------------------- /multiple-beeswarms/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "essential" : { 3 | "graphic_data_url": "data.csv", 4 | "colour_palette_original": ["#1E5C92","#CD842F","#5B0F44","#039E82","#B1295E","#5999D1","#3A1E82","#BE3E24","#1E4943"], 5 | "colour_palette": ["#206095", "#118C7B", "#003C57", "#A8BD3A", "#27A0CC","#871A5B","#F66068","#746CB1","#22D0B6"], 6 | "sourceText":["Office for National Statistics"], 7 | "xAxisLabel":"", 8 | "xAxisScale":[0,100000], 9 | "heightperstrip":55, 10 | "dotradius":3 11 | }, 12 | "optional" : { 13 | "mobileBreakpoint" : 610, 14 | "x_num_ticks_sm_md" : [6,10] 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /lib/icons--chevron-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | icons--chevron-down-thin 11 | Created with Sketch. 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /lib/x_close.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /lib/x_close_slate.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /multiple-beeswarms/css/icons--chevron-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | icons--chevron-down-thin 11 | Created with Sketch. 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /multiple-beeswarms/images/icons--chevron-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | icons--chevron-down-thin 11 | Created with Sketch. 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /multiple-beeswarms/css/x_close.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /multiple-beeswarms-alternative/images/icons--chevron-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | icons--chevron-down-thin 11 | Created with Sketch. 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /multiple-beeswarms/images/x_close.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /multiple-beeswarms/css/x_close_slate.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /multiple-beeswarms/images/x_close_slate.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /population-profiles/images/icons--chevron-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | icons--chevron-down-thin 11 | Created with Sketch. 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /multiple-beeswarms-alternative/images/x_close.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /population-profiles/images/x_close.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /multiple-beeswarms-alternative/images/x_close_slate.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /population-profiles/images/x_close_slate.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /lib/modernizr.svg.min.js: -------------------------------------------------------------------------------- 1 | /* Modernizr 2.7.1 (Custom Build) | MIT & BSD 2 | * Build: http://modernizr.com/download/#-svg 3 | */ 4 | ;window.Modernizr=function(a,b,c){function u(a){i.cssText=a}function v(a,b){return u(prefixes.join(a+";")+(b||""))}function w(a,b){return typeof a===b}function x(a,b){return!!~(""+a).indexOf(b)}function y(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:w(f,"function")?f.bind(d||b):f}return!1}var d="2.7.1",e={},f=b.documentElement,g="modernizr",h=b.createElement(g),i=h.style,j,k={}.toString,l={svg:"http://www.w3.org/2000/svg"},m={},n={},o={},p=[],q=p.slice,r,s={}.hasOwnProperty,t;!w(s,"undefined")&&!w(s.call,"undefined")?t=function(a,b){return s.call(a,b)}:t=function(a,b){return b in a&&w(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=q.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(q.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(q.call(arguments)))};return e}),m.svg=function(){return!!b.createElementNS&&!!b.createElementNS(l.svg,"svg").createSVGRect};for(var z in m)t(m,z)&&(r=z.toLowerCase(),e[r]=m[z](),p.push((e[r]?"":"no-")+r));return e.addTest=function(a,b){if(typeof a=="object")for(var d in a)t(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof enableClasses!="undefined"&&enableClasses&&(f.className+=" "+(b?"":"no-")+a),e[a]=b}return e},u(""),h=j=null,e._version=d,e}(this,this.document); -------------------------------------------------------------------------------- /population-profiles/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "essential": { 3 | "graphic_data_url": ["age", "employment", "ethnicity", "industry", "population", "deprivation"], 4 | "colour_palette": "#206095", 5 | "sourceText": ["Office for National Statistics"], 6 | "xAxisScale": "auto", 7 | "heightperstrip": 150, 8 | "dotradius": 2.5, 9 | "margins": { 10 | "top": 15, 11 | "right": 20, 12 | "bottom": 22, 13 | "left": 20 14 | }, 15 | "infoColumnWidth": 300, 16 | "setup": [{ 17 | "csv": "age", 18 | "label": "Age", 19 | "dropdown": true, 20 | "unit": { 21 | "Median age": { 22 | "unit": "years", 23 | "time": 2020 24 | }, 25 | "Population density": { 26 | "unit": "people per square km", 27 | "time": 2020 28 | } 29 | }, 30 | "average": 0 31 | }, 32 | { 33 | "csv": "employment", 34 | "label": "Employment", 35 | "dropdown": true, 36 | "unit": "%", 37 | "time": 2020 38 | }, 39 | { 40 | "csv": "ethnicity", 41 | "label": "Ethnicity", 42 | "dropdown": true, 43 | "unit": "%", 44 | "time": 2011 45 | }, 46 | { 47 | "csv": "industry", 48 | "label": "Industry", 49 | "dropdown": true, 50 | "unit": "%", 51 | "time": 2020 52 | }, 53 | { 54 | "csv": "population", 55 | "label": "Population", 56 | "dropdown": true, 57 | "unit": "%", 58 | "time": 2020 59 | }, 60 | { 61 | "csv": "deprivation", 62 | "label": "Deprivation", 63 | "dropdown": false, 64 | "unit": "Average score", 65 | "time": 2019 66 | } 67 | ] 68 | }, 69 | "optional": { 70 | "mobileBreakpoint": 600, 71 | "x_num_ticks_sm_md": [6, 8] 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /lib/tabstyles.css: -------------------------------------------------------------------------------- 1 | /* Individual tab styles */ 2 | 3 | 4 | /*****************************/ 5 | /* Falling Icon, from http://vintageproductions.eu/grid/interactivity/ */ 6 | /*****************************/ 7 | 8 | .tabs-style-iconfall { 9 | overflow: visible; 10 | } 11 | 12 | .tabs-style-iconfall nav a { 13 | display: inline-block; 14 | overflow: visible; 15 | color: #74777b; 16 | /* padding-left: 29%; 17 | padding-right: 29%;*/ 18 | /* line-height: 1;*/ 19 | height: 46px; 20 | /* -webkit-transition: color 0.3s cubic-bezier(0.7,0,0.3,1); 21 | transition: color 0.3s cubic-bezier(0.7,0,0.3,1);*/ 22 | } 23 | 24 | /*.tabs-style-iconfall nav a:hover, 25 | .tabs-style-iconfall nav a:focus, 26 | .tabs-style-iconfall nav li.tab-current a { 27 | color: #1586CE; 28 | }*/ 29 | 30 | .tabs-style-iconfall nav a span { 31 | font-weight: 700; 32 | } 33 | 34 | /*.tabs-style-iconfall nav li::before { 35 | position: absolute; 36 | bottom: 1em; 37 | left: 50%; 38 | margin-left: -20px; 39 | width: 40px; 40 | height: 4px; 41 | background-color: #000; 42 | -webkit-transition: -webkit-transform 0.2s ease-in; 43 | transition: transform 0.2s ease-in; 44 | -webkit-transform: scale3d(0,1,1); 45 | transform: scale3d(0,1,1); 46 | }*/ 47 | 48 | .tabs-style-iconfall nav li.tab-current::before { 49 | opacity: 1; 50 | /* -webkit-transform: scale3d(1,1,1); 51 | transform: scale3d(1,1,1);*/ 52 | } 53 | 54 | .tabs-style-iconfall .icon::before { 55 | display: block; 56 | /* margin: 0 0 0.35em;*/ 57 | /* opacity: 0;*/ 58 | /* -webkit-transition: -webkit-transform 0.2s, opacity 0.2s; 59 | transition: transform 0.2s, opacity 0.2s;*/ 60 | -webkit-transform: translate3d(0,-100px,0); 61 | transform: translate3d(0,-100px,0); 62 | pointer-events: none; 63 | } 64 | 65 | .tabs-style-iconfall nav li.tab-current .icon::before { 66 | opacity: 1; 67 | -webkit-transform: translate3d(0,0,0); 68 | transform: translate3d(0,0,0); 69 | } 70 | 71 | @media screen and (max-width: 58em) { 72 | .tabs-style-iconfall nav li .icon::before { 73 | opacity: 1; 74 | -webkit-transform: translate3d(0,0,0); 75 | transform: translate3d(0,0,0); 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /multiple-beeswarms-alternative/datadownload.csv: -------------------------------------------------------------------------------- 1 | Site,Sex,Cheshire and Merseyside,East Midlands,East of England,Greater Manchester,"Humber, Coast and Vale",Kent and Medway,Lancashire and South Cumbria,North Central and North East London,North East and Cumbria,North West and South West London,Peninsula,"Somerset, Wiltshire, Avon and Gloucestershire",South East London,"South Yorkshire, Bassetlaw, North Derbyshire and Hardwick",Surrey and Sussex,Thames Valley,Wessex,West Midlands,West Yorkshire and Harrogate 2 | Bladder,Men,80.0,78.1,78.8,77.2,81.3,80.0,79.0,77.8,78.7,78.5,79.9,76.4,77.6,75.4,78.7,78.0,76.8,77.7,78.2 3 | Bladder,Women,68.3,63.3,65.1,62.2,*,64.5,66.2,60.8,64.6,72.7,71.4,69.2,62.0,66.1,67.9,67.5,65.0,64.6,60.9 4 | Breast,Women,95.5,95.6,96.0,95.4,95.7,94.9,95.3,94.8,95.6,95.8,96.2,96.4,95.3,95.7,96.4,96.5,96.0,95.8,95.7 5 | Cervix,Women,81.8,80.4,81.1,79.6,76.0,77.8,82.5,81.6,78.6,85.1,85.0,84.7,86.5,76.5,75.2,76.5,80.1,82.4,80.8 6 | Colon,Men,77.3,76.8,76.9,76.0,76.1,76.4,76.8,77.6,75.9,79.7,77.2,76.3,77.3,73.9,79.2,78.3,78.6,76.8,77.0 7 | Colon,Women,75.0,74.7,74.9,73.7,73.2,74.8,73.2,75.5,73.5,77.5,75.6,75.2,77.7,73.3,79.0,77.1,77.8,74.4,75.9 8 | Colorectal,Men,79.3,78.6,79.6,78.5,79.9,78.9,78.7,79.5,78.7,81.3,80.6,79.5,79.6,76.5,81.4,81.1,81.4,79.1,79.3 9 | Colorectal,Women,77.3,76.2,77.2,75.5,77.2,77.8,75.9,76.5,75.9,79.5,77.9,77.8,78.7,75.6,79.9,78.6,78.7,76.3,78.1 10 | Kidney & Urinary Tract,Men,77.8,73.4,75.8,77.5,78.6,75.1,76.9,81.1,77.6,84.2,78.0,79.3,80.7,77.7,79.1,79.9,77.9,77.5,78.0 11 | Kidney & Urinary Tract,Women,78.0,73.6,75.4,78.4,76.7,77.6,77.5,80.3,77.7,84.0,77.2,78.6,78.3,77.3,77.3,80.4,77.6,76.9,79.4 12 | Lung,Men,37.5,35.6,35.9,36.8,35.7,33.5,32.9,38.6,35.5,39.9,36.3,37.4,38.7,35.2,36.0,37.7,37.0,34.1,37.7 13 | Lung,Women,44.1,42.5,43.1,42.0,40.1,39.6,39.2,44.4,41.8,48.6,45.8,42.9,46.8,42.3,43.3,45.1,43.8,40.7,47.4 14 | Myeloma,Men,83.8,85.7,79.7,82.2,82.5,77.7,79.5,83.0,78.0,86.2,82.5,82.9,83.8,85.1,84.6,82.5,82.0,82.0,79.1 15 | Myeloma,Women,81.3,85.5,82.5,79.5,81.0,80.9,82.0,83.8,75.0,84.1,78.2,80.7,77.7,82.6,79.6,80.5,83.3,82.0,78.4 16 | Non-Hodgkin Lymphoma,Men,75.8,78.6,79.0,77.2,75.0,77.9,75.4,78.3,74.5,80.9,80.5,81.2,75.5,74.2,78.0,78.3,79.6,78.0,78.3 17 | Non-Hodgkin Lymphoma,Women,80.5,81.9,80.2,78.1,80.2,80.1,75.9,78.8,79.0,82.8,83.1,83.9,78.2,77.6,82.1,82.4,83.5,80.1,78.1 18 | Oesophagus,Men,44.0,47.3,47.2,45.2,50.4,41.1,46.7,45.8,46.9,45.3,51.0,45.0,48.6,42.9,47.5,49.2,49.3,44.3,47.4 19 | Oesophagus,Women,44.2,46.1,44.7,47.5,*,42.2,49.0,42.1,50.2,49.2,47.7,46.6,52.8,* ,46.3,48.7,48.9,39.8,44.3 20 | Prostate,Men,96.0,96.3,97.1,95.7,96.4,96.1,96.1,96.1,96.8,96.1,96.4,96.7,96.1,95.4,96.3,96.7,97.1,97.0,96.1 21 | Rectal,Men,82.7,81.8,84.3,82.8,85.8,82.8,82.0,83.0,83.4,83.7,86.1,84.8,83.5,80.6,84.8,86.1,86.1,82.9,82.8 22 | Rectal,Women,82.9,80.0,83.1,80.2,86.4,84.7,81.8,78.8,82.1,84.8,84.7,84.6,81.0,80.7,82.5,82.4,81.5,81.4,83.1 23 | Stomach,Men,46.0,47.0,46.2,46.4,43.8,42.4,46.1,51.4,50.1,51.4,50.4,43.2,53.9,43.3,48.4,46.9,50.3,45.3,48.7 24 | Stomach,Women,50.6,45.8,46.9,41.6,*,42.4,48.2,51.0,50.3,50.1,43.2,47.4,56.3,46.0,45.1,49.4,52.6,40.6,48.5 25 | Uterus,Women,89.0,90.4,88.9,89.3,92.1,88.7,90.6,87.3,88.8,89.3,90.8,91.2,87.3,88.7,90.4,88.4,90.2,89.8,89.8 26 | -------------------------------------------------------------------------------- /lib/swoopy-drag.js: -------------------------------------------------------------------------------- 1 | d3.swoopyDrag = function(){ 2 | var x = d3.scale.linear() 3 | var y = d3.scale.linear() 4 | 5 | var annotations = [] 6 | 7 | var annotationSel 8 | 9 | var draggable = false 10 | 11 | var dispatch = d3.dispatch('drag') 12 | 13 | var textDrag = d3.behavior.drag() 14 | .on('drag', function(d){ 15 | var x = d3.event.x 16 | var y = d3.event.y 17 | d.textOffset = [x, y].map(Math.round) 18 | 19 | d3.select(this).call(translate, d.textOffset) 20 | 21 | dispatch.drag() 22 | }) 23 | .origin(function(d){ return {x: d.textOffset[0], y: d.textOffset[1]} }) 24 | 25 | var circleDrag = d3.behavior.drag() 26 | .on('drag', function(d){ 27 | var x = d3.event.x 28 | var y = d3.event.y 29 | d.pos = [x, y].map(Math.round) 30 | 31 | var parentSel = d3.select(this.parentNode) 32 | 33 | var path = '' 34 | parentSel.selectAll('circle').each(function(d){ 35 | path = path + '' + d.type + d.pos 36 | }) 37 | 38 | parentSel.select('path').attr('d', path).datum().path = path 39 | d3.select(this).call(translate, d.pos) 40 | 41 | dispatch.drag() 42 | }) 43 | .origin(function(d){ return {x: d.pos[0], y: d.pos[1]} }) 44 | 45 | 46 | var rv = function(sel){ 47 | annotationSel = sel.selectAll('g').data(annotations) 48 | annotationSel.exit().remove() 49 | annotationSel.enter().append('g') 50 | annotationSel.call(translate, function(d){ return [x(d), y(d)] }) 51 | 52 | var textSel = annotationSel.append('text') 53 | .call(translate, ƒ('textOffset')) 54 | .text(ƒ('text')) 55 | 56 | annotationSel.append('path') 57 | .attr('d', ƒ('path')) 58 | 59 | if (!draggable) return 60 | 61 | annotationSel.style('cursor', 'pointer') 62 | textSel.call(textDrag) 63 | 64 | annotationSel.selectAll('circle').data(function(d){ 65 | var points = [] 66 | 67 | var i = 1 68 | var type = 'M' 69 | var commas = 0 70 | 71 | for (var j = 1; j < d.path.length; j++){ 72 | var curChar = d.path[j] 73 | if (curChar == ',') commas++ 74 | if (curChar == 'L' || curChar == 'C' || commas == 2){ 75 | points.push({pos: d.path.slice(i, j).split(','), type: type}) 76 | type = curChar 77 | i = j + 1 78 | commas = 0 79 | } 80 | } 81 | 82 | points.push({pos: d.path.slice(i, j).split(','), type: type}) 83 | return points 84 | }).enter().append('circle') 85 | .attr({r: 8, fill: 'rgba(0,0,0,0)', stroke: '#333', 'stroke-dasharray': '2 2'}) 86 | .call(translate, ƒ('pos')) 87 | .call(circleDrag) 88 | 89 | dispatch.drag() 90 | } 91 | 92 | 93 | rv.annotations = function(_x){ 94 | if (typeof(_x) == 'undefined') return annotations 95 | annotations = _x 96 | return rv 97 | } 98 | rv.x = function(_x){ 99 | if (typeof(_x) == 'undefined') return x 100 | x = _x 101 | return rv 102 | } 103 | rv.y = function(_x){ 104 | if (typeof(_x) == 'undefined') return y 105 | y = _x 106 | return rv 107 | } 108 | rv.draggable = function(_x){ 109 | if (typeof(_x) == 'undefined') return draggable 110 | draggable = _x 111 | return rv 112 | } 113 | 114 | return d3.rebind(rv, dispatch, 'on') 115 | 116 | //no jetpack dependency 117 | function translate(sel, pos){ 118 | sel.attr('transform', function(d){ 119 | var posStr = typeof(pos) == 'function' ? pos(d) : pos 120 | return 'translate(' + posStr + ')' 121 | }) 122 | } 123 | 124 | function ƒ(str){ return function(d){ return d[str] } } 125 | } -------------------------------------------------------------------------------- /lib/tabs.css: -------------------------------------------------------------------------------- 1 | /* Default tab style */ 2 | 3 | .tabs { 4 | position: relative; 5 | overflow: hidden; 6 | margin: 0 auto; 7 | width: 100%; 8 | font-weight: bold; 9 | font-size: 18px; 10 | float: left; 11 | } 12 | 13 | /* Nav */ 14 | .tabs nav { 15 | text-align: center; 16 | } 17 | 18 | .tabs nav ul { 19 | position: relative; 20 | display: -ms-flexbox; 21 | display: -webkit-flex; 22 | display: -moz-flex; 23 | display: -ms-flex; 24 | display: flex; 25 | margin: 0 auto; 26 | padding: 0; 27 | max-width: 1200px; 28 | list-style: none; 29 | -ms-box-orient: horizontal; 30 | -ms-box-pack: center; 31 | -webkit-flex-flow: row wrap; 32 | -moz-flex-flow: row wrap; 33 | -ms-flex-flow: row wrap; 34 | flex-flow: row wrap; 35 | -webkit-justify-content: center; 36 | -moz-justify-content: center; 37 | -ms-justify-content: center; 38 | justify-content: center; 39 | } 40 | 41 | .tabs nav ul li { 42 | position: relative; 43 | z-index: 1; 44 | display: block; 45 | margin: 0; 46 | text-align: center; 47 | -webkit-flex: 1; 48 | -moz-flex: 1; 49 | -ms-flex: 1; 50 | flex: 1; 51 | } 52 | 53 | .tabs nav a { 54 | position: relative; 55 | display: block; 56 | overflow: hidden; 57 | text-overflow: ellipsis; 58 | white-space: nowrap; 59 | line-height: 2.5; 60 | } 61 | 62 | .tabs nav a span { 63 | vertical-align: middle; 64 | } 65 | 66 | .tabs nav li.tab-current a { 67 | background-color: #E5E5E5; 68 | color: #000; 69 | height: 46px !important; 70 | width: 100%; 71 | } 72 | 73 | .tabs nav li a:hover { 74 | /* background-color: #E5E5E5;*/ 75 | color: #000; 76 | width: 100%; 77 | } 78 | 79 | .tabs nav a:focus { 80 | outline: none; 81 | } 82 | 83 | /* Icons */ 84 | .icon::before { 85 | z-index: 10; 86 | display: inline-block; 87 | /* margin: 0 0.4em 0 0;*/ 88 | vertical-align: middle; 89 | text-transform: none; 90 | font-weight: normal; 91 | font-variant: normal; 92 | font-size: 1.3em; 93 | font-family: 'stroke7pixeden'; 94 | line-height: 1; 95 | speak: none; 96 | -webkit-backface-visibility: hidden; 97 | -webkit-font-smoothing: antialiased; 98 | -moz-osx-font-smoothing: grayscale; 99 | } 100 | .icon-upload::before { 101 | content: "\e68a"; 102 | } 103 | .icon-tools::before { 104 | content: "\e60a"; 105 | } 106 | .icon-plane::before { 107 | content: "\e625"; 108 | } 109 | .icon-joy::before { 110 | content: "\e6a4"; 111 | } 112 | .icon-plug::before { 113 | content: "\e69a"; 114 | } 115 | .icon-home::before { 116 | content: "\e648"; 117 | } 118 | .icon-gift::before { 119 | content: "\e652"; 120 | } 121 | .icon-display::before { 122 | content: "\e65e"; 123 | } 124 | .icon-date::before { 125 | content: "\e660"; 126 | } 127 | .icon-config::before { 128 | content: "\e666"; 129 | } 130 | .icon-coffee::before { 131 | content: "\e669"; 132 | } 133 | .icon-camera::before { 134 | content: "\e66f"; 135 | } 136 | .icon-box::before { 137 | content: "\e674"; 138 | } 139 | 140 | /* Content */ 141 | .content-wrap { 142 | position: relative; 143 | } 144 | 145 | .content-wrap section { 146 | display: none; 147 | margin: 0 auto; 148 | padding: 1em; 149 | max-width: 1200px; 150 | text-align: center; 151 | } 152 | 153 | .content-wrap section.content-current { 154 | display: block; 155 | } 156 | 157 | .content-wrap section p { 158 | margin: 0; 159 | padding: 0.75em 0; 160 | color: rgba(40,44,42,0.05); 161 | font-weight: 900; 162 | font-size: 4em; 163 | line-height: 1; 164 | } 165 | 166 | /* Fallback */ 167 | .no-js .content-wrap section { 168 | display: block; 169 | padding-bottom: 2em; 170 | border-bottom: 1px solid rgba(255,255,255,0.6); 171 | } 172 | 173 | .no-flexbox nav ul { 174 | display: block; 175 | } 176 | 177 | .no-flexbox nav ul li { 178 | min-width: 15%; 179 | display: inline-block; 180 | } 181 | 182 | @media screen and (max-width: 58em) { 183 | .tabs nav a.icon span { 184 | display: none; 185 | } 186 | .tabs nav a:before { 187 | margin-right: 0; 188 | } 189 | 190 | } -------------------------------------------------------------------------------- /group-beeswarm/data.csv: -------------------------------------------------------------------------------- 1 | id,unique,value Germany,Germany5,16 Germany,Germany99,30 Germany,Germany74,16 Germany,Germany73,40 Germany,Germany78,47 Germany,Germany73,11 Germany,Germany5,57 Germany,Germany63,59 Germany,Germany9,11 Germany,Germany70,49 Germany,Germany16,100 Germany,Germany51,1 Germany,Germany25,52 Germany,Germany89,66 Germany,Germany93,80 Italy,Italy78,7 Italy,Italy88,59 Italy,Italy43,85 Italy,Italy47,70 Italy,Italy97,83 Italy,Italy38,90 Italy,Italy55,47 Italy,Italy93,71 Italy,Italy81,91 Italy,Italy41,65 Italy,Italy5,78 Italy,Italy90,19 Italy,Italy69,78 Italy,Italy49,59 Italy,Italy92,91 Italy,Italy65,36 UK,UK61,48 UK,UK66,18 UK,UK48,32 UK,UK77,65 UK,UK56,34 UK,UK62,36 UK,UK0,83 UK,UK35,63 UK,UK31,2 UK,UK82,55 UK,UK91,68 UK,UK35,73 UK,UK22,18 UK,UK60,41 UK,UK23,75 UK,UK43,54 UK,UK78,23 UK,UK37,9 UK,UK58,14 Spain,Spain61,17 Spain,Spain29,80 Spain,Spain87,50 Spain,Spain56,25 Spain,Spain49,73 Spain,Spain74,87 Spain,Spain37,45 Spain,Spain67,23 Spain,Spain61,81 Spain,Spain11,16 Spain,Spain60,16 Spain,Spain39,29 Spain,Spain59,65 Spain,Spain56,46 Spain,Spain22,94 Spain,Spain23,77 Spain,Spain81,40 Spain,Spain22,14 Spain,Spain43,30 Spain,Spain38,39 Spain,Spain53,66 Spain,Spain80,32 Spain,Spain21,24 Spain,Spain85,71 Spain,Spain85,65 Spain,Spain73,95 Spain,Spain10,98 Spain,Spain84,65 Spain,Spain59,51 Spain,Spain30,69 Spain,Spain33,67 Spain,Spain88,87 Spain,Spain51,34 Spain,Spain63,65 Spain,Spain35,33 Spain,Spain49,72 Spain,Spain35,42 Spain,Spain44,27 Spain,Spain64,59 Spain,Spain51,47 Spain,Spain86,58 Spain,Spain27,31 Spain,Spain28,76 Spain,Spain2,35 Spain,Spain53,0 Spain,Spain6,7 Spain,Spain74,31 Spain,Spain8,6 Spain,Spain94,37 Spain,Spain55,39 Spain,Spain34,92 Spain,Spain95,98 Spain,Spain6,25 Spain,Spain3,14 Spain,Spain60,28 Spain,Spain48,96 Spain,Spain89,68 Spain,Spain82,98 Spain,Spain94,21 Spain,Spain5,26 Spain,Spain1,80 Spain,Spain58,7 Spain,Spain53,8 Spain,Spain79,64 Spain,Spain5,37 Spain,Spain69,26 Spain,Spain31,49 Spain,Spain47,41 Spain,Spain85,15 Spain,Spain83,80 Spain,Spain6,20 Spain,Spain92,58 Spain,Spain11,43 Spain,Spain85,88 Spain,Spain4,85 Spain,Spain27,51 Spain,Spain61,29 Spain,Spain32,81 Spain,Spain94,10 Spain,Spain55,67 Spain,Spain30,2 Spain,Spain41,38 Spain,Spain8,77 Spain,Spain20,17 Spain,Spain28,3 Spain,Spain49,45 Spain,Spain21,7 Spain,Spain75,18 Spain,Spain11,90 Spain,Spain34,83 Spain,Spain59,89 Spain,Spain33,96 Spain,Spain72,43 Spain,Spain2,97 Spain,Spain94,82 Spain,Spain61,68 Spain,Spain48,95 Spain,Spain73,19 Spain,Spain13,36 Spain,Spain1,4 Spain,Spain82,61 Spain,Spain20,54 Spain,Spain10,20 Spain,Spain35,89 Spain,Spain17,49 Spain,Spain42,56 Spain,Spain55,75 Spain,Spain34,54 Spain,Spain29,29 Spain,Spain67,12 Spain,Spain43,77 Spain,Spain96,53 Spain,Spain59,68 Spain,Spain74,30 Spain,Spain3,68 Spain,Spain67,69 Spain,Spain87,24 Spain,Spain77,17 France,France33,22 France,France80,82 France,France4,80 France,France36,63 France,France42,70 France,France55,74 France,France56,68 France,France68,62 France,France36,17 France,France20,21 France,France25,49 France,France60,37 France,France66,24 France,France8,16 France,France3,4 France,France59,46 France,France67,61 France,France49,33 France,France2,74 France,France47,29 France,France83,90 France,France42,12 France,France54,92 France,France64,98 France,France2,44 France,France91,58 France,France29,6 France,France16,71 France,France31,11 France,France46,90 France,France46,30 France,France5,57 France,France41,11 France,France67,25 France,France93,12 France,France53,21 France,France17,5 France,France11,21 France,France65,87 France,France62,64 France,France3,11 France,France7,100 France,France53,60 France,France14,76 France,France57,0 France,France17,85 France,France71,81 France,France40,60 France,France47,5 France,France60,91 France,France97,57 France,France69,45 France,France89,9 France,France93,10 France,France45,88 France,France69,79 France,France40,22 France,France30,49 France,France88,35 France,France77,96 France,France61,64 France,France32,81 France,France75,23 France,France30,54 France,France81,85 France,France40,94 Belgium,Belgium89,16 Belgium,Belgium19,1 Belgium,Belgium86,3 Belgium,Belgium71,69 Belgium,Belgium77,4 Belgium,Belgium83,26 Belgium,Belgium21,31 Belgium,Belgium81,20 Belgium,Belgium77,64 Belgium,Belgium62,49 Belgium,Belgium9,84 Belgium,Belgium25,21 Belgium,Belgium16,87 Belgium,Belgium57,70 Belgium,Belgium9,54 Belgium,Belgium46,39 Belgium,Belgium54,97 Belgium,Belgium76,36 -------------------------------------------------------------------------------- /accurate-plain-beeswarm/data.csv: -------------------------------------------------------------------------------- 1 | id,unique,value Germany,Germany5,16 Germany,Germany99,30 Germany,Germany74,16 Germany,Germany73,40 Germany,Germany78,47 Germany,Germany73,11 Germany,Germany5,57 Germany,Germany63,59 Germany,Germany9,11 Germany,Germany70,49 Germany,Germany16,100 Germany,Germany51,1 Germany,Germany25,52 Germany,Germany89,66 Germany,Germany93,80 Italy,Italy78,7 Italy,Italy88,59 Italy,Italy43,85 Italy,Italy47,70 Italy,Italy97,83 Italy,Italy38,90 Italy,Italy55,47 Italy,Italy93,71 Italy,Italy81,91 Italy,Italy41,65 Italy,Italy5,78 Italy,Italy90,19 Italy,Italy69,78 Italy,Italy49,59 Italy,Italy92,91 Italy,Italy65,36 UK,UK61,48 UK,UK66,18 UK,UK48,32 UK,UK77,65 UK,UK56,34 UK,UK62,36 UK,UK0,83 UK,UK35,63 UK,UK31,2 UK,UK82,55 UK,UK91,68 UK,UK35,73 UK,UK22,18 UK,UK60,41 UK,UK23,75 UK,UK43,54 UK,UK78,23 UK,UK37,9 UK,UK58,14 Spain,Spain61,17 Spain,Spain29,80 Spain,Spain87,50 Spain,Spain56,25 Spain,Spain49,73 Spain,Spain74,87 Spain,Spain37,45 Spain,Spain67,23 Spain,Spain61,81 Spain,Spain11,16 Spain,Spain60,16 Spain,Spain39,29 Spain,Spain59,65 Spain,Spain56,46 Spain,Spain22,94 Spain,Spain23,77 Spain,Spain81,40 Spain,Spain22,14 Spain,Spain43,30 Spain,Spain38,39 Spain,Spain53,66 Spain,Spain80,32 Spain,Spain21,24 Spain,Spain85,71 Spain,Spain85,65 Spain,Spain73,95 Spain,Spain10,98 Spain,Spain84,65 Spain,Spain59,51 Spain,Spain30,69 Spain,Spain33,67 Spain,Spain88,87 Spain,Spain51,34 Spain,Spain63,65 Spain,Spain35,33 Spain,Spain49,72 Spain,Spain35,42 Spain,Spain44,27 Spain,Spain64,59 Spain,Spain51,47 Spain,Spain86,58 Spain,Spain27,31 Spain,Spain28,76 Spain,Spain2,35 Spain,Spain53,0 Spain,Spain6,7 Spain,Spain74,31 Spain,Spain8,6 Spain,Spain94,37 Spain,Spain55,39 Spain,Spain34,92 Spain,Spain95,98 Spain,Spain6,25 Spain,Spain3,14 Spain,Spain60,28 Spain,Spain48,96 Spain,Spain89,68 Spain,Spain82,98 Spain,Spain94,21 Spain,Spain5,26 Spain,Spain1,80 Spain,Spain58,7 Spain,Spain53,8 Spain,Spain79,64 Spain,Spain5,37 Spain,Spain69,26 Spain,Spain31,49 Spain,Spain47,41 Spain,Spain85,15 Spain,Spain83,80 Spain,Spain6,20 Spain,Spain92,58 Spain,Spain11,43 Spain,Spain85,88 Spain,Spain4,85 Spain,Spain27,51 Spain,Spain61,29 Spain,Spain32,81 Spain,Spain94,10 Spain,Spain55,67 Spain,Spain30,2 Spain,Spain41,38 Spain,Spain8,77 Spain,Spain20,17 Spain,Spain28,3 Spain,Spain49,45 Spain,Spain21,7 Spain,Spain75,18 Spain,Spain11,90 Spain,Spain34,83 Spain,Spain59,89 Spain,Spain33,96 Spain,Spain72,43 Spain,Spain2,97 Spain,Spain94,82 Spain,Spain61,68 Spain,Spain48,95 Spain,Spain73,19 Spain,Spain13,36 Spain,Spain1,4 Spain,Spain82,61 Spain,Spain20,54 Spain,Spain10,20 Spain,Spain35,89 Spain,Spain17,49 Spain,Spain42,56 Spain,Spain55,75 Spain,Spain34,54 Spain,Spain29,29 Spain,Spain67,12 Spain,Spain43,77 Spain,Spain96,53 Spain,Spain59,68 Spain,Spain74,30 Spain,Spain3,68 Spain,Spain67,69 Spain,Spain87,24 Spain,Spain77,17 France,France33,22 France,France80,82 France,France4,80 France,France36,63 France,France42,70 France,France55,74 France,France56,68 France,France68,62 France,France36,17 France,France20,21 France,France25,49 France,France60,37 France,France66,24 France,France8,16 France,France3,4 France,France59,46 France,France67,61 France,France49,33 France,France2,74 France,France47,29 France,France83,90 France,France42,12 France,France54,92 France,France64,98 France,France2,44 France,France91,58 France,France29,6 France,France16,71 France,France31,11 France,France46,90 France,France46,30 France,France5,57 France,France41,11 France,France67,25 France,France93,12 France,France53,21 France,France17,5 France,France11,21 France,France65,87 France,France62,64 France,France3,11 France,France7,100 France,France53,60 France,France14,76 France,France57,0 France,France17,85 France,France71,81 France,France40,60 France,France47,5 France,France60,91 France,France97,57 France,France69,45 France,France89,9 France,France93,10 France,France45,88 France,France69,79 France,France40,22 France,France30,49 France,France88,35 France,France77,96 France,France61,64 France,France32,81 France,France75,23 France,France30,54 France,France81,85 France,France40,94 Belgium,Belgium89,16 Belgium,Belgium19,1 Belgium,Belgium86,3 Belgium,Belgium71,69 Belgium,Belgium77,4 Belgium,Belgium83,26 Belgium,Belgium21,31 Belgium,Belgium81,20 Belgium,Belgium77,64 Belgium,Belgium62,49 Belgium,Belgium9,84 Belgium,Belgium25,21 Belgium,Belgium16,87 Belgium,Belgium57,70 Belgium,Belgium9,54 Belgium,Belgium46,39 Belgium,Belgium54,97 Belgium,Belgium76,36 -------------------------------------------------------------------------------- /plain-beeswarm/data.csv: -------------------------------------------------------------------------------- 1 | unique,value 2 | Germany5,16 3 | Germany99,30 4 | Germany74,16 5 | Germany73,40 6 | Germany78,47 7 | Germany73,11 8 | Germany5,57 9 | Germany63,59 10 | Germany9,11 11 | Germany70,49 12 | Germany16,100 13 | Germany51,1 14 | Germany25,52 15 | Germany89,66 16 | Germany93,80 17 | Italy78,7 18 | Italy88,59 19 | Italy43,85 20 | Italy47,70 21 | Italy97,83 22 | Italy38,90 23 | Italy55,47 24 | Italy93,71 25 | Italy81,91 26 | Italy41,65 27 | Italy5,78 28 | Italy90,19 29 | Italy69,78 30 | Italy49,59 31 | Italy92,91 32 | Italy65,36 33 | UK61,48 34 | UK66,18 35 | UK48,32 36 | UK77,65 37 | UK56,34 38 | UK62,36 39 | UK0,83 40 | UK35,63 41 | UK31,2 42 | UK82,55 43 | UK91,68 44 | UK35,73 45 | UK22,18 46 | UK60,41 47 | UK23,75 48 | UK43,54 49 | UK78,23 50 | UK37,9 51 | UK58,14 52 | Spain61,17 53 | Spain29,80 54 | Spain87,50 55 | Spain56,25 56 | Spain49,73 57 | Spain74,87 58 | Spain37,45 59 | Spain67,23 60 | Spain61,81 61 | Spain11,16 62 | Spain60,16 63 | Spain39,29 64 | Spain59,65 65 | Spain56,46 66 | Spain22,94 67 | Spain23,77 68 | Spain81,40 69 | Spain22,14 70 | Spain43,30 71 | Spain38,39 72 | Spain53,66 73 | Spain80,32 74 | Spain21,24 75 | Spain85,71 76 | Spain85,65 77 | Spain73,95 78 | Spain10,98 79 | Spain84,65 80 | Spain59,51 81 | Spain30,69 82 | Spain33,67 83 | Spain88,87 84 | Spain51,34 85 | Spain63,65 86 | Spain35,33 87 | Spain49,72 88 | Spain35,42 89 | Spain44,27 90 | Spain64,59 91 | Spain51,47 92 | Spain86,58 93 | Spain27,31 94 | Spain28,76 95 | Spain2,35 96 | Spain53,0 97 | Spain6,7 98 | Spain74,31 99 | Spain8,6 100 | Spain94,37 101 | Spain55,39 102 | Spain34,92 103 | Spain95,98 104 | Spain6,25 105 | Spain3,14 106 | Spain60,28 107 | Spain48,96 108 | Spain89,68 109 | Spain82,98 110 | Spain94,21 111 | Spain5,26 112 | Spain1,80 113 | Spain58,7 114 | Spain53,8 115 | Spain79,64 116 | Spain5,37 117 | Spain69,26 118 | Spain31,49 119 | Spain47,41 120 | Spain85,15 121 | Spain83,80 122 | Spain6,20 123 | Spain92,58 124 | Spain11,43 125 | Spain85,88 126 | Spain4,85 127 | Spain27,51 128 | Spain61,29 129 | Spain32,81 130 | Spain94,10 131 | Spain55,67 132 | Spain30,2 133 | Spain41,38 134 | Spain8,77 135 | Spain20,17 136 | Spain28,3 137 | Spain49,45 138 | Spain21,7 139 | Spain75,18 140 | Spain11,90 141 | Spain34,83 142 | Spain59,89 143 | Spain33,96 144 | Spain72,43 145 | Spain2,97 146 | Spain94,82 147 | Spain61,68 148 | Spain48,95 149 | Spain73,19 150 | Spain13,36 151 | Spain1,4 152 | Spain82,61 153 | Spain20,54 154 | Spain10,20 155 | Spain35,89 156 | Spain17,49 157 | Spain42,56 158 | Spain55,75 159 | Spain34,54 160 | Spain29,29 161 | Spain67,12 162 | Spain43,77 163 | Spain96,53 164 | Spain59,68 165 | Spain74,30 166 | Spain3,68 167 | Spain67,69 168 | Spain87,24 169 | Spain77,17 170 | France33,22 171 | France80,82 172 | France4,80 173 | France36,63 174 | France42,70 175 | France55,74 176 | France56,68 177 | France68,62 178 | France36,17 179 | France20,21 180 | France25,49 181 | France60,37 182 | France66,24 183 | France8,16 184 | France3,4 185 | France59,46 186 | France67,61 187 | France49,33 188 | France2,74 189 | France47,29 190 | France83,90 191 | France42,12 192 | France54,92 193 | France64,98 194 | France2,44 195 | France91,58 196 | France29,6 197 | France16,71 198 | France31,11 199 | France46,90 200 | France46,30 201 | France5,57 202 | France41,11 203 | France67,25 204 | France93,12 205 | France53,21 206 | France17,5 207 | France11,21 208 | France65,87 209 | France62,64 210 | France3,11 211 | France7,100 212 | France53,60 213 | France14,76 214 | France57,0 215 | France17,85 216 | France71,81 217 | France40,60 218 | France47,5 219 | France60,91 220 | France97,57 221 | France69,45 222 | France89,9 223 | France93,10 224 | France45,88 225 | France69,79 226 | France40,22 227 | France30,49 228 | France88,35 229 | France77,96 230 | France61,64 231 | France32,81 232 | France75,23 233 | France30,54 234 | France81,85 235 | France40,94 236 | Belgium89,16 237 | Belgium19,1 238 | Belgium86,3 239 | Belgium71,69 240 | Belgium77,4 241 | Belgium83,26 242 | Belgium21,31 243 | Belgium81,20 244 | Belgium77,64 245 | Belgium62,49 246 | Belgium9,84 247 | Belgium25,21 248 | Belgium16,87 249 | Belgium57,70 250 | Belgium9,54 251 | Belgium46,39 252 | Belgium54,97 253 | Belgium76,36 -------------------------------------------------------------------------------- /lib/chosen.order.jquery.min.js: -------------------------------------------------------------------------------- 1 | /* Chosen Order v1.2.1 | (c) 2013 by Tristan Jahier, http://tristan-jahier.fr */ 2 | (function(){var a,b,c,d=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1},e={}.hasOwnProperty,f=function(a,b){function c(){this.constructor=a}for(var d in b)e.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};b=function(){function a(){}var b;return b={invalid_select_element:"ChosenOrder::{{function}}: first argument must be a valid HTML Multiple Select element that has been Chosenified!",invalid_selection_array:"ChosenOrder::{{function}}: second argument must be an Array!",unreachable_chosen_container:'ChosenOrder::{{function}}: could not find the Chosen UI container! To solve the problem, try adding an "id" attribute to your