{"url":"https://api.github.com/gists/2066421","forks_url":"https://api.github.com/gists/2066421/forks","commits_url":"https://api.github.com/gists/2066421/commits","id":"2066421","node_id":"MDQ6R2lzdDIwNjY0MjE=","git_pull_url":"https://gist.github.com/2066421.git","git_push_url":"https://gist.github.com/2066421.git","html_url":"https://gist.github.com/mbostock/2066421","files":{".block":{"filename":".block","type":"text/plain","language":null,"raw_url":"https://gist.githubusercontent.com/mbostock/2066421/raw/703d310b399098a243a76a50bc209167e924cfd2/.block","size":17,"truncated":false,"content":"license: gpl-3.0\n"},"README.md":{"filename":"README.md","type":"text/markdown","language":"Markdown","raw_url":"https://gist.githubusercontent.com/mbostock/2066421/raw/9485612583c52e369d5f9ebf590d69e1c43f7e85/README.md","size":126,"truncated":false,"content":"See my article on [Krzywinski’s Hive Plots](http://bost.ocks.org/mike/hive/). See also [link hive plots](/mbostock/2066415)."},"d3.hive.min.js":{"filename":"d3.hive.min.js","type":"text/javascript","language":"JavaScript","raw_url":"https://gist.githubusercontent.com/mbostock/2066421/raw/20d2a264f1fdccab6c7b7ad1e8ea5e2dcb51cbf2/d3.hive.min.js","size":1486,"truncated":false,"content":"d3.hive={},d3.hive.link=function(){function t(t,s){var u,h=a(r,this,t,s),i=a(n,this,t,s);h.a>i.a&&(u=i,i=h,h=u),i.a-h.a>Math.PI&&(h.a+=2*Math.PI);var e=h.a+(i.a-h.a)/3,c=i.a-(i.a-h.a)/3;return h.r0-h.r1||i.r0-i.r1?\"M\"+Math.cos(h.a)*h.r0+\",\"+Math.sin(h.a)*h.r0+\"L\"+Math.cos(h.a)*h.r1+\",\"+Math.sin(h.a)*h.r1+\"C\"+Math.cos(e)*h.r1+\",\"+Math.sin(e)*h.r1+\" \"+Math.cos(c)*i.r1+\",\"+Math.sin(c)*i.r1+\" \"+Math.cos(i.a)*i.r1+\",\"+Math.sin(i.a)*i.r1+\"L\"+Math.cos(i.a)*i.r0+\",\"+Math.sin(i.a)*i.r0+\"C\"+Math.cos(c)*i.r0+\",\"+Math.sin(c)*i.r0+\" \"+Math.cos(e)*h.r0+\",\"+Math.sin(e)*h.r0+\" \"+Math.cos(h.a)*h.r0+\",\"+Math.sin(h.a)*h.r0:\"M\"+Math.cos(h.a)*h.r0+\",\"+Math.sin(h.a)*h.r0+\"C\"+Math.cos(e)*h.r1+\",\"+Math.sin(e)*h.r1+\" \"+Math.cos(c)*i.r1+\",\"+Math.sin(c)*i.r1+\" \"+Math.cos(i.a)*i.r1+\",\"+Math.sin(i.a)*i.r1}function a(t,a,r,n){var e=t.call(a,r,n),c=+(\"function\"==typeof s?s.call(a,e,n):s)+i,o=+(\"function\"==typeof u?u.call(a,e,n):u),M=u===h?o:+(\"function\"==typeof h?h.call(a,e,n):h);return{r0:o,r1:M,a:c}}var r=function(t){return t.source},n=function(t){return t.target},s=function(t){return t.angle},u=function(t){return t.radius},h=u,i=-Math.PI/2;return t.source=function(a){return arguments.length?(r=a,t):r},t.target=function(a){return arguments.length?(n=a,t):n},t.angle=function(a){return arguments.length?(s=a,t):s},t.radius=function(a){return arguments.length?(u=h=a,t):u},t.startRadius=function(a){return arguments.length?(u=a,t):u},t.endRadius=function(a){return arguments.length?(h=a,t):h},t};\n"},"index.html":{"filename":"index.html","type":"text/html","language":"HTML","raw_url":"https://gist.githubusercontent.com/mbostock/2066421/raw/fb43d7181db256098ac05c0b9ec0960385a417e0/index.html","size":2636,"truncated":false,"content":"\n\n\n
\n\n\n\n"},"thumbnail.png":{"filename":"thumbnail.png","type":"image/png","language":null,"raw_url":"https://gist.githubusercontent.com/mbostock/2066421/raw/fe48b6de5ebba2d71ed82da629faed604d84cdd6/thumbnail.png","size":10031,"truncated":false,"content":"�PNG\r\n\u001A\n\u0000\u0000\u0000\rIHDR\u0000\u0000\u0000�\u0000\u0000\u0000x\b\u0006\u0000\u0000\u0000�\u0006��\u0000\u0000\u0000\u0019tEXtSoftware\u0000Adobe ImageReadyq�e<\u0000\u0000&�IDATx��}\u0007�\\�y����>;m{Âh,0E�\u0014I�bT�$��Ȋ�#�J\"��Q��\u001C;��c�$��c+��#���H�eUR�EK&%�\u0004(� !\u0014�,�\u0005v���2������Y,\u0017[ff\u0007�{`���7��{s��}���\f��\u0001\u0010f�,�\t\u0013v�Mc�I���g\u000F��\u001E�����#�L���\u0003���\u000Br{[V\u0016���a���8s�\fr���\u0018�\u0003����a?\u0003�R�~6��Ï�\u001C�B6�7,� �8���;10��{�C[�).��i���\u0006��]����/�\u0014?\u001Bx\t�\u000B�xg냸��\u000EU�0���\u0017����'��`{\u0010�{#���\u0017\u0017�63\u0001��Ės)\u001C\u001B;��C���\u0017���î��8aU,l\u000B��Ue\t\u001E�\n�����\t\u001C�4��;�x��\b�o\u000B 춊�)�)l��d�$����?�%Ɣdv�\n�Ŕ�Y���t��0P2|�eU��?�8����D�g�o�S�{_\u0003�\u001E\u0001P\u0001La\u0015��\u0007^�\u0017_�{\\��E����n�0\b��@f���u(�\f�\u0001�a1���,�t�\u0017O�\u001C�G�چ�f~�L\u001B\b\u0013�\u0014����\u000F�Kg��g�_�p+��V��uD\u0003N�aw\u0018\u000B�IL�-#�ɯ\u0000�|P��b!�ß>u\u0011?:=��0�>�&b\u0002��6�xf\u0019�<�$���SX��9CJ(��\fS��m\u001A�̗�\u000F�0:���T\u001Cٜif�4\u0006PMQ���<~��SxםQ|�64���K\u0010�\u0014�ڞ\u001F<�ϟx\u0014��\u0003ph6�4G�;�Lp�aJYUAK̋�ώ��8�\u0019���\u0019�J�A�L�\u000F��ӣ8�=�?x�\u0005��@\u0013��\u0015���6�8�/��\u001E��\u0012\u001EJ��%\u0011(C]6o��\u0018tw�\u001F�5N&o��E�\f�E�R�h�I��>}\u0019G{g�\u0007�q_�H�\b`�P�a���%����<\\\u0016Gy��\f#\u0006eD\t�Â]N+\"L�v1\u0019��̬�[J��V\u0005/\\��ў\u0019|��F|����j�8�f���7��R��đ/��/�\r��$g��\u0005ʵ\u0000�2-�rZpW{\u0010\u0011&qI�-�������_�ハ�������\u00040_�vf�\u0012���'8[�/��7^�䙼U\u0015\u0005{[��]��\u0004}\u0015:)\u0007궩xup\u0001���q��1��\t)����GO�c�>�Xr���dE�i��B�\u00117��Ǽ88�LN�~g�(������'�#�^��_�\u0013_�`�ן?���?�d>�K鮗\u0011��\r\u0003F��S\u001A%���\u001A&cU\u001E\u0014Zm\u0016&k�\b�SO^�g��\u0012���\u00040o{�M-��\u000E}\u000E�z���yXd�:��@С\"�p9��K\u0003h.o�>��U\u0003\u001F�?I�6bQb�o\u001E\u001D���v\u001C�G\u0017�\u0017+�y��p|\u0002\u001Fz��<\u0015bS�P��;��\u0017\u0017h2�kl�\u001Fu��k�\"�\u001A\u0016\\��dۨ*�;�\u0003pٯe�bZ����?�fo\u0010�>7�=��ϑ/\u0000ҥ9��m@��\t5\u000E/��oi���6A�$���+����,_���vtx�3�\u0016�lE@��d6�'_\u001D\u0015\u0003n\u001D\u0013\u0013�ב��\u0000�,��\"���W�;BA\u000E��0$�\r�6\u000F\u00026/��.KE)k����L��fZ�5)�:��l�/��Y���2S\u0014��r�2�Lvb�\nZ�҂E'��x-�X W0�ve~\b\u0017f��]���\fa_8Dp�(�hFYM�lg���\"\u0004\u0017�\u001F=o�\u0003ހ-��=�����N\n\u0002mUn(������ǒx>�\u0012\u001F�:\u001D��,����\u0018x\u0002����KHd�e��\u0012(c.�J��\u0012�\u0010�TIA#�!���<��/\u0004{�cT��d�f#j�1v\u0013�V\u0004��2��X���\u0003�\u001Af������\nj��-���ӝ\u0013b�\t)�����Ų@I��.\u0003\u0007�\u0011�)+��$Yk]a\u00062*��o�Ѷ5�\u001A��5\u001C\f9=ˎ�o�פsvj*��ܦ�\"\u0002�j\u0010��6\u0015r���1P\u001F�2���,�\u000EM\f@���\u001A-��9��|��d,�\u0014�S\u000ED�`���h�G�:Cha�Uc�Ń:�\u001C�aGh�����y��\u0016�Pi���Hn\u001B� \n&�Χp�_�Y\u0001�\r��b�I�\u0017��� a��W\u0006\u0019�Y6m��\u0011���O3\u0003d�+�*ʺ1(��\u0010\"\f�\u0006�7��~����|�}�\\���([N\u0017S'���\u001C�B�\u0012E�J1\u0003\u001D�\n\u0006���\n�I�>�%�\r�������dP\u0012\u0010\u0003v\u0017\u001A�^d�|٠�Hk\u001D��\u000E͜����\u0005�2�\u001A{p��4\n��ш��\u000E�}\u0011�3)�\u0010�՚��|�/�.��1�5�Tl��\u0019�*cچ@IK\"�s9\u001E|�\u001B\u0004\u0005q��6\u0003��u@)\u0017Jrvj)���*\u0006�\u0000�*\u0019�4�\u0017�-E��`�\u0019��\r���RYR�@\u0018����r_m+P��~�����m�=5YC�g\u000F{-ȟsF]+�i���q[py,�\u0017�UJ\u0004'mf\u0016�\u001B\u001B\u0002��W�Z�'����6�\\b��4N\r��\u001D�\u0006#LH�\u0015;5y\u0011s�Œ\u0018����\t��$l9��\u0004�����\u001B�x+\u001F�\u0000b��\\\u0001\u001Ep�ja���ݽ\u0002����4��]��Ւ�z7A�u�1^T��\u0019�n�e\u0014�\u0013�\"����Y1\u0010\u00050_k�\u001C?WR���cA�߿%ۭ\u0005%\u0015�70P\u001A�QRޑ��aLI�Xܞ�m��\u0001��*��ZÎ\rW�Z�,��%��ɪ�\u0011P�|�m�lH\u000ESy^./��\b`���y\\��e\u0000�Zٓ���\u000B�խ���\u0000\u0018����\u001D�T*(m\f�\u001E�{�\u0006�e�5\u0004�5P�Q\u0019]c�^RĘ�N+� ]�^[�G�U�6�?&0%\f�%�cY\fH\u0001̂\u0019����Ė�4�1�P�q#W\u0006[\u0012�\u001A�Q8-��S\u001C\u0004f���S���W\u0019s6�Z�>���\u0002���^?��l�\u0012�)s 2��?|aT,\u001B/��ʿ\\H/mY\u001Fk��\t^�fc+��