From ab1119fa0a1c7ab02a73f059c97b6dd53831e513 Mon Sep 17 00:00:00 2001 From: "Ilya Ig. Petrov" Date: Sat, 28 Nov 2015 18:04:33 +0500 Subject: [PATCH] larger fonts for chart --- README.md | 2 +- chart/README.md | 18 +------------- chart/host-lookup-chart.png | Bin 0 -> 14045 bytes chart/preview/host-lookup-chart.png | Bin 12945 -> 0 bytes chart/src/data.tsv | 16 ++++++------ chart/src/index.html | 37 ++++++++++++++-------------- 6 files changed, 29 insertions(+), 44 deletions(-) create mode 100755 chart/host-lookup-chart.png delete mode 100755 chart/preview/host-lookup-chart.png diff --git a/README.md b/README.md index bc66afb..30d1512 100755 --- a/README.md +++ b/README.md @@ -1,3 +1,3 @@ # Антизапрет PAC-скрипт -![Host Lookup Chart: Time-Memory, Hit-Miss](./chart/preview/host-lookup-chart.png) +![Host Lookup Chart: Time-Memory, Hit-Miss](./chart/host-lookup-chart.png) diff --git a/chart/README.md b/chart/README.md index b2c8720..7adf762 100644 --- a/chart/README.md +++ b/chart/README.md @@ -1,18 +1,2 @@ Dual-scale-D3-Bar-Chart -======================== - -This is a demo for creating dual-scaled bar charts using D3.js - -I came across this task when I was working on a simple HTML project. As I googled around and, unfortunately, could not find any example, I decided to do it myself. - -Please bear in mind that I am new to D3.js and this is actually my first time using it. I had heard of D3.js but never used it. - -Hope that this could be of use to someone. All suggestions for improvement are welcome. - -Note: since d3.js uses ajax to load tsv files, the files contained in the src folder cannot be run in a browser using file:///. Execute the following command under the src directory to create a HTTP server. - - python -m SimpleHTTPServer - -Use the following URL to access index.html - - http://localhost:8000/index.html +======================== \ No newline at end of file diff --git a/chart/host-lookup-chart.png b/chart/host-lookup-chart.png new file mode 100755 index 0000000000000000000000000000000000000000..82346047da36934c40d29e9f6926541ee576c1de GIT binary patch literal 14045 zcmeHucT`i`7bb{`hyfd-0Rcq?0Ywp{2?$6N3DT90C{+kO)S#juND)P;0Vxs)Rp~Vk z^Awa`LWdCP0Rjj~qy*+Bpikd>zge?p{+L;_et)o7xw-e8z4zJs+u!-lP3TRC8fY(g zF9QPuNJIUaE&~Ho0Rsc$={-AuD~}<{XMul=?z(D94EZhG)4+$Fwu)Mc3=Hq0Sl6v~ z0iRi1)Ni{pFtA~0e~k6eth)>hm)$h3De8Nh&keOgxowkit}W>2n$|&lO+cg#NCNdkP&@&dlY(0P zc47vj`)&{k*!ZCOB#4QDfe)0W>;WD9o3C#g~=yfd1 znmE(!cB#V!M!%aZV+=lzE?Ta0oQ%~*-#)L~_}lhm1E@6{J`s zv)Odq4D_zLE>{tVPaA&MgEWF@;c{f;xEyT+lpE*BD}ffE<9rMZSIpIEQu~xx?4zQQ5|=Z?Gay`b;ly1WFOO(m za-|3E*!s8tZ!-DC+g0-F^0z124nzm|4S)06u|LP5)lo^c)g@K$eF;XC6zbH@Y3LWt zL?ZLdGP6;p0u-zu^P%yRv$!K6%KytyO;KaZZi+?jtAR{BWNpyn0TAnBZ%3y!JZ&}S zgh`88#<#i z=2C*>vTY6go?SKzAB%h`f}Dp}P=b1TPI;|2?BUA$U^g)5ywfjfWZ(=4HaKZ03mEzQ zw2TB>jv1`4H39P8G)@OsfjChYQ=w-uY}RGuUlaI^B4hHT-7>HVxkIj{rC0;g-Wp7n zju#)iHN5$4C~!OC_w7G2XTf5oz+9n z-0S?fz)W{^9eJ`Rn3^XAwwL;LJEg3Z-DLJ^Y@iAyxz=jrBhtvZmQ3XDEI{>~Kc7-r zyx8PtFi`CRABUFJAV|dSA)o9u*l<;)Pv9JplsCDG2!XXGZ7%RrobRXmtRJ`p_kR4k zZ0<5iP5v!UO#ptvBn9oVdlRT{4U8Wp5Dq8xzYHLamZg~A&bAOB7PtD%9V({F%))&QsEW?G6Cp3=aO2dvTTKKXAN{dzC^u8 zGNUE#cPzk8*M!JkugOKdN?onzPXWy>!R`eF7Ny)}s?@*;7gVvEc+Yj%TKEJGBIlq@ z6@d!2UA5Jf1o?+`H4)_-{=2DHgL9(H?+1|GDRpc}(cIdi71?d~0x| z{}+uq;^-L&!XjYp3-cLJ4wVqL_B5Q8*R;ymc~GL=DkYJ9Kd{;_fz=MW4U7_ilDd;D zhVPtVuV8l<%zAr!iEmHH=HrkGM$eoMGunWQe*_FZF47cEKLe7L=kbKu=nsJ%{jV(d zEy(wHBzMn4;z=_yZ}El>CY(w}KKG124*t0UyG~1~vw3%%zpl%kesSgorgeCe&!y+j z1J8pQ85m|?4T$dp?zqcfe-!w)q5|Fx01rHx_T6)f3@hN;80Y`$S09mhPA*6O$ylUh zlO}0wjATwx%4c4*A+n3HfJaPnU>iI!onckhO3pWP)BC z6*>=6sDP216CaA3)_A#&_m>tGZep>oE@_%CN6Z1Mezi8>O4<<{toxGC9g}AE?0VwY zJVj3v?$ej_Pl3?hQq&0oNq`+m6<_xlon4VQ6fW5f(Slxa#IgWg!89l9Yu0K@ z_0xA%G|c}tkpX}Z>kw@BX>ol)P@sE&?>*m9*!5i<3lsg*(|!~E^Dq4h{7y)f9%6W4 zl!*!sL2NQE2+bYF4i;9*XF*@a@fyiyR#`Q&q^lI=8hI%@P!NhNAdVZDl8A~|K))z& zd?=nPO6?AUl9DSYH&CO)ls0Zx)=l$V32fJGByBeP#t+79^% zr)n`RI6+V=XWgB?w>(XV@;4%A7LhC~P1rNHOuYaK^a}u5&`M?|(;~hAMEQ7eo{>Qe zKN2BHNWGjn4YQu!*Pkd{KJF@EaIsOors9!Mc(&ZUrwRz$d4b{V%efs*T#=T<_1fGC z)vkP>d#5}UjWq4D3{Obl*Mbwj>|`jk5VJ3LeduLIX@#IRnS=_@ zf;82nWO)hkw+@*FpT{1&^u$y*YwgQckz_NA{*jQ(KKmV8<=PO z4ov}Nh6Y7%7c?0TIJpm%CWvOq5@9oQRweqIXN=EgaSg+qM;6)2Mw3_CQZKcqnhs@H zactV*F;}2*KrI~WeCdcW4|Khy<;!^w(V{phGV$pvOIf{iHiyB9gZ{#LT9V9bO%vp< zti+%Y+vej4a$L;jm1HeIX*IcZ@6SSDznnc~Ltk)0u8 zk!Ler1T*qkM+$@1K1)c!Pk~z5P`aiMNRnkzs1zw3kJl&ddo^l{MjaL&%UsO34q0Za z*}30q%CyWRe8pWRerE`ZA7C}7A|*khpH7VgceffYNtPL*qIk71o&!aw)=j^v22BRf zkQPr^y^^Fr!)Yn~<3RQDx#rsU`dIf?<=o2dFHNwoMM#qS9FjjxI5;%Q2B~(q*sB^0 zHdRTa?>$85X%@BKyu;p57CtW1ae?9LSMSckLq0RDF;l!ZFEz7A2}b4g9q9>EO6)vo zUoMstyy`g_dcYw2iN%hmd>~B#RQRkP+e`UKNF1Qtmtc@n2EXP5F4VxNBfpiHdoX2CSwPR6{wArW)v{N9@+%qvnPOfehU>BQ3R`!X^6OTjb;JA zpE~BjTo?v*OQMmXQtij3Kk)ikmlOh*k;Ia*L1t1>P=cwXXw*P5m`i_PLd7f*;eqot zkY&x-`(teW$zku&KUUg@QPT4XB!A}wk;D4-tsXZ(*)I#ugL=LY#$s+etM@^6O#hs= zLHag0IqqiqGh$;HIN9JOylqhL51WmL-oFOo9D*RLdOh-b%H*>%g={KPn<14@A6XNy5w*pNoYQ{R zwjLw;u!*0xYSD5TR%1ybAkH4_LRMrrVw5wU|XfvyLz&>q(J&bE2Edohp@LvF)E_h8w5T~`O4*qyxICkN*| zLqVIgY9tI23@pUaWAb;$82^gUWBYQ{5jBJM&^XL$vYCQi0rQgSP7&_Sw`d5+bN$8l+vp!zTL5n2Ad01-sn}#O0Ff7+4$u1^(cB2Bkx@-3-j4rbtE_ZG@jYHU4r`74p0&}w-^6D{oa3tw-)Qp~omOw3%gz3H%yy{MzMK?*sVgSrc1{j& za2;8@FQJ`?$c?f%mz@Ti|M(g#l=Z|yvPPtS5YBiPM2l~d+fG@=urpWN-;W8}_f8^B z1X6ulW7@QB;@U432Y|gk+@HO4`VmmY*`G!?;Q5A;=l~_hqL-vaM-GVz=Sml)X8jMM z53kV6S}!vE&o@;$4jdf<)Sj>G3Pb(4cB zM@BbB!TF!*70-Qe%bL4~>DDmtG4)SWqKv2X+)1T3H`(z!=VH1#;wtgQFZv||LZ?qg=~=7@|5hH+v|sqEI00@z1uDT?#8mjqK&)iG`Ku)ncx{}i}_N<9tn9WT3f}!--;_`fz#qAo z2&!WjLsmQP%f%79gY4=3Uj-bjS_s&_gVxR%1bUvtNh&4nGY-Epa5|N>(pX73Iym*f z>`uW18tW2!GhkXK-QMt~_OUY=dk{?X$x;A_HGqiE8Ry)FCc-QAbVOhIR^%Po8-bL} zJxqXU?c|wvktN2nAD20F{L63CJ@BeSV{4DEZ^Yl`iU+z73?|~?{>b!^ zGWHky3w!FG6)5Av+dq}rLhg$6{Q4EZ9OZvW^atYM=D_C7s>IQp&o#s9`!7|**x?eH z7g8JPoEW~LmO54|{BhkWf=A(K^w3c6^6JpsnR2GvYT)1~8c;)|A0dF$-~-u)ZYW)= zm4Q31+}m5w8EsDN;M1ya$;Jd2&VWF6p(-eI=<9s^+;)gm!e%d3&NKx?mG{@O z1h>2Zn2zrz!m8w}*+DNEW-Pz0guoH)xWcMKu@<~HvS-?#&PMPKOLi3Q`+FdhPS?K* zrY?ZF6<%0C*-=$~HqwH{()l1>M*E|+H<0-LbVszYPqUl=qQZY(c=J=P07cYP2<`dS zpZJZ6ns#XK+wlW_9*6^jB?fa2*mMJYf*&LhBEHWev(v?M2{EqL3fCvp6H2DXdxitX zNaj`LZd$n9lD|0l{m`E%1Gr|CX#oP3k7s*gHgCbg*9Jb^+XWtG1U~xDiU*1FdK{ zq(tQm5P5r5Ja1r7na-dp45UJ|{UG46e+Is$e*Q*5bBKA0fP&w7fcKNK%_8^`BMvZa5#W`QdMNym&2Mjm|Ilrkau$oDm(2 zZ>%q|BHbAsdes?QW-jwA1bun7OYlo|i2g}hPhjl0U@6*h!T(sJXCC_}^lD=OM*8YD zApBtt|9EzkOB*?6O*+K1Mdn^Cc8tucGNO0WHu<4oj}AWZDI_`2KL zhDoe*a`$9LqOFX)aoi-xcF%TZGy2giasv~O|K;e>!haOszTRhl&%oWY0CxOdRP+gd zuN?aLbeiyUVII_|V-~hy|5wL;E9tEu&`93T`2UMp;o>WR&O{(ZZeBF#0v!2$q6)(r zSoeyM#jwA<`F!9CQET#y`fXR@QvU7M$xM9bq=MkQPXTXDz~Y1>K*Z4N8SDL3QBABCIpVYYpfV?azlm!` z70&LutzlYAsLv3Ma}n8G5aH~APT13yH>ZM6f|TjaAAqgbPdgR}Pa1^*)hFM=8Sd{j zU8LGQxVDOzPDCQg{pqrxqd;&zL^KcK>N_kF%PU{&rGfUdA*RAR7lBRkGhbx|Dz>Je z`n=r6wnVrgy6Lns`>o8m0Cm1#_j&a-vSj|CzuzS{FQ-?*T6;FgtHpug6^(xanItn= ziAYP}Z7Vu?1_aGnIWbPHY67;zegkF%pxed&>~^#&e=qJIFgo0)$<^v{)U2j-&cY`E zQ1!-opfRiX#SX%BqlxIyQD3jV(6{Kdsc+x1B^5-B0&i+dwn+0|!CISDmHS&YYt)I# z*SNX=S@ma5J=(`gD`X@##oya^H967V6JE2Rp(T3RXPKPn>RPG{W)q>UMJ-ze@ndBI zua4}Dui>@M1!7u4qIhHCO9v|*Q9x|`t*y2kv;ybL2hMlUxA3BHa&Kz_Fn{vqf*!O4 z(D!;=JAE26bOT%|Uz90wNOzjXluDR^2CVl#i9&lENpM3IO)$?(SM;&84Og9LLEbrk z)Gz39)Dv-l=wo`$_sl_ao+y?~ukY23@aFQuC?WRw75KypwKQ$*>JZtQ84Sj7{C}6YX~O}6&}#VeXbngQ7wBR3apIr zWMzW!F@0F|+J557&8v#|7;#$UU3qY*A2G|_fb>D-XUGNSWaBcOUYKxz`c^+VRKic@`)Xs&A zIZkF$n|QU0R^@=yo(P4;b58L9$%8@S!-SIc*{kn)7KiK;tfeJZowSN$<^gYjmcg5L1sFCvfu#NP`R33)rMke(z+q@+6Z>5AQ`7j^IBz48oAu6BhFfI`Qsq~qkaW@0PXDVy#7pU3Ul$l;S zjRW!^!|LHRn|_7djgONlIpjGCy0zs7lkTG;na!)Xo+sFQzy;mOP&e$lp>x`3-a@mZhuRI-UsA4VAD%8Z##STj$H)J zzwSbW`DS-DI+fhKnZwbEE6ke+>9U3`cE732>m0KJblqd9@wzMK#?qeSsph_wuH^Op z;DPMR+p26IaHufeAP9KCXalwsZAsqYa|5FY3&vhQ1)4vPs?aE^md-wMgrr2@Sz!s5 z$!J(M+{xR0Zh2YGeU9?Erl)2<_rO1gseoWw%ep?i@wGIUxc@h(Uu0goW9>B7ToRG6 zrev|2$BZM$xob$3(y8LFm9^_zVz5z?vTUm1m(|yy`+rCAFxfZ(NTpfLMg}~Hrozff zgo(|+Wx%!S{91Jn_aX87msHy}l8uk+N`9GmE4sA@R3UFnPdt${8XjIp_)L$~;<@>L zDa^fhr9g>q$&ZZg{!mJn>hvW87bgff`F+={ngjhGZ**2R0QieIMXW0_2TP` zk5T$0{w8xnEa_#0?R8+&*b~YW1uH*JX$oOOgtCo0$j3#LOkC2V5=2|MT4a7LWLnOo zzc2>7u+Lo^q3<92zCWwvmpdg@ml|%pH=C9PznThUL4E%@)XME5|7&zqjf7_4Z}O*K z^Azdtv)BM)tO4NNN6{vim2HT5Abx-FIO|XnU+l6kq<#)a zgA6O-=fR^~$4+-O2~4M!h3PbFC5$&~loV!hR?hFcZYS8`;?JM{7<}w> z*v}r$hqL$AKKId#YuN3BUAxHqVJ-E!ZS`vru*%_XjNo70+!Tp#)-XuY$0Ztp{w`!i zLhr`VN;&!`<^#YK5+~`ux;pc;|6)PH*3r?w+JLd|75V6E+#UFy{Km#S_>@Oc!D~Q7 z1Ik^Md@t@f2*NU;;pHPofY&$mU>CC>siq{ zX+J5}E_I9{AL#$_%MF%b^G$^+Ng}mW%VceKwC!5><=^}OV6>x<<13pDbS95ArzdCP z75SHATHI9R+u&}=Sg z(dn$X$W?Hu5~uxEJ6|IFt(!NA(@6o4ssOh%19nlLiGFqrXruU2w^K9_Zr$ulV~AM6MRbf6o8gA!PSk{M%{tN?)t~8hQC_U4C|S zuyTYr_s74S^S?k6$gPeg4G{1Zi{^fpE#GL__sA?ur#S0c*yW{3^ae&j ze{P_KO~ui{C(#}_=J;NOUMnc12baU)b75(8@ybPX|CTsSfB4h%Wtzn_Eq+G^-kfhs;40)$$1Fy4Isx_w z(vBE_%}C7;iHqL1kpnl=?Q{-n(Y05!$d_YaI(*Q0~Xq4?Eo!GFGDt@@-n} z_t)c9Y3FoEZn~ww&EkWs^e>;|#MjMkbA({?eK<<>bTzFB!JXF~aLdQjE(wML0?FUq zXwy=Cw}>n71EMh|4l3{t=@z0(E2LhtYKbgoXq6@n<1f)L-n9}Wu^m_j`*P0r2|B)8 zPdUz<`&Xp{|NY;?=@NcUApA)4H%R;AE}#q0P64=aQbWODm1k+dnaW?zTm?s_iZ*u# zO*_lQZ68Yf`^nm}eh`=3IMO_CeAhoSj1$0YbCBej9+xv3h zq@gR~ebr&_YRp`@t-Qz74G%%ie>zQ1BR-^k?-i?NC*c`qBNYy96f-exRDJur;WtNs zQ2USd7hjkyIOPN5p)#i?1*K=>nr)|UVFS+u@?q`Pm4%PpD z&)>7~X7PW_T|wjjnDK}6IR8_fgmrJ_7l2^268<$8RAznz(d6OZ7BY>rV_UY(1J)9n zU_Bi@nvZOP=88G5^rk&`vh~ z8K0TwGhWvn>~9RY7;DTW)`}kr>7vt&pXvkQd58v}M$#JCkFWwkA1k$^zu?2G8#VON zB#2PT_Ux9xtPO<{Wto)4q}?<7?{b8zkufkIGEREm=BbUd%D z@B)#8X79hS-pdKYG=+S(euANdasZp;B%hPT!wX zKqkoPnK0rOF#qNJZDHd`BA4?OJtaAF!uk!CnFXo{?QH(n*xb#xduV%ou!Vf-G5TYV=>e66_bQ=j7wj)1&A15AW%*FW|NS-U|HXwLnPM z>Rp`6#dXOi*sm_Qu}Yt4&kC7dWewYV%jPP`T&KHg(Gk{xPXsO1Vg$)a-rgl&np^@? z`1x%)^(xt334n!rPc63i8#Lo0^iS88${$wL8QPk1iXL_9=-j@7j_Hanvd<9~lNLfJO%dngADT_adIbl3}AORt=tb$xs z05JJx&(zVd{WAsznN%+fcIu(EVEL?IB)+!_w$I?8oq`)`@6oYMZnjyxxsThM3x?OP z+`Mgkvi0KOFSu*4(r5fsYe)&D~2p2hlsOnF5uE^1Y1 zZL|tSeaDh-m6T~*ZdZNRrqQJH9caLp#2Th_72A3l=wid5)^hELSyN8io_d$rA=zLd z3G}`Cv1r$@N$mS<)anzzq?jy-si6D!JoYyK;+3Rce?smJ(BY=mrT*1FKUG-K|2lW}gK2r432k5CmFC%-R;Jo-YQFvX`C)cgr-2#wG?z)2 zdzRt3=GUkV)6m*+FR*XPLzd3T^`kSq?Kqp3-NCGf#!*W{_u#qHDK5k$mI6K2@cn%^ z@7}AadDNpPto^5d)oxXH`8%aV-e=}g(uRX>GNju0l-k;w4sS)uuHCMsx))5^6T7S0 zPRlhca%^(&-WT>=uonE#cK0^rSS{<- z0jy}SZ4GZtKE&k4gR16X&g!M=Fs|x)AWMgh&Mv<`{!;DJ*<>S4SnP~}r(3T4o$FnE z=k%BGYV2*(5y^-6kuApe+$=5Mf8E%8Zc;MWSEqW>tg=4444r<~J!41a+O>Fvf>WT7 z=>jwn7PufKqzAkUm9pw9CXMEtw*T5O69;{@V50aCJ4hm6e9>Jq7MBy@xgT>oZImwx zGyC2_+Xk(rqqPR_q4h+&6h{3AEs9!vEYQcf|GZsr0fqjYWbMj|JtwCg$D>c7y!l>0 zwlrxE3Ym_W-mpHa^q{lHquMvsDL{$K6T%U+D)L@lTHGWF+?FG2M%<%i-Cf_F0-LNZ z=sa@hjpTt$$@H~DBHja)6`qmw0Lax`vifXzcKtO65QDyBP&C+YYAiaGah|a2^fwJw ztpE3DrmmFmq(ec7;q1=7xE2fsbB2}KkQ~354$Z){vref`hKdF1x;uIMc{OZSUatM* zH&Zm49we};y>B{D({8n263ubgR7;dun%Z*L6-ijVi>9#Zdmt`zIiTHUDfeA=1y4PD^*6jH>iCg}c_d2s5% zX`V^WeStAC(!PvAjasbHC;~om5m@wW4NRqiKTC#U%E3?9198hGlGSC8(C}TzryFx3 z>jx&OAI2(|ikew57iYw^#W1tV1Fx)s#TJ&r4G`!5jDXbakEgVhLLx<-4G>iK;iwir zxt6J>COfJT;ry<$x1@6VTC)&?yk=GG+^c<0=%(DVNncHI5wNul8A6z)aK|MeWTuZ_ z>x?70E`JlQxa_}gR}{BOaZBx|5jlA>@woCU|A}*4XQIN3E)BzXQ7#Czp8ocf73%@4 z>N1Wb(|qPm%g5FJg@xYU2QcR6OO;m+xZ?_!T(^8ZK79qKcZZI`4P7~RB7wc ze`m*|#5Q03g$A8#1a2P1O{RNMQ8j)w1-i@UY!mHMu86g?c&~Bfqf|q|8BZLz;p>c_ zk`Eya_>m9_4~yBYB|Y7HBk>1oA-ir+fTZqt8H^BpOQFO@C?N6;Z0ZNm4I)WLT{m;z zZ|o#)WNUwb?s}Z5PMyC+!g(ebkibtyME2$#I(p(g`$Z<-s<%dQ;Abnz*mMwRCh9OG zyd?p>mm-dmCRQ4%!B4@wZ9%s!NoyAVq!o2ElCyS+rM{0MG z8#ym=A(kQ)UQw=F2ap0!JKoQK*Sac@FRv=+hxnY++K(uWdoXgQn1|zv?_s=52(v=4 z^}P9f&fW1b=_@sQ!7wh9LX`21;{-R|ldU>?u~O?tn5Q^Y0xx(&?#p|^#l|fTc?p?h zZC*dHR&8ZFwLq+KQ#)^2sU5T8K5Kt8H0zZ>lUb{@y48t0+qU!NQLpCA`wzd?m|A{{tB2ob3Pr literal 0 HcmV?d00001 diff --git a/chart/preview/host-lookup-chart.png b/chart/preview/host-lookup-chart.png deleted file mode 100755 index 832b3635db9bf70f7e7e49091218787b4fcb60e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12945 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 body { - font: 10px sans-serif; + font: 12px Tahoma; } .y.axisRight text { @@ -22,19 +22,19 @@ body { } .timeMiss { - fill: blue; -} - -.memMiss { fill: red; } +.memMiss { + fill: blue; +} + .timeHit { - fill: steelblue; + fill: orange; } .memHit { - fill: orange; + fill: steelblue; } .x.axis path { @@ -95,8 +95,8 @@ d3.tsv("data.tsv", type, function(error, data) { .append("text") .attr("y", 6) .attr("dy", "-2em") - .style("text-anchor", "end") - .style("text-anchor", "end") + .attr("dx", "-2em") + .style("text-anchor", "right") .text("bytes per request"); svg.append("g") @@ -106,8 +106,8 @@ d3.tsv("data.tsv", type, function(error, data) { .append("text") .attr("y", 6) .attr("dy", "-2em") - .attr("dx", "2em") - .style("text-anchor", "end") + .attr("dx", "-1em") + .style("text-anchor", "start") .text("ns per request"); bars = svg.selectAll(".bar").data(data).enter(); @@ -141,11 +141,12 @@ d3.tsv("data.tsv", type, function(error, data) { .attr("height", (d,i,j) => height - y1(d.timeMiss) ); // add legend - var color_hash = { 0 : ["memMiss", "blue"], - 1 : ["timeMiss", "red"], - 2 : ["memHit", "steelblue"], - 3 : ["timeHit", "orange"] - } + var color_hash = { + 0 : ["Time / Miss", "red"], + 1 : ["Memory / Miss", "blue"], + 2 : ["Time / Hit", "orange"], + 3 : ["Memory / Hit", "steelblue"] + } var legend = svg.append("g") .attr("class", "legend") .attr("x", width - 65) @@ -162,14 +163,14 @@ d3.tsv("data.tsv", type, function(error, data) { return; // Approach. var g = d3.select(this); g.append("rect") - .attr("x", width - 65) + .attr("x", width - x.rangeBand()*3.5 - 15) .attr("y", i*25) .attr("width", 10) .attr("height", 10) .style("fill", color_hash[i][1]); g.append("text") - .attr("x", width - 50) + .attr("x", width - x.rangeBand()*3.5) .attr("y", i * 25 + 8) .attr("height",30) .attr("width",100)