Skip to content

Instantly share code, notes, and snippets.

@lorenzopub
Created Dec 12, 2017
Embed
What would you like to do?
d3 | reusable circle legend
license: mit
function circleLegend(selection) {
var instance = {}
// set some defaults
var api = {
domain: [0, 100], // the values min and max
range: [0, 80], // the circle area/size mapping
values: [8, 34, 89], // values for circles
width: 500,
height: 500,
suffix:'', // ability to pass in a suffix
circleColor: '#888',
textPadding: 40,
textColor: '#454545'
}
var sqrtScale = d3.scaleSqrt()
.domain(api.domain)
.range(api.range)
instance.render = function () {
var s = selection.append('g')
.attr('class', 'legend-wrap')
// push down to radius of largest circle
.attr('transform', 'translate(0,' + sqrtScale(d3.max(api.values)) + ')')
// append the values for circles
s.append('g')
.attr('class', 'values-wrap')
.selectAll('circle')
.data(api.values)
.enter().append('circle')
.attr('class', function (d) { return 'values values-' + d; })
.attr('r', function (d) { return sqrtScale(d); })
.attr('cx', api.width/2)
.attr('cy', function (d) { return api.height/2 - sqrtScale(d); })
.style('fill', 'none')
.style('stroke', api.circleColor)
.style('opacity', 0.5)
// append some lines based on values
s.append('g')
.attr('class', 'values-line-wrap')
.selectAll('.values-labels')
.data(api.values)
.enter().append('line')
.attr('x1', function (d) { return api.width/2 + sqrtScale(d); })
.attr('x2', api.width/2 + sqrtScale(api.domain[1]) + 10)
.attr('y1', function (d) { return api.height/2 - sqrtScale(d); })
.attr('y2', function (d) { return api.height/2 - sqrtScale(d); })
.style('stroke', api.textColor)
.style('stroke-dasharray', ('2,2'))
// append some labels from values
s.append('g')
.attr('class', 'values-labels-wrap')
.selectAll('.values-labels')
.data(api.values)
.enter().append('text')
.attr('x', api.width/2 + sqrtScale(api.domain[1]) + api.textPadding)
.attr('y', function (d) { return (api.height/2 - sqrtScale(d)) + 5; })
.attr('shape-rendering', 'crispEdges')
.style('text-anchor', 'end')
.style('fill', api.textColor)
.text(function (d) { return d + api.suffix; })
return instance
}
for (var key in api) {
instance[key] = getSet(key, instance).bind(api)
}
return instance
// https://gist.github.com/gneatgeek/5892586
function getSet(option, component) {
return function (_) {
if (! arguments.length) {
return this[option];
}
this[option] = _;
return component;
}
}
}

needed a simple circle legend for a bubble chart that I could pass in values and a domain

to initiate pass in a d3 selection to the circleLegend function and your dataset domain and values:

    var l = circleLegend(d3.select('svg g#legend'))
        .domain([0, 100])) // the dataset min and max
        .range( [0, 80]) // the circle area/size mapping
        .values( [8, 34, 89]) // pass in values (e.g. min,mean/median & max)
        // optional
        .width(500) // it centers to this
        .height( 500) // it centers to this
        .suffix('') // ability to pass in a suffix e.g. '%'
        .circleColor( '#888') // stroke of the circles
        .textPadding(40) // left padding on text
        .textColor( '#454545') // the fill for text

    // and render it
    l.render()

note: the number of values you pass in will correlate to the number of circles

forked from eesur's block: d3 | reusable circle legend

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<style>
body { font-family: Consolas, monaco, monospace; background: #f43530;}
circle {
stroke-width: 3px;
}
</style>
</head>
<body>
<svg width="960" height="500">
<g id="vis" transform="translate(10, 10)"></g>
</svg>
<script src="https://d3js.org/d3.v4.min.js"></script>
<!-- d3 code -->
<script src=".script-compiled.js" charset="utf-8"></script>
<!-- render code -->
<script>
circleLegend(d3.select('svg g#vis'))
.width(960)
.height(500)
.circleColor('#46454b')
.textColor('#e0e5da')
.suffix('%')
.textPadding(45)
.render()
</script>
</body>
</html>
�PNG

IHDR��}��^tEXtSoftwareAdobe ImageReadyq�e<e�IDATx����\W}��{n����޻dI�$K���O��6= $�!O <B�<$O�$ �i �<I�l��mY��d����3s���)Z�ι�ZI[�|��ˌ�����{����9�wD�eF�dh� �4@���� �4@���]�4@�� @� 4@�� @hv@�� @h��.� @h� �� @h� �4� @h� �4@�fh� �4@���� �4@���]�4@�� @� 4@�� @hv@�� @h��.� @h�6���,2 O���a���(�v9�n�0�`Ғ��T:m)C�R2h����f�K��U_�ȉ�W�����gT&d�+iȤ� �����F�� M��a���4{��WH�r<cP�N��p�M%�&5˨5�Z��
U��0&MZ���)�N���
Е��d��lm5,��"��d���2��G�9�@��q��4��� ��VE%��PO������@��"�iQ8]E�(� Ƨ� �-2��:j��L�i�5��T�>$�Cf�����S�pFΌ�)Q��i @�����:d�s�o��H�
����!mi8���_�)�7�Q����/�!��0^��ax�c8C=�z����UOF%�9a0+
��hA�i4m��;�� ¦�l<UC�7eDI����0�sޗ�� �3
�=���k}���9��%*���p�02�.#���FA{�<� %��ߴXN�y�N�������|�q�X�
B7�������5�a9��du"�i�/n���B~a� &���b��I���^��g�}�4�lF[��E4��ߖʞ:��s�iu�+����u��d� �~ �;� �NxB�3��-��z��J9�P�bZ�W�(V9Q�(r\X���O��Ea� �]�K@�:nZ�-��eg�S�aL����
a[�N`��W�7�z�� ���7��@�P3|!^��ݖ�}6S5Zd4; f��Frh��uX}Yv���V- �E��0 hիO�;m�%�})��Q8/
�s|U�>d�̳���rq,�&fH@uQ�o[a��(�CUn��À�Ǻ~a����NҢ0�ce�Me^�T�#���v��.�5�ha,�fr�(�
s����������oV��� �2��D�y�lgƼ�_�\�vn����9`9���S��� 7� h��i�0���EK"�uū3��N�(�������h @�\�M�y;q�L6��rWPmm܎Ž��8��k�G�&A�079�æ=��\C. ���Ձ�_�;-g��xg�y2;
���V��L��/ډݖ3�xgR������b����숫��- � �\��h�'2����vG�l�re�- ��Y�҄��c9�l���rU�<�]hc�i?�$F.����� �8� dr���l�#��f]��fr}!�������}�Hӝ�2?���Q��b��l��0�cA\dS��4���v_qΆc� E�1׹��B����3²�!/
����4�s�'�ǝ�%�T[����zd��b'v�x�(���6Q����6�}�N�0+vf���1��t��v���F�a\�V2 h��'�ǜ����U��*:� �欺�l�G��pj^�P4��l��>o��M�5 ��[z6s6jB Ė��hw���rm�-c(�t9!����/�15
/c�F-�6Mu�G��an�C�� � `�q�z�I �i�S(ΰ�aȚ��Pne�����L�Bv4/� �����(���62������<6�P�:��0ȱ��ԯ��9��1؆�&�1�\ov���� ���_Y��p!4�z�iZ ?m�=�^�g��P�������4�Wdo��?��thue��<�$�K@�� g���:sz�Nlfn�e�����gG�+6��O�06ى�����W�ٙ5��:}Z�fF��N2�}L�N��r���\�; @=�mPw<!6� å�Qx��&=c�j �I�f��jH�9y� � �F��� �a�KWލ^���0�j�a��ZR՜T�RM�� ��t�No\�q��5ak(O����kĜ_�N�:�/~h��e��6d�>jo��-���!�6p�����W�E5-��X\]� �&��G�Tl@�7{�Ԫ�(�����Y�j�jf�����T�-v�';������˸Lz��P F5� �D����jr�%��ڀڷ�Nl�+�! �b?�"d�A����\���ŝ�m�]�0�1�@�y�I�}�c�+=3��I��5��N�7��֫ӶP� ~����0��eO ���Rޔː�1&TCR�)7 H5?��E��ÓNrw\zn��^� �E+�9�F���U#|� � ��=�$�ĥ�f�D� ���Bӊ-o��qhh��aƞ[ �����Ph`�q L5ȧ���*�sNbW\zn����$��0����Ucӿ���j��"h�e������������O53�ئ�eh�87S@��f�[��=�G��~?K�`¨Ʀ�\{\�VM4�*9�L�=��)nl�UF7��1Z5���Ъ��^�
h�i�^��"��IϘ� ��_K\�V�U5Zv4���#�GܤR�dt�ǼgL&��n�+�����j��"h-#̍n����ܐ.���-Uh� ZST�V5� �D
����9!���e��������q����p����xy�Iv���2�k�L ��D5H�,-m�j�,R� `��h�{��˰.��Ӣ���J���j��vՌ_��4��vв_�+Z�&�-
}�*�j�����Uc>hQ�����q�z/ �Ձ��A%SMti�9�j�}\P� `<B<���S�p��c���:E�e���j؁��Bhc�Y;�W�m��p�E�PTCU�U/l���q�� ����} �b� J>���J�|�T���*���J�0����|��k����j��M:R�������_h���T�m_��B.DURMW��P5r��CVW@�p�6;n�6,�"���p�L5`}���U�g� @8wGM{�U�'C^�el.D5� ��њ�j�ٳ�����U���^3�u���f���]5�U����Mv�_� �`)S�Q+TcVM�l�j���j� �l4헴�^ Rn���դ��Ъ�d"4���x:n��~ƥ�3j�jҪa��U��� `���-:\z3���Z����$��g"4��8nZ��lM2��g�3j�j�Mڥ��#����@�0��O�M޸��R�5L5o�����;��
4��l�}5��?���u��/ז'T�Au
v4�x��ܪM�LIyQ���� �����d���9�� �3N"�6nrT�@�p��O�B�`� @(wԴ�·��`���6P�T�W;l���� � `i�jcl�a\�3yuG5{��� |� �ݖۭ��\x�Za/��f��F�AT7a� @��x�.O R������{�n�6!4e��f�X�6�Q�uK5���Մ���`��z�۩Q��kQ�T���?W�%� 44P�Y��-�����@\GP�e���@=�s�6�yN�� `�&����S]&ú*�@��j�zR^K�:`��:{�Ga��g?/
�VJ����:E�F�q�@���6�)~�q!����T�(�J ,t� 4P_�B�Ѯ�Z�M ?C5��ˋ��+�h����ܲ��UX��)@�5��rP�D�h�^�B��f?/���X�k,�fB�N�„�@�x�r<������Du��,fB @�a���?'��0�A���; ��@=8h�}Z���~�D�&�+�Ş@�j�m �)Q�҃��n2E�);XT�m��<fZe/�Jt��wա�YT�a{�Ѳ������΢������e�|��Ч7��Z��p�nԳ@�j�A����ͫ~�$��A�,�.S����A�K ��Z�[+�5; R���F���lmQ��Գ@�jO�0�k�.c�3p��:W/� @5f�6B� �,mag�:N����^���� ��s41� �+���e44PKN���� ���� m���j�O�pyj6ˈ=��}�j��c4P3���./ �� ��� �@U:f�Y1����ǂ���yQ��l��ю����p@{G�� �?�Gu��,�hh��k����A`,�]�% ����aZ������Ƃ�Je�8Tw�4P�i(O��$�7�����^���8���vX{/g�Cz�:L�@��W6�iry_�C;`��Ju���7@���Qm$�IF-���ա��>u�Ahh�J�.f����p��nu����*���0� Е-2 _�ܠ/�O>2�pz�b9�?.���ff�DLu�:��I% #-�>a� �.��JɆ���  ��ձ��t �J�0dRʔ��2j��IF�Sn'��Vf��g�:��2]
�2Ǵ��D�C����q��:M�KX=��+�s�T꧊!���YF-Q�&��(j�T*�P�[��ubh�S�%$@ @U�x�
�� �e�'�}ܴN�VzB�1���-�n���Okc�>��(�&���7�fhZu�e,� � T��4z��8l���iUB 3�Ӗ�/��t")�:���@}%����L�@EKf��b� dό�>a�샦}Ҵ*6��@���E� ̍�ya����15U�]����~@���Im��-
m��DZ�b���+��}d�,C��4�Y�H�16�8daXT}m�*�-����Ϙ���I��:���<� � T ��㩌��E=lڻm�i���T��9_7�XC#JJ�4���ґr����v��/l�5�;�����^a��~����m��gE������8O��uVY7\�4hh�Zt��$6���A%�ݖ��r��2��{�ʨ=��h���}n#�f!y' �$�^�"�B��N�R�G�;T.?dڇ\�Aʥ��4��>g�������!��
�Pg\ ;��9��v��k9��}Vao�(��*C{�#�J�3d8��³ �8)��u̴:Lk4�\�l��-��0�/<
���uf�3�� TG�+{'w �m�gΊ��*P��r�RΎ�9a0}�����>S3 ���PI����rƚz����57
V']gEu1�ѼA;9,t�V�4P�����v���F�im��ã���2�󢠽"㦊��v��u���[v�ӆ���~jM��GMu���*댭\G� TA���Q�$�JZ����~���\)�XTQq��T�pM�;iZ{-g�i{#�I�+[��:=X�(�6��z�� �/�@�v��3PQr����3��Q�,�熁U�eU�W_� qвwY����� u�偷:�\.19@��f��3�D=�4�0G��r^�#� �rЂ�_xm��3� �zE�K�;lw��J�\��� ���l��;Z�8������Ԛ�G #���6�'���롸�\�+B/Y����r?�6����ݶ� S7B�`<�$_��˂l+-*��h���D�z��F�@%�5�G�ed��� ��v��8gCE����>�.����W��N��1|�V'��m\x��vUF������:�.I=h���i73oU�iZ�9�>^W�������:U�0�- ���A�}�)�:�8`�W�Yjthݭ<@�N1�K�@� �|�>�;��ϋBm��x�%
���C�y�}y��z���/܆ �C�9�����g�@�*K�v%\3�UO��N���3��D� 7�Q�u
q��]��؉����V�`�u��m�<m��Yg�p�8#�EZ�́f����?w�KϮ!7��[�~�s�C�nQ;�fƳڥj�6��niF����㢟�´��;/ 6��Ň�<��E�3v�@�*3Y!pS�Eu?�C�n�hh�����>/n��\� �<8��hBʋ��"j��:���ϼ9�ى\ܴu��e����z^oE�n�KJ�`�1�90��B� �(c�q��t�B�����(|��Oz>+jw��6s��.jW�^ϓTw+;�
��`���k-���8=w��N*6���tQ�[x��s��� ^�V�}�N�Ӄz '-�����p�:]Ym�1S�"�F�W䮾*\��0M���}��'�Nܿ��Rc�:��K� WɆ�|�9v�}���ƇDO�?%���E_�pw��M���' �1�l�����]t.� L���Aq���=`ُ;��2� R���p��yR�3��'կ������܆+�̼0�� �-��1'^8^��8P�y��9�sW^���֖?��~�嘌;cz�G>�_�z�O͘�_�����h��������_4gv��w��^"���֑��߸�}�)������p�u#��_���Q�>1w{['L���k��EἨ�B�.�}�I��M����.� �Tda�w��~�\�?�qҘ"��D�iu -�2+
�'�ɩ����͜Q��:�V_��|d*�]}e��GE��O͞�}�g… �Զ� ���l�~��Ϝ�}�g��K�SK�ʦ��5��N�( 蹫�ʼ�m����r��~@�F�9���ӧ+$�oz��>�On1Vލ^�jcG�L�KW�M�Q{Y���?�Uz���9н����� # ��/Soߴ���r�_Y����oss�;���|l�|��)SJ/���[?��ioy{�G�(�ȣ�J�vk�b���q[�ޖ��;��xw�?�o��}��ͧ�Fss��-�n��WD����I�i�'�l�V�}�N���~Y���9.�s�}���ݷ�pl�� �w:oR�p��V��h��7����W�v��>f?Qz��]2��2�{u8^�v������_p�ߜO�{^n������Y��e�����7�Y3��/�7�������}Mw��>��Q���x����ߌZ[���xh`�t}�@o����ҳc�믭�dp�ݫv�w¦ʖz��z��&uz �}}ɟ�l��O&���$f��([N �f�-o,u�-[~�e��x�w�=/o���'IKK;?��ٺ���(퍇)�m��@�nM1L���Ư�K���dhm�˩��m��9.=�d�̰wj'�];CF�mu���
�>-��k`�zn���dKw�ʁ� �L�?t�^}�q��b��7�-����//~�q�>�[���M����ŵ��l�6���G~�i����s��7y��ܘ(jW��v�:@�0�E��g�Ix��^��f�+ʾ����һrG��j����~����6ſ�=v:@_���w������ S)������ӧ���%��] @�O_�F��Y�3NLzn,\��L����v���qZ&u�j?@k�nr��q��$r�%�{�C�+�e�������ۣ����;0,]�.��o�:��ԩ���T��.d���f��+X�,��W�6�m��kt� T�P�j=@�0�'��p鹉�<�����`�Z���.��h���T #? �����xW\�n{W^����v{��������rҲ� �����9s��a�*(��jzx�����W�,�}��~�w����O֠lh`2��|���}�|�I��3
鹑�<y Z�ˡ�:d}5�ַ��&}~��q��(e�D���a��>��?(�Y�𑖻�j���e:�wN&��Cy���M��l�n�?���ޞ��]��li�5��E�mA�rFu���U @� ҮU�ពb���ic{I)o =WF��!���p���ޢI��0������{6�,{���O~f�hFQ>m�if_�*�����r7\7dSa ��������������Ww��^�;�
�o����� TT�.W�S8ԫz4n �1��y������9�����W���蝮�������1��Կ��y�d�Kط�޻�x;�W�]z,^����,V�+��=��qqʵtK׌&x���?S���u9��]L@���Q����Qm*�Jӯ𲭤�J��:(������:��\��d1��9�2����o����{��������v���/��?���0͞?�����γ� ?�/�^�a�{��kw8�L )������O{�_*��D�;/l�V�J�=�����u�H����h� ��L���O��� @���]�z���^��fE�{�8꠨C�V)E�v-�Z텦m�{�M�%e6�N���"&��y�kJw�s�>j��|��J�" U\�]v��vM)[�卲��� ?�Mz���oܛ~���-��~��r���Z>�7* ����I��tIb4sF�����������w�Θ�����W5��W�&�4Ҩ������t\Ѻ�����+�:4i!��u(�Da�K1]g�o��x;ݟ��q�ﹽg�c�(yW]q:=A����yvS�?���Grו�@go�^tu5����?�������o���w���?�Y�w������W[���{e2_''?],E��T��f���Hdoy��� ���h`r����Z��*g=��u�fGAMN�%�u��as�u(��%����b"?���|�8S�����~��� �;���{������5��WTz.�n�?_P�����?3oy����*��ig��?�x8w��nM1�'O�O>�r�Q\$�Ԝ��Q���n�޻d}��G��=��v�� ����Cut�}������ @�Ʈ��l'�� et���XW>u�~�6��Au@7��dhy:@�;��O�k�uپA� ~�7��ɳ�>
��X�;y߯�o�ݦ��R��X, ��p�M�/ Хp|��ҷ��Ck�������{�(���{�G��5J��4�9����ޭr�
貹y�v�P��~%k9@7-}�e�xل��ʧ�:X�2*����U�(:���T��R��C�Mw�SN��+���s���� �-+����{g��T����eCC~W��OW���⸵�������J�WQ�����x�I����6r諅:X�������R��ʱG���g3����By;{���?����V�sf�N�� �%r׼�(������(~���d������W1 �Ն�v"������Vu�ԁ+ۨ�:ĵ��Qt̉'����i�{�����Y��Ր�������|O~nFQ~'�B]���lk-��<~����ɡ
�Ġ� ��i9eSR^0��*���fݨC|�&&r�n_���2�̼� ��%��e���֡C�MϿ�]�
���eW��-�Ҟ���O��=��E�|D�� ��U�5gv8uj>tu�]]� � Lқ�J���ƓNR�~����j���q�}�]��NgO^CM<�����η燍�ׯ��_�XS0���I�o[�o.F�2�L��N���{yWw㷿7�导 ����|Ž���~��395�#}ǻdC�0����]�N<@ `�o��`�U ���ۣU�X���R���Sq��ԁV�{U�Oˉ Г�d��7� ]���4U�ξ���OQ��n�`��{nݖ�oH��p���צo{�u���^���p�l���2Q�l#2ٖ�|n�J�����v4~�;���W�~���k^��˗u|�nFQSc1�������7Km��_��9#̭Z協�k��\��A<dڙ�S���^�j^ZE�tΤ΁n��eC�w���?�����7��%��������y� g�R_�;:[>{���˃7��uk8;Og� �������}���Ӟ?�X8k�L��{�:|��s�� � Lj��>)��|z����KX�\&oT?uա|d��u��A��� {�Ι��*�3-����oμ���t;��<q2�������c�����]�����u�x�g?O�׏En�g����7��(,U�����h�?��;���ʨ����+~G}8��w���`l=�$�[C�k���U��x�i��m(�8+
���9�5c��pD�v��JT�%d��E.������D65�+�˦FCF*�ڻv�{�i �.�ZZT�Qd��]�P͜��W�6��p^�B��#����/��U��sZ]3�0.a��ڢ�O��v�o���$��U�ծ���}�ٳ����i�h�i=�8z�& �+�p��vq�#���N�"�$��u@Wh��C�@�hQ���t�j����zu�B�M�A��M�z�U����*��.��Tg_;d����,��Inܩ�j��sZ�tI�v � T*}u�Lu�@����k�rY�s�k�:� Z�՛Auh�ӥ8�@�*8@Geo�9!�j���h~��|��� g1�W���]���V��h� B��V6Z:&��P"n������� ?/~�q���۪m�?n�Ypt��J֠�u�E5u�.a�U�W�2��]a�6Z5���j�zwk`��p��^u�]ڈcR���~��@'���������hh���e�{�g
�'�^�)۸4�mf?�u��jsuT�� �ݍ���@��>�j��˖ �b�2j?�u��f���Q-�_�nhh��5nj@WMw{�,�I�˜��Q��ឧ B� �b�ݭ� � T]��fU��w�V�6z����G?�a� +PT�nhh�ʸR�U���bU>�Z�[e4-
9��F�V-t�ͣ��V��Ugd�Lh�
�h᣻�A���O��~���J?��yT~�;Z ���@��ʯ�{̴���m�z�e�,T�8V��� � T�vm�CW��ݧ}@?3
�|�n�C?Sk��*~���ڙ�� T�6mЫ��G�i�� ~�oz8T�#�zGkc�
�QX���B�Wp�>iZe�7�s��z��ތOV�g)���͸�hh�ZzW[T>��Q���#�Ӣ��uN5�K%B�]LuC������.˓��
�dwD����3b���
��w1��\��݉J��;'D�6�dvH�FL3PM%'De>[��Q��&S�w�N�
�JLǵ��$#o�QXïIk �+�TPu�N�M!@ @U�EF��s��J�}T��:�؁��ъ��:W�U�"��@���Ϳ<^��C��{&�7�ʜ��w�iL�@���>tw��G D�6����1�T�4h�s�A
4P}�� �U�4�a��k�Q|����Yh6�$U���ŧ�������4�J��#�+�3��$:*�ϟ����x @Ui�6 �H�%�N�t�f��LM��Š���j��R��J_��[+ ��4��$�+���ޭfQ������x�wVZ���1�X=�^m2kCw8S�P�&��aա� a+��L�|Y4c�L$�(����打���r�]c��<�>����h��|*(�ʨ����i/�Jxz}�4XRʲyۀj�adUވ
��B�,�
صj>N&�̾�U���.��S�;���~������Y�M��ڛ�E � ���瘤�x�Ɇ���0��kO�Wħ����ȇ�O��I���i��s �vo9hUJ�և�Yx�T�����[1��6cN%�����{���a
�EMM�o{K�+Z?�g��y@�����U|@{�=@��}{��o�������evu���m��ܑ�%e��}I�gh���N���D�����iy�QF�O Ь��Xz�諌Jv�+�m�N7�f�G�u�p�����}�e�?08d�~��G�`����#6�������<qRx�s�`�ޏ�^y�~�Qs����o��i3�%F���0�P�.7���C��(�'����K��Ј�7�|㩀iƪ+�=3�ݦV�h)�'R����Ï���~��e��\+S)�O�E��k��?�I���� �m�̼�m�C�Ż���/�9�����k��.t^x�t�q��5���DwO�7�M F�h`"�����Q��_�jd4�� ��2>Eѻ��n�X�u�Ȕ�(�� N�E�O7~�;�Tw��]}U�ګG����pڴ�/=zT���;��c�����Ĝ�� ��}�����5��K �@ř���<jڕ0��_�;�bq��_o"�ծ �_U��'�4��x�t��M������N˽��(�iS�7O�pv�)=��)��;n��� ��)���h��D3��5ʗ$<hN� tV �)F�����S��l���h3�j
в��8=�j�]��[�+NY�t�����*M�����G���f�P� V^�}������7}��m� Tng�������Ib9-%�F�a�* @�Hu��zo�l��@{��a�uo�ɻ������}����cr��'ji)�
��i�v�n]៍���W��F�0f��?�u |!�2�mH�C�8V�y ���$>%�}�j�7V���`������3;;�ǟ��[8kf�ޜa��>�����
�+�����K���I���p�,u���B�?�a�*�ęeKQ��3{U0i�=��b���jeW�&���h�j����Q%�7���rW_�y�[��//|�����pk������:��ަ{�a���m�E.'�`�2�+����T
�':�oz�Q�B���{h��t"?6�o���K�3�Z/U0�a���<Dy��&�6cA���}N�W�h�/�u����k;:[>����K��d��F��m�z͎�~��ݓ����kn�����?I��'��U*L�u��_s�,L�n����I�)��Z����
S_b��6ms!��7������:�����~�M�QSS��88=+��1�)$Ο��������T�h��w����B͍����.ݐ?��|g� �����{O����� ��Cv0�ڢpJu ]�d��L��EB-�0#�Fф&�nm�Yu���Z?E#�Y#�j�I�Ty�ȼ������x�w�?�ɐ0�������vfWw�׾9��ҟi��'����ܵW˦&�� [T������7 ��xw�ꫢ3 S��]��~E��@E[�fb���9w2�~�Q$$`��1Y[<!hzq,�9ߟr����X,]�}� �Qa�}���ʩ������ۃ%��������/w"2��{����t�2��v~���~8w���򎷵��狃��@%Z�������C��c9+'c&���s���#�Z�Xq��m+�E�(��Mg����{��W�,�n����]��o��k���ϧ5
�����m?�7�;�W�'?˼� �;�XW��ַ'~�<v<���.ɼ���;'y���s�]�W��_��Em>\�",T�A��p�̮�}���+�^h��R� ����힤�b�V�0{M3-D�9az"?9�8�j�G^�+���R�l��9�Zd�&C�^���f�l^��t���p�lp���x�xoW����|�ˆ�D>��ٙ��_���׽&�� 7{� ��������-VE�d�o��ӧv 7X��x;jm=�-�L<�p��ƀh��|@��������p]�����-�������?�.� �����榻��`T� }�]�^&�I���[�|���3��?6����-���:���AN�#�}ԴN�]�6z�2��3�pV$� L?�6.\��0k�ݘo9���̃D��f�9�eC�m[����c���q� �K����ͅ�^������J4���/t��l�������~�����q~t𖞏��w�e�����k. ������?�_B�p�b����!Թcfʝ������&��(T_'���n�s���zr��E3��g�L��U>Q��2���T�� � U�K9���#GK�0^F :��2��n��6� =��C���N�����YO��4�{�qY6�:�=�Ej�П�]}U1=�_���w|��µ�Φ�K/m��dG4m�L$d�� ��ʵ<���1��4����!`j3�k2��yȴw��Q��Q����Mvbf. �9QP{���Q4���1��gy�_>xv{��K������)��+/�]�|>z������Ζ��ess��-=ڗ�"r9�ɟ� ?��8���*@�M�fvu�� @j~<g��J��r��2��' ��K����c;;,7=Q+N��sĴ���F)W�ޒ��k�̘���T7)ے�r~U-����N�Z[����{�7ܧ��G�h�K<�H�}�w�V|�|駞)��S�t��v)E6cR&��I}�l�e�ń�J}] �V�sh�����D�v�ӳ8�ꗪ_���za�����c�W�Qd��|��Jf�������Ʃ��^���nM�����ߍ����&_d����JEmm��N��o�9�*�h�=��dYz[mw�,̄��g'�9� w�5�X�svr���YFmQ�*#u�AFI)]C�hX<��� V �Y!���+�nav��h�>T?��i��yU>J�<&x�w�A��6��R�����)]7�?4OƬ}���W�Ժ�s�����N߇�8������a���]v����+oH�k~1��u��ػv3 @�.!���1���=��*ȥ&jTO/� !���qZ�O9�#���5J9;
fE��(���Y(>�"uS�^�'��8aZ�w6�ú���Nj�\����CYhglB�'#�m�Չ*��I8}Z��k3����V����}�흻�(�7\���ކS尢(�ZJ�̣H�q[q\�}�������*@���[��t����:�*��g @U����e���Jg�󣕹�y� ��bH�Ҋl;mw��<��^ڢ�_S��zM�Ps�`na\�ô���˖�>I������&�Wg�����`��L乖��vn�:Q��A���^��Nu69�Ά������ٴ��O�li�u�!m��6�}��o9��O��'�׿�0��w���`��ɧ�� ��*� ����R٢*�{A�M� tҐ��ę1̄VמT��);y��o��(T;V���f���Z�Z��y'�)����3v☰. �Uw���.�I:���F�F�}�aD�~y�w�U��>�gg�v�t�n1��S֐L���~G�W�l��?�Ӛ��{�������A�������}��20z,�L�^a�$�XCV����� �+���дw���U�l�na>�F��rz^x3&�E3�l���զ����o�����;3����Zv�Y'�c試���ͥ��d��F��˃E ��K���b����p6�༰�ޱs�~�w�e�w߮nX���_�7��bv0�����0�;t�t��\x3�VX�cHΛ�J �i�e?�$����v�z?7��*���*q>�$b�5L ��D�e~���� c–���nm���8��s"���/�O��/rR}�W��&߅A�,����Y��z�4j &�d���a��8����� ����ғ8��~�z�i�D�������:�c���8�l��~���_h�N5�h�V�e����G֤���V���}֎�k��W�ҫo�_�z�i�'��R��K�R%ZoM2�:�����2�2�4P�. <=,o�'��޸mV�_��7������٫����ɨ��r��ꅼX Zo���`� 7���� �eZ 8bZ��q�P�E�@}¬����B\zV;�J?�.�U��6���SO/�������3tThgl<cNu�#�G1�&�
 @mU�ZQ���x�Wʲ�y�7�L��s��<��իxe�aX�U���SO2�F�zQ�D�ʡ�D��pw��@G�.P�b �*d�@aU�#�a���I��ZW�N��0������Qʛ��6Y�ՓTO5��;��:*��EoP�O5����nR� � @{+�AK[l7;�e1ڴ5�*3�e�x�I�1�9R���z>�o*<a}Mo��� �Td�I�E�{����~y�� +�h�Ah��2��A��)�!��j�)Z����G��eJ��L�͈UO��~��^f%h�IL�}����(T�2~@�0��0�� �l9��sHx��;M+4*ktK��~�!o�ʭ
�i_�����ˬ��v�1tj;�x�@�+]��F�;� `�l�zt}�I�_�UI.�]Gx����u��q��W�ٖj�Ơ��qk���]I�_5������������t����h1Z���j�^a���4����_Ao��p�zX�(��T�x�z i�;*���y�zc�6��k���/ڢ:EkD�:h�Xz���m�;~��3��<t�b�#�a����̈šY�Y�}ގzɕ�ʷ��3VT#�w��jJ� @�#�z-F���맦��ܓ��W@9�\\)W�ؙ�K������U�!P����3&d����̪;8��@�0�y�?W��Й��1.9ڢ�i��*`z[\�\�jl!:�r�j�L�o�&�����j*m�3�B5�Nm���BJ� @�K��W�k|r���<���i�!�ud�E��Z�S�EM�&r��I/ �7�������#� \R+su���Tܨdd�8�`*r����!Ӟ�Oͷۮ>�vC��)}�NX� ���d�����?դ��TTu����Ah��4�gia�W������1+
��"䄘�Z�{� à=
k�p���P���v�7y�Ъ�M�1�gZ5i��Ƭ�������&��;,�5��֑R��ߚ���rʢ�ȗ���O�� , �~aWL����j$c~=�j�;�ר���>��������ǥƧ�d�X/�=_��oړ���n-Q���Z�4_�@}��ݓ��B8c#9O��Ƭo_�� h�la�/�RKV�G��؎΍��qd2fq3�>})�����L�+&�"ʑ��s�t��j��g�9*��/d��Je� ���>�7��Мq´6ۉ�c7�!Q��qdhV{�r�D����ژ��(�R���S/S�ز��j�̘���v�sH��� ՀOh��qu�Q���k.��+��<z�ٲ��3w�5����Ï�{ @�•�*?�K��,�l��)2�*��C�,@��\ ����+�����#Ջ- � Q&�Zœ�� Ћ��(���Z��USwY6EΟ����e��V$������==����l��ZU��w�I���}������a�8�>�8� @5ej� r�k �<�$ڢp�&� בޠ�.b[L���]VwBe�y>
>�ԋ}�P�n�W��2cw�:�eM�5�p̞@�0��+&�������do�1���K��][66d��Z���?��Ȝ��2���3o~��{f������evu�����sG�d��}I�g���h0�&*���"�
�����tfrA�El9xX�LF�Ր�W��N��qW.��acsTs�7ZmH]5�<U��+�~���,� q��������3Ʃ� �%���}��}�+ҳy���4X�����W�����57���6:�6��4P���Z���Nr�~�>Y"-�Cx)�~������L�y���{� 㜩�W}V �
��������m��=m���/�}��������c"���}r�_������;�V���Ż������fo����v�х�Oc.ݐ��Ňm�����Y )��3z�:h���s��Ӵ�� [/�SK�3��3}�%��LԊ*��VP�%lTC�縫C�v��Ϛ��5�?�t��{����e�����ooK� -ȧ�5�Ӧ�w�ѣ�_ܗ�?z,���rv!1��ߐ���K9�+_�� � �,�c.���j������˵���ubBF@;�Y��e�T���Kn��ea�L��V��v�����j�[�N�T�ng�s��0pՠ=(=9;w��:d"
N�Z�֠)��=�8>uJ�F��ۢ�vu�}�)������}�BE�T�g��ѱ�k1/�S�X�� �և��Fu�����;'�F?Ъ1�I��8���pP5�eT}����;u8gv�7�%��S�KXG����HD�t]��bΎf����� ���9�����~�} ��zqq����ة�����9�qJ��+��<���n�ɷ�:��_x���@�C��wW����j��q�'C�_L���YG��L�8F߻�4��T�μ����ڷ���}�8ji)�l��i�v�n]៍���y�$; @�B��s<Clt��率��xa���k�Z�uZ����C�����V R5K��j�� ��� y��R�>������O+����@~�����X�c�P]�b��c� ���{z��5�=K�v6��������/ )��b����Wn*w~�9R��^���q��W�n�u���7��d��j��]ۗ+4�~�A׀Q����l��(E�����/� ��>����7������B��m{qQ�`����Շ�[J�4Otd ����|�87�'��b/��5�T���4{B1�Qp>i�MF{l':j�+���6]U��C�Ȫ߽.����mȭC+��B�
����9���.T��ϞO+��i�1ˣ�z�k�L{���v��7箻�p�Źe"����`�Rz~������;�rѴi����izW\f�V�m���W�S)\�4G�� ��}���ط��a�zӣ𒸢]����
�c�gW�AL9}�籒��L !e���2 /�Y�E����aՋo�p>Kب�a�s U��NٍQ�^����O�==e�l��ߔml��w��Sҷ�˻tC!������Z���ޓ��g�h��-��q�a�<� �#C���������#���&���|_����yu@��ꈫC�_KzV�����9?��.���Yʼ��k��7\\��l��ϴ}�������e�9��/�����UW��M_�;w�U�_{s�mo��t�8[�ﲋ� @m�d'��]�7/ ��3�|���r��ck���qXr��i��m�ej�����1U{�lҹ�S�a�v��n��z?w�:2�G�ԁ�+V�:�n�������.��T>���p���@��{�k����3��׭ɟ�=�P�tI8w�����G[���Vd�plvP3T( ��e9e�U�y�H�s�^z;m���vbQ4��V���>�/��6/Z��MQ|���������3X��x�������~a��� K�L��c����d��9?�z��o}�xy_�󷤜��oc��'q������>���'[?�g��=��x8�p�e�}������ze1=[��� ՠE�[�m�3gv}�����y�8H4Pw6�Y���a?���g�u�3"��H�nj�F�������ˌ����5-�߶��I}~i���x����ܮ��E��.lW�<��wN=�<�I�>�7ߔ��Rg��i�ԟZ��ۭ��Sݟ��pa~�nC��������Q�h�����Yx��޾#w�u����ޖO������y�n�MM�o}s��_��������RqR�>:��W���� ��6�&�^�g��L���ˡS8�G�Mu<��>��8�XP����9��=/�tz ����R�}i�9l�k9�9Ɂ�Wz����{}a����g/z�uJo�A�8A� @�O�+�| �s{���}��v�W�>��_s�ö?�_���;{kKϟ~*(fhu�����?�_�c�|��+/S7R?���� Pۮ��?�>�Q������"��d���~���+
��k� ����U~�!�<��U �WN�:?su.�?M4�ͽ}�Ň������'l�=&=�����/�"�_ ���\���m�
�\a������@]��z|O��;y8fe���^�Ћ��<���oo�%�K��0��o��󝽻����w}�d"��+��S*F宾���͎Ά�}��+g�W��:��/��ԏDӦ���40ʷZ�FŔk��(пu�0ě9�RhM2Z�]�����vr ���`�W�s:����#��e�Ơt���nW���%�E�)^���!  �N<�pLg?r4��S�ZV4e��������[��_�J~��B%i���VJQ��������@�f��q�G��� 簦ݪ�k�r���e���ޮ��r���L�/����^%�%�t�c�}�F�w�f����]�����_r`;6(2���;o�Z��t�zfp�zZ�Vd3�r� �{����� �ظ�K��S�]� ���
?��?�c�Ĵ+e�s
����S��hu�ԁ+�(
��l��jH��L5��I��AdO��Z��R)���E�
w���[���|���m��o6�"���#S����t?��O����G� ��_�gbW��
q_���Y�)8%
��I����ZZ�Q���Ah��7�Q���p�|C���M9�"Ӫ ����;�Q O5?���p�mT��;�E �ϲ��<w�ե�~�H�@G�'����Q8.������UJ�;򳨥m�^yCqK�k�uE�]�� ����sg����?�F�/L}r��b�-G%�ig���G�!�) L9!<!���9[G,�whpT��m� NW���]VMe� �c���u���kL�N��Ϝ�i�6�}�I���i��8+�ɓ�E��B�f��s7�$��̾��� V�������Ʃ���կ��J���s��~���>�\��9��=���e��5��,I��v�*Tz����7�Q�� ���#�q�n�ia����n��2�/�X��vYNK-�wK=ȡ�O��4��x�:MS�9���;-W_m�.���G��?Nх�wk ���/����-.�-m;��׫/�n��7&z�x;X�4�W�ϟ3٦��|7g������ٓ\�]�KwOόvK�,y���Ʋ�R`�@���7��;x���(��x�EB��$�8�;�#oql˖e�f��މi�o�h�3�|>5�(��h�9WS�{�w~�K���8^��?����?����3F��
4l{ʢWw����|*N���me��G�~��U��c�ǒtoY�^[��0�W�D��=׵��⥴�x�b��"�����q��A5�k�o�?@X��o�f�i��y<~,W p�����~�����-�&�!*��W�}������?��Z)q����>�������qr�D~�}ՠn��:=���8���jX?��������A)�'���.�x�;����LU}q�x-����?�s�=�w:�|~�����_g�WM� �\��.D�7z��.�O_h����q���`qR�sZ�A\:p=�L�z4�����C��m�~��J�y7}�g��?�8q�m��|j�/����s䝭�� h�:8%O�[A��z(�� #��''u. /d�ki�o��U!��[��ˎ���\~|zx8��������(
����|m��/��y>�I��n�3֠�>;Z�^��7=]8`� 'ܭ�2C�y���;���s\�\�3Z��Ѿӽ����B��8�l�4~ɻ�!����2����$�'=�["�϶���S�� ��Mk��;��������do��:����}&tZ8'?��\��ޱ/�H�f����%��҈0a:N�%�0qa��s�`��-�F�,�)�N���S
@�H��[D?Ҳ��\L��Wҵ��[�&�[x;I��^�)�������fZ��0�C�}�U�x{҆�0q{�Qn�p3�ky�
�P�����4�q=��Ȗ&�+���\��Nw��V9���IA�����Ue�AU���~c3-B�_l��U-�)x}�е�ڥ�ԇ ��{��u��vu� l6���K��m-���$���ܚ>��T`�j�}�ۿ������ѷ�4�gz��|kl�o��=�a�_����d=�V�=�L��-S���z�_� @�6�����p�`K���(�^w�twf85�~:[�3�����w�w٪oOY'�$���2W�7r��' {����4MoZ7l� ~����V 7̼�g@�6��S}"[�L��ki�R]��a�N��퓎�{-�~�;(��/G���W7C��+m��2W���%E�a�ÀO<&0LP��)M��4���n�p��[%�(zh�N�"��pqg�y�K�R���v'���4?�M�y3I�� FWR�1ގz!�����o���� ��~sR�E��0Am�´�� S�6�����]��THh5Ww�[x8�Eݷ��k� :�U�����cq����b��o;��b�XMȋ�����:\Z����Z�^w��0�a��M�X&%LM�Jv��0�o�T<G�~�Q�1�m��Ĵ�H>��Qk��=���ޟ��Zn%Co��g?h��>��!�Ccm"�����]�~9���P����0�ߘt6d�>=�5=�I S&t��dn�p3�["�o@���U�?Z���x�t������� =q�4��[��uVb�/�c�$������o �����߿��aH��N��11=/5��G��� 7@� v�������3
�+�
�o�X�N�`�ݟ�Vm,+�l3m-��G���5��{q���`Ջ{��s�śl��ݛ}olE�s��5�: O/���[�j�of˫v �蕴w8]���R�U��l��@��B��/�y�7�v��ɇw��0{�;�j�z�β��li�#��� �ƫS�'���+�Z�������~�W�-M���Q����T<�I�"��XǺ7��O�U���>׃��|�h� @��l�(�91�H�mU�h6���Eӟ����ǩ������S��8�_�ϭZ ��KÅ-7Ş�sQ���ܪ!��Å齖�J�g���܏�Ï]^?�n���ퟝZsKY|2_�V�, @��ϓ�O����w��#�p�%1�H�>ݝi+���B�뵷:~)��d,�oi��V7�*iEO�fύ���ȇS���(<��޲���T�Ζ\�Xr4N����W�TU�K�ѥ@�����^Jz�N���4��GctȈO�m�ԳU��nm�� �����^��e��ZE�w{�w�
Tv�g��B�3ʱ�~i�����ώ�.�͇��b�;9��aX��G�^�f@�>4D�3G�5z�m/ː�Y�$����
����P>��m�|]�0;��}�=�/ߠc�\:��XW�n��r�A��(z>�O�ar��?�/�\5g
��3�5���c��V �h�q,N���O��Wn���/F!w��pS�і��M!���
^O�?�Ό��p>z$�pC�Ӵ����̖�.?�[[�s�T}<�����W���Z�>��C������@���7�l�fb�u����YV�=�5�βx<��P{.�O<���m���|��؅�����
��������l9<���vCz�uX�\�r�rg�5*�������R���u����"?'�M=Q�@�ʆ�3�M���'E��ѡ$C?��OJ�{��֗>U�g���#q:�,��e�$=:�m+U�P>��9F @�6���<��t$��٪���Sq2��6�{�,d���=��o�X}g�2[N7p����;��*�͉���-Eqx �9}pv��b�s���s��3� l8esZ��i��:��.;Q�!Yn�ʶl�4� C��kbt��ji豽*�-�m�-q Q����̤/{�*w���М��hJ �B&�ב���>���V�h`�;����5z����X���m+��&'F��ӹ��(F+ˮ�ݒ��U��|��bc�{;I�i9�$\�FK+��/'��Ϊ�$\��8 ��ֲ��!aWY<X�@�M@�n(Ǜ\�nK.���8y���B��Z��-kҷ��}u�.�� ���t���M�=��i�|*�_MzOy,�7�(� �ïq��S;�b����m͓��� � l\�Q�Z��y�N-� y�d��l
���r� 3$��(^�W�G��n�����8��+!1����)w�U�czs���z٬��4ps���$}=�?��#�D���t�\L����k��\U]"���4U �ʲ;)\�,�G�_C��cq�B���Y':�׿�,��g��� Q<�����(��e1}s䞲�����=�4ps:�o$�7��Y��3���3M���Z �'�$���֪.��[��c��+��:�?K{�Ǟ��p�A��߄@����Ț=�M'�x�Bu�$��U�m/D #pg��]d[,9��&��/���$�Z��Ț���-��B�t��u'��h��f��^��t�vkU�SdwهQ=��_45*���˛E全�`Κ|�t��b��x�e���f�9$�n�rrx}Q��v� � lR!�M����{I21I�7���SQ���XW�*�(���rs�jU��՝rP�!;�>j��eq{��-��5'�(z/N�N�ǚ���5��8�;��r>�$]Du!����&D��U����{2��EqG��+
�4�/��$9���<ŧ�d�1�Y�&9��G㦍tR�L����$=S����#���������>o�������8 �9�:�Cs���E吘�{Vr��U�nt�S�|U�l����ԯ����@��*7�S�����K�Scq9��3q|6J�Zp,5���WV��̣^��5�Mӏz��߼ީ��򌥺 ����~y'|t�&+O��ᯘ�ʶ���l�B|���wV��"��B�44�z���~H�M��Uk�K����c4���&F/��?<qӆo0�f�W�w,������.$�=��x���7Bkh���|�d���$/7]����,�U1zؔ#��G�E�Ug�S�a��;g/,r�\��!do��]M��[�B�f��/5��%D�;��Q��7; O�ɩ��]<����)/4ݔCt���w3�"���(6E��)ɘ��\oE��`=w��u�4�^��f�z�`��@�����U���ە���uatS�� �g���by�u;і�3��1:�똯�w�nU���k�p����J�ꐛ�5K�[��7ۚ#�m�6�L�5�ί��UM�G���f�g��LT�~�_�4�u�$�_��t\i�[ g��\MaF�ۛ�[P�5��D&@��QDM�����Q�:u]��J��P�z3b�i:�EQu��u�E݆��rb��<״��5/j���k��|չ��O��@�h�@�6 @� 4� @�m@�h�@��� 4� @� �!h�@�hC4� @� 4Іh�@�h� � @� 4� @�@�h�@�6 @� 4� @�m@�h�@��� 4� @� �!h�@�hC4� @� 4Іh�@�h� � @� 4� @�@�h�@�6 @� 4�@�_�z�1w���yIEND�B`�
function circleLegend(selection) {
let instance = {}
// set some defaults
const api = {
domain: [0, 100], // the values min and max
range: [0, 80], // the circle area/size mapping
values: [8, 34, 89], // values for circles
width: 500,
height: 500,
suffix:'', // ability to pass in a suffix
circleColor: '#888',
textPadding: 40,
textColor: '#454545'
}
const sqrtScale = d3.scaleSqrt()
.domain(api.domain)
.range(api.range)
instance.render = function () {
const s = selection.append('g')
.attr('class', 'legend-wrap')
// push down to radius of largest circle
.attr('transform', 'translate(0,' + sqrtScale(d3.max(api.values)) + ')')
// append the values for circles
s.append('g')
.attr('class', 'values-wrap')
.selectAll('circle')
.data(api.values)
.enter().append('circle')
.attr('class', d => 'values values-' + d)
.attr('r', d => sqrtScale(d))
.attr('cx', api.width/2)
.attr('cy', d => api.height/2 - sqrtScale(d))
.style('fill', 'none')
.style('stroke', api.circleColor)
.style('opacity', 0.5)
// append some lines based on values
s.append('g')
.attr('class', 'values-line-wrap')
.selectAll('.values-labels')
.data(api.values)
.enter().append('line')
.attr('x1', d => api.width/2 + sqrtScale(d))
.attr('x2', api.width/2 + sqrtScale(api.domain[1]) + 10)
.attr('y1', d => api.height/2 - sqrtScale(d))
.attr('y2', d => api.height/2 - sqrtScale(d))
.style('stroke', api.textColor)
.style('stroke-dasharray', ('2,2'))
// append some labels from values
s.append('g')
.attr('class', 'values-labels-wrap')
.selectAll('.values-labels')
.data(api.values)
.enter().append('text')
.attr('x', api.width/2 + sqrtScale(api.domain[1]) + api.textPadding)
.attr('y', d => (api.height/2 - sqrtScale(d)) + 5)
.attr('shape-rendering', 'crispEdges')
.style('text-anchor', 'end')
.style('fill', api.textColor)
.text(d => d + api.suffix)
return instance
}
for (let key in api) {
instance[key] = getSet(key, instance).bind(api)
}
return instance
// https://gist.github.com/gneatgeek/5892586
function getSet(option, component) {
return function (_) {
if (! arguments.length) {
return this[option];
}
this[option] = _;
return component;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment