From 3680553331fa1149ed59f84403594ea8dcbcc13f Mon Sep 17 00:00:00 2001 From: Manas Deshpande <66067507+manasdeshpande@users.noreply.github.com> Date: Mon, 1 Jul 2024 15:45:08 +0530 Subject: [PATCH 1/3] Images for Plotly Scatter plot --- .../images/plotly-basic-scatter-plot.png | Bin 0 -> 25039 bytes .../images/plotly-scatter-colour-2.png | Bin 0 -> 25215 bytes .../images/plotly-scatter-colour.png | Bin 0 -> 25340 bytes .../images/plotly-scatter-hover.png | Bin 0 -> 38061 bytes .../images/plotly-scatter-size.png | Bin 0 -> 28702 bytes .../images/plotly-scatter-title.png | Bin 0 -> 21809 bytes 6 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 contrib/plotting-visualization/images/plotly-basic-scatter-plot.png create mode 100644 contrib/plotting-visualization/images/plotly-scatter-colour-2.png create mode 100644 contrib/plotting-visualization/images/plotly-scatter-colour.png create mode 100644 contrib/plotting-visualization/images/plotly-scatter-hover.png create mode 100644 contrib/plotting-visualization/images/plotly-scatter-size.png create mode 100644 contrib/plotting-visualization/images/plotly-scatter-title.png diff --git a/contrib/plotting-visualization/images/plotly-basic-scatter-plot.png b/contrib/plotting-visualization/images/plotly-basic-scatter-plot.png new file mode 100644 index 0000000000000000000000000000000000000000..64b6234e15a42adb5a29a482a23776a2e79c0eb5 GIT binary patch literal 25039 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 literal 0 HcmV?d00001 diff --git a/contrib/plotting-visualization/images/plotly-scatter-colour-2.png b/contrib/plotting-visualization/images/plotly-scatter-colour-2.png new file mode 100644 index 0000000000000000000000000000000000000000..c6b3f14fad7b991e3faffe6de09ccac6176c4a66 GIT binary patch literal 25215 zcmeIbXIN8f*ENdR0!SB-CQ<|y5CtK0M4CtwkuE_+L29Ijt`I<^iF86y5m4zMJ%9vJ zI!Z4Ri1a3**T8p2ac_5d_Vb=|-t(Swec$tAUv8FUWvzRyd(JV(7;_qQRa1qMoQ0f( zgoIM{vf?!o5>hnyj}meS9Qh)U6$$>>=Xg!!5=l-g+Y|}O2@+LB`RfSST%}KxURP4a zR`!`U&!XreAeZ|eJuQ2YS}gJb8J~=p60>&qt$q9aqZPWfoaIIr!>or#(2ZkPn9Nvn z86Q4VZ(}hO6{Qn#q-UNzzk2^tgGlOcXA?yd}E-Gcec>Ka{o_k_$ zDOqx*+hbK$u6n|4_p$)C&_^bPpeIvgo#JKm;p4}T{!9l>knDq8Bq61FKyo08?w&j% znzt$Mmt)eT5Fz?~-~ami(Tk${kowN(BUHa1BEj9I+B*aBS6=Zxz`qHLt&#t6QsSW# z=;q(P1pM4}fCkpJAT0j#d%+=OtinsZa{T?aF8*gR{x2`ahmf^C8KFjc(_J&>UbG&gN%0BusqM2qHaBCX zHf z*ZEj&MCj}ee$21zyqYxf0Kd8#f^tb_h#)`ZeSY!t<_+2Wn`f)pPKpn`BLDubFLGYJ zhpSwD!_Rw}1;Yw|vHrEa(sK%Fdi-nG%Oxu$R8k+QKjCR{o%puAx$-OzGq6@Y#Hls6 znOiUmmDO3xFh@eM*Od^gOIOqoBWdrue!f;ORlzTBbrw@DcH_+GSDTc{ayOP1BFy-B zx2HrsZLjVe=?q1=cJ^)#@cDX}w4iXd3_CFawx&BnqjIyG^lm%;UNCm;%+KRPe#RGg zD_Vyf@ar7g$N=DlcI$9g+eyj3|UsF@RzWbs$UvVYBuK*`aC?-gO_M!yU(29zwmda1vRm;pRst`^4LT95D*I-`9^^sxKyF{n@^xU^ zS;JFW?G)YO4DIJ*EeaR0qRtc2Yq^{wXXqz9HSf6UbMx>=8drbUdkDqjUkVhwUDgc- zUFbTn6hj`W-fN};Ydkw1a_jbkjUG{V4y0WWNC@4Oi=Mrp)6Efx8ykAYv|_P&Dk3pN zp1XnEhdy2%(ej0&;E~S6ovn|x&O8xXM`O(=Zm{7(S$sscMpGA8L?FAQY%67PHUe&~ zGiP>B+@2*q#&%xtZiw)Hk7g9DD)=ie$@5#yR7zXEV6<7x8(bMr7?R^CU6 zwCA76;rI)WPT56LdI~2;68yOhw7z&^ZhUPndp+)rUxN01@fj2H;Yt!ohf0&3Jd<%Q zRoN4@@uhC8yZMXy7D{qOfw)oMDU$j#Ve!=17vyjeLZZ#VH}M?knn@N_8$_Kz4ql8~ zD_uz2hf8et_>D>%9<;X{-vD|0WNp8CU&9C5*3(xId`;XMILaJFD2qoaJo3Cti-oYJ zHdHQvxI!ztw{JUMhh2BU%~OX82h*AB+qE=nc+-4O0~c2hkPD#?sp1d6>FZ&YjcGQg zhT}^MdGrvq{PH+L3htht-0%oFoIB!3HIoX0HT&zqt$DR8SM5e}kOv(pyVv}dq!D{OwoOnUuqUm<<0Sp z@~2a5OmpONeFq*r9Uhm=E!?HO82o*Y%0D}bVU2n+lLO<~U31;Zvh%T|MM7K2;Rvfb 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 literal 0 HcmV?d00001 diff --git a/contrib/plotting-visualization/images/plotly-scatter-colour.png b/contrib/plotting-visualization/images/plotly-scatter-colour.png new file mode 100644 index 0000000000000000000000000000000000000000..ef4819b216bbd5499986c2819195eb69f57d97c7 GIT binary patch literal 25340 zcmeIbc|6qn`!|lnAX|llMAovT5@TNyQjwCKQQ5Li_OTZuMJPh{N|7v+eH&zyeaSjm znlah353+CfYf9&I&gpzUkNdvA-~0Y8pFhsyJPh-GzuwF1x}MMH^}Md`>u77x({j*~ zk&)4Bo;!PmjEn*e{-cLbflmfSv!lWP$X%~!oFU6?J2XK?#zUrgR^=)JHd7gpWU%Bn zzL9c=-TLf1X1aSvjy^f4S(x72P@MIwqrxO_@VDZ8gkxBZT=I>%<=3K*JEn}WJp^(! zKev@5$u2MXeHI^5d-Pdm@|Qs^X*B1a_rmr+=oH)^evE<{^1SUt?TM9n8J8*sKYwzSc7CtKCH;65kL5$tZcq$RWyP6il~oU!l-~pgJwt zS%3OWgN$Is`|a1?|MHdKZQ|>QxEdAGH@<(wgKpV9!ndD$D4AeA^QWZ0AN1Qt$T*oF zCjmb{O(4T$$-=0p|M=Ez;wkFi*Fi>k^?))$ufBQcr;nImW8csAeW`X75Y!}s{m>sP zCBrly+FcOoPjs}%2zp%NK|z0fOBoTr=f|4CpS-5wLBAfhy7kjX5OLQ(E=yTik{oH^ zj^4-c`;{t#o5Ap(oAKk8{x94N+`V}xe3?ed_Gg2ao}bRgOW3Qw>+CbzK07DnHP)95 zqjsvat&-2TD=RE1vc^73D)jw4a?B`iOmpq4r0eK*u7JDG(t2XZ3;QLiiHX_AQ@Qbp z(aay{f4pmTybt9Fezth>vMF2{5vX#P zWr(IKB2DX{xoNDZ@rloIAvYx_&>V!EWD!i3Yn6mBX(?6$4^0R&+fdJ@SV!}?;MB^h z$xE#ecwuHJv3ES?F;V@({j4LqJK|iFvQw~Uv#$L}j;e;nbX<-AdaS)ZB=Ru#d76A&{=WW9Mj**;B9He0TBd!17eK5Soy0&{}DV zlbLr?^+D7QoC};8ytUQC!df(Dm^0ryWwTl-y|9MqG_jj?JZ#?%vSNW&{u2N zyTOIMihaf#()Kgt%kN(^H!ca;>j-Z7wQVy_5B>H$m$12p(ip|#Lsv1<@Jti>`tC##-sdg>3!lmRF%d7=_rAyw3Dxdj0kYv zG#XUAj|%JM$wQ7ih|&n@h0OOaJ7n0@5cc8KkNg&j7M3I+I~1lV|4%iycjYNQwHGpwhi>L7c~rqKpj|#J{?yXL^dB`+{{r2oy1B zbVvkEhO;P3j1H=M#+eH?MjGj&7Ns2!wL?mOsktV8Iz%E%KmM+KQY+!$eXG^%1qMZ@E*; zoL#dk2WzTN|JEo8Rd@RGN$SR&7at?t{VLpEsEfpvtAz0U)Kg8gsOo4X6qCCkD9PyvNWm&*8-OJb-@!oOw_-dCh28|W_efd=ZukxF zhZRtGJJ;{c-+3D;k{MpSQrLSKqaJbE-cq)^yhc#e;<5o^%cIukVbBehgGXH}*&_pv zJEvuwe&RxqdVZ+6_hui_Jv^nB)7pM)uqjsnH$iWNB2xABM9oPrusd26K9XVEwCYge z>nHl4D|8Qk>APA~FEwbOD>WJZAUw(KWPj_;ni&b_Tdv92aNpT7s&Clh`GJOHqB=K) z01w%nQwMH-72jiJ{XMcgPA0>cEVI8|J)(1sB0NR(%FvNc_ix$m-W@Uw=bp2#!DGok z@^;cmYS5O2^j>v9c+hGW9&D4|@LfD~miIPM9rOPEkDoz?QscW#WEDHPPWJ}}W4aFx zNW;da`o|X!hJ&*gzWXBn2h39Dr+~ouO-=Xx@kO1};G>THY1Ka+{}EWlqg&1=fBNEo z7WMZ zi!hy+mB{o%pVN&_TEC{#c&|y}!30}TbH@Qc7mw1xL#H29`C+7O?b(HdaGdA-q$Sb| zGjM|R5&XA_vTd|TEc3O-Fg|p-AmCIYmyiaRQXr@lQAdqHVtg8YfY1{ygvk=RFz|>6T|B}B({MQm1$519k&Mt2L;4Nr2(iU{DhS8MBj|{cqY=c( z#695a7nxxSUc6}U{6a1ojQs_0Tz(B_qyherGQ!;|lsMT)I`qq#b4)N37YK?^CX^4o zK1N!S?w^;Wir{Lze2CBkr3Pn>2M1g@i&(O>mD`WR#vZ~ zOF!z7Tpw&xY({T`JGLc(QtBZs$$OYi#;536A@%B|QsSEX?zZoD!80TuSZWS-y>8(?Gauks%EX zNbi<>m@s-fbSeWCZ_<~`WSUGbGy=bH0$LbcBLBo5zRTVWS{&jbPLEFPu;y-b^fc2| z=TAwT`RC&mEzkC@m)yEyExGc{Juyo^xV3u5Z>^^sGlfmN?8^+RZ8|D%jw>V8~2H05^MvoBVa=;7%>o9ZH`M-b_$}mjVf!zsB1WTr2OYaTvoq0 z!zHn+q1BZH1EsaRauIYoZVpY{Vjd8}m~cCsYAAm|OQ5H9%o&yltWHMGDev2{Sf!q z8zjyI6W7VRjR`qRa1~q01J+wzCNIbDXwPK|TqkGPG2#(@3xPk%2w3*hKoqp|v>oO_ zJ9oBJ9Y;bp_L=&8IDN}laCR;IqV#HHr@S;zhIq07_aLGmsqD)Q>}$^BN*3pRYOyZY zT`0Th;5kCklq-2?m!YA17V^GFq{gwqb2s*3Lx_SVy_%A`3hqGe5C_L~f}d0UY?C6}qQ4;mZeIA*h0N6uacL=8 zQ=xIW*V)DTOZGkn`V5>Decgqpnr8)zBjZ+1J<*ttK=$vuLo=MHmT*>^F=g*P3X1U( z@T-kB2;Me~(|SsR^W|Eqzw8aNt*mXvN6T*duu5~JmzDO@gBVW5vodWgI9=|2>4$F& zAe~*tTHXj%qC>TwW@=jAFbP9raGL0MdJnJi$cH4;^=9D*v#PZcW?VTb?!aknB_O&;854Q zNB8Z=NslNo`uFW8a+zPT!S;mea(qrW-hBW{j)Xcr@9PaAS~n}r_A=v2@28t{LvvoX z%cI0z1E?R_x5%Ap)0R4X2#3~IS`Q{pCXnLn_n@_8cuIlBQfWU6CQ(3L+qNOfe||t6 z5te%W7Uhq>`6Cw3n#%mkEbuMl4l;oN)4J!!9tNS&s6T>|P$UpSl#NQ0#$>@6c+lmi z)DTM}_lb3hRyhaWT%;pt9N37IT{dAbvf3G5S9suVAe49_(^gSOak`?VY!1cs7fsctFYu z{6$P^=0{H%_^DQHZ7N;GY;2mPMpYQ#ne3kw=_A750v4uUB+Mz#Dkb{nx(Wl#Ue+W_ zF;0aCef;ZL%3nl&Bjiee@1nccbYv3L6yhh-Ncl%*BN_UPB1s zG?toKDhT(zk-JIV2CO;Dyk97>cb1)bFet!3YqKD6{2l9;o6wwiM~LUAisIMFq(qhT zah+oGLwT#-+y=Bb*uX7Z6h4qASImhuB)C7|{`JlH@=SMuy2MwrZ6AXkrs8Ru*>*cz zGGfc85v~Iw+iBEjD$_&uD9M*mgp(Qcb`(LuXSZW2@vOzj2pZ@E;IN8|g!4E-+fj$1{5Xk0!uB2>! z?Eex}8*W{A*QndMwJK=j-hPFo-oA8MoD=DlKek~m_hrjub-o5w?RBnPAO5f;^3Wm< zztGK5Hk(iuvrwbKNX>0@NMnu}rV%P{+e(71i$gR&fs=e1_)a6a%zW>$c$c-kow9iX z#XKA9)FXtY#L+b~pHU!XzVQ6i6iQtGw*e#1Z~SoI#zNLY!|PF4fRXa+u z+~qLEqLJaey~Y<1wI-|=EmQ~!ZX?Oe6r85y4BI8g!iaUO2J$RN(DS!M?ZrSU83FL{ z+uJJ|My&dpY94Jiwe58FR#>Vr4|lb#wZokVkFJEiySK2F_F4U98xg@Vex>TSNqY38 z-%edIksdzwJS#WJtVj)GMV3u0|6p+;h))54|MG9({~I3xAul=v7gxPGgKGFN)OQ{+ z!*yVU(bFF$n8b~5wNImgBkG>$4RGdGmrwFj?Qj%?cy86@xQu^Jw0AN(v9OuUR@JU$ ze_8Ra1y?k)zmo4obs{v1c#=JvsID1kUrXAI6*WEBq#_% z;Mu9qI`!@nCqn^Q`NoXePtm}mGWSLbEDq2dr=((o1evgJ+6RqK_sXR~+j92#4@?Go zW?P(Ufiq8~;)E3#-Ms5>BKLkox&n}mi+34g$z>#HEu_7yb^<%U?$3E#^H?ynv}L>L zPEcA3XUUB|M_f()_K_wk7eqW4p(xq=vBa-f8bBss-Pe&TWn2}NLO#g$;KksTWi>is z&fHqeM$Lpo@pMjeQ3SV;s!e;-hra7mvPYjVQfTpZ_R7N6sX9|N)_9&~v55^QRFcy( zY<<4VY{n;wz1eS4e_`h>J3-EI-jy3W$UmHrXf@QLGZ`cU$EP!47*3`BZhHqVyyzHP=Zb{ki}Dk78XM^h+Lwb~GU0B)YAjBD ztj)S9#dhncgYD64H{HuyVyVo$@?WZ4N^!9LK;oR|h0seWqYh3N>EK2~kEsSS)ymX? z{1mPu+$ITuJLlWI$bi849)~*9V@w_-MNL~BLy{hpbO^NZnEIzB@TcWt)IUJ^clLaR zmQWPjbxuax_9k*a_JKMn(nJ3q=?BY5WcRNG=`R7j^a!A{3Dkdn;QvIT!-X!mS_EJx z=@*tCS-^q`8e}2d3WxlC-!v=e=JEkbMw9=th7>ysFj@8#VCAH|Gh!q~P*|L`o!FQ- zCIj!aWM>YV9ryQVm&yU>0Z}!d<*+0QE zUi6&rhSplmq#0k}MvvG|!Nu~0&mZ^DD-H~Oc;q=!lcKd?=xL*d2%4*Q8G7pQ<&)rU zsZNi^neS4u`;0u$2AF;gPlf{4<-Dep0s_w7;@*fhk7ExTuj9ChxNrus7kiqO6*ulN zo$C;AVs68P$Cps)*Fgai65|GYF1~0HJUo?OWdmkhs^Z2TudPfr5LNHHLmS_x#}CvH--iG@u7`5GbYiGN^O=LV>0qpeVOY=oXCgFO_boH*_?Ll*$>N`(4a;! zQf2-dGkKrT`WHMRZoNwW;RVpL7!#CSCQh!kJOBztmh|AkyLXA{WHRpsnQ#ZMXM8w_ zNu(HgoNzRZ$dNQx?SBTh-K2C5e+eIR-&NMK?z6~C$GWw=hllMG$umyB3zSKX;X$vp zygXWY1`!r@)ne-`f^+!l<18lJbACw=B><5vy53Y{94;enei~zDaqzMWFDbg?ikRse ztK!EbZrpSEq=JNE=g-a_!f>)1<%OZrXj5FcRm0pFlXxT^P@uDNhF2F!UlqCN@ zu^Ijw6s7+rBnC|pH4j*P=$3=yfpg1@=^=Vz3aoY^!<;=91kt<*Fy` z)6ic;F7S@bDdwqa&v_N?hi#1KMlV(q`_5ucQ=p%DCYChW!#+jAqx4opmneJLZkXS$ z6)D-adn5kVpW29^#V@>ao*CwO*D99;s1<+2Q;_}dR4P4=wl9f<Sd_O2IwS(ETXe&ogRW`^q(2s!m?%)Ozuo!WpSGu2C(hI{DYny-pZasJrv5EL07I&`FuZL<2&eZ{6h4Dke588W z=MIrovaEkg{f9~?it$+~-o!Bjv3frAa+%H*O0c=; zerzs)$`an)#cjra-BQ9wKP$P^uo}4?Rfu0WW}6}_6MMow=QEXvhs?_wR7hg4Xc{ek zuXHb#a3aW)Cqb*1K;H{NS)DkzNJ?;m6u;lU{WyMI2_KiOy>G9{ZJ&A8EQ2PzuQ#T9 zeB44eK-6gUkn|prqd6p8kz467_O&VA^*Xsa!YrNJ3Sh-=lX_@#W|hSKqLaq&b&ubh>!`}~ zgk26ILBgPit542hG!A2rZB8BaNgOq}C{d4z+Qs0V#!5^v%igus`enXIXK^<1fN{SAXa@ z#k4p5oX-dKT6VFsVGa3% zALd10zB#&MjD+s6OZKZGODa|bbxO~(@LPMTOyU`HbZ^zX>hrk(B^QNyDAw5^Al^#m$ zVB^$vICeC4)DsjJm@jyzvC*B+^m>T>UKnW$B~sx7M&GLReW=Kp{F?ieDa0gmC8bsQ z1~V-2ZqZ{EL=k^{t27hNp;V|x7?XIg&tXyxQ9wvJn*~DiGgN?9o4?Nr1Uc-qfj(`n zq@-U+pmq;mvNYjCx6gbuE4m?<&@GrJ#`@2C)3j%`h-&-XZ)KQ`ifVDK)YY>Nch;e( zB{xs~?F4StYh6!TY2i6J`Oa>KfbRG!|FD z561cS!ny8O9lI6KnvJ;==9Yv}P5Yk3y@c@5Mcw}MAo6wq_WB)Fa}Zb_5%@wzr^CdX zhox6aWUy!QTh#%cb%@FO2f8Zex6C)EG|3&pftI|_kQeK_E- zpP>!Ssu9q~GmuKVR@UHb@HN(bZm=MR9>_DMZ1{oF4ayb)5kOkkCV9#M}Y49w#QZ_w1fgkB%XsC&58>_za?pkfbjHfg8W*vZW?yg}8F$ z@StsV+B`Y6F;jCrrG6cO%#86Tcn>MU#qdX`y+ero&S~8tBvvZ%7Xgj5={0m#xia0! z@*IU0O+iV;Rd#KT6O*{};Q3c3Liibx9V{<;t^HL8hydYHoj%FY#C%M%mc6$U$Haqu zq_Z27&i+U{15{49+H4C0iRmgbct>d(6nlcq^BV&ZpY+<*tr_9@&s@8V^L@Lrxd>X( z9t(~~(2Ww>1$&WDt^UU1V4`4i38Y94a8>?{(=RwBF^R|L_)Sz1(JvDHKSAK@Ezu6l z1g$8ia(6!T#6p{eeI5jUm^xNJ^XpTGPWVi`1?j@m)m55 z(4*R7hx!Hz0mCgbx=j?Umzqgn#ueTd8aRwe6vY?XYaqG=Q%rpza2JQLD+STubcD*! z3l}u9mq}W=yQ$ITr)MXGOgNr@_}qU22$k5RALYs2`;dgho}NrC+W;ihWrd5bvd1hS zs}__5r~Go(f{Aw8(6zjupG66H7VXkGtW3DVbK@mkHiXu>51kY2AkEn1fG1rZ^*?!= zmq6tY^$~zsVRcYkt;nyI_H70AVMK=Zs`%pS2-slDRcMe6aLf)fjyX6i1U1v0mh>wg ze&3srv$qa14QjQ^%WNA^+>csBiO|}2R+{0tfRwQlLoAvR`9ZneqyKW75Q)&!K~T@- zH>gKGuP8knc64;{xRLn$PK+zq`!cSK5#?^c59k`Ckr^C$iH`0K^I)^J_KM|4G=`#u zR-BucjRJzAtK5uHLoCMK*NUv$TEd@Sgl@w|rr#KBPA^r9s_slxuM#hvLepxJ5yUJV z@;ty1IZZ$12)r4?Z|V)QG&?P(92!S$C#+yZKpil9G0!dL2)dkC1C)tux;QngHq%Tr z_KmcJ2A|rrH#it@TYw7?)y|qWStkkAWLy#osQe`pItPY%OdDtoPruA5aRY zEZo7_aJ&u*ThMsxdpa>8VZ?!oTYFI<#bB8-DHz*8Af(kRTt6*dz`MSgTj|nRc#M=M zOBkiZQN(Q%b3`p;!@Ycr&&c>zCL?^|oxY613I44h)yxvDp!xkbSsxvX9vHC^>Pp?M z5-tiofGX*YR&J}@KKNLX$;B#bZcbf+0INB1>7nv{pz2xltp7HWE;+0LbN=KO)-oTdnRJ zl-9=Bb4ZGmnPov61~eiXKY5CNZ7W{dyU>MgS*q&Y{QQ`zbwW@{3JLY9vn{?&OxKiK zD`vutuxIp8U=mp;Hj9Tv(Q91BvI?po4`dgyfZzm#)bGW}?^Tcc(ZpWavF2hvHL(y9 z74rScNodtza9*MygojxwPO6Y-(xFOa#PCzYX;~&%{pLRwP{5%Q)LSR0p{4=uqc!`A zxsKV%AWL2~j;7%ua7CAUS!@uvDgWYSMoePlq0e9TVmPVa-@ph&L1=WhBmw*6b^v}^Bcv$|GBKXb-5p>Cz&NEN} zU7Xh~jy;*Fw|8I(F#j7&Ax@T9kiFX+b6& zz@jru~PA}qae$Ybw7B079l~As#5@gpSdRSnw8KB@ug_x zMbjvY8O8tzf7qU=au9$c-pVQcrX(W?+PnP5o`9Oyg=J-d{*7{L${)P;yKuWdi`eh+ zykV3H$D0x7hiAr3OWZ43THi+FYBDnCDe z{mB(+VDfw-0>Gd+&(549Xw3uKCH_dL8BVkKE>Tdkfdq$*IzbI3~}AZ-M~YPJ+FMq^Ii4=$g(7Xb3D2K=@LknT2jf*N6-_u zw6j={P_fR5!XRRLtxUK+6YliU@d|qTAIW{<74)UEsF6#J>v>fdhpt?9f>t6Te+FdQ z1+5AXB-HV9V-fId)E6I>1hQkmp}v_g)^0PxXw8Afi+hkz_FSXxP@=VpLYWjZZseo& zWeH5;-X+WavxsPd@eAV|BzE72q=Jn)laQ%d!czN)*#3vF{H!jhUcF(;4cumv35P90J3G{rQLgiLm?Z@b@>6}L%$?9*Xzixzr& zIlu$I{O4DV!Y$8jXxv+(Tb8E4MbF4)E z#3gCYjJZlDoBHCF z932Z;1}AjI7m5Xb`x~(E9^i9Oefm?Yma+?FHWE7*!Hh@G5$Neq6F#@}Ry35hg-De1 zdHcMc%M(>lV2JX>rV0#Iwv)38n z2@@Y!!K+7dvwS0QyRY74F!uIIkz(K+cpw?ey?oX?0Vz&yag{+r+b2e< z;Sl(?L};ff5=xu1X&y!#Q%Y0!xkr>be}2wg8`DfH9?9Cf(Q(ek@|&Jx2a;Tvn=Ifs zAnc@putVRp=2Qz<$On?JF#t*?vh}eF=*GLaKeALl{bireAWOYt&gdt@Bnr>I<5Wc) z&`2`gL-K#Q4m>O%COjJ5dVH6EqTuBb&GPjra9gY%{8@K;$BQlww?7&}v^#gQ;v^5c zFYnTGDQ3iueIZGZ&F{HqBB^o8 z<&&hVa5H)l0v}_3*AJMyep0-_U84126$dV5goUcn$54Q!<<(c42da-{ z>5IlJ7x!WU-^@q@M{dNgLoPVYGBMY1@x^q&%(d2K(7#sfVCs|Vb}_|rpn5P)72(Q# zIalr;aZEO)Az2l{$Jgu*&I^h_lb{Gh6W0`$j5H82OTiJEIh_IC=hmt2-pGxg>;&De>00uA%S<@SwRAH%Orq5MNI#GeEKD9J z95?{eM?@!r=7-;t)vuGW9MCOBb}Js|SGe)VcAOUjmWofCx)J#2O7nrn`z8c>Cmt|$ zGRZVyX553fLfxX6M5d1qUaOJNkupF>6gqVJFTn=S=h*u$?8jP@ zH|(hev%F{-x_5bUq^eF5iw44#^`5FH6O0;hKD3S(ecsTJeh;AtqyEg5B-!ZxMY18; zy^}?N74WZa_?0L_P?10}tC#0K4WFmg@6%ih^)h0_SYtD6k#- z_tc(dg3WM0vaAOXs2Mub|C8cznxuHVNNz7q3NG20*UFzvd5P=l2}H>&ATUa@Ila30 zO%1+{NENBAAGRB>8-sUojxj6_iCji7h=nL-XNgWhrlw#C$v8N<;DwH z!AlO0y7s7cDj}q<$Q*CuCg(%z3YIjs`=@NnH*tr5UjDL#-wEA!cSw2XOq zPHE8d@r4U)#f^E6P_O>-*it^;52wUFSI7M=CZzQIBM+FIV)u>b^1%G=U0Yj)X0V9k{;Jw!jW zv(*x3DgBl1rtXD;&GnK1C5_4#BA021eGkryR%4-(lK12Mtd99BdmR{F20WzFzXs#BZnR=@qwD7+P=l?Hsg`=#Du>UVQq+ zKKYulkDU*B1_Q5}c@wM{;VRazJDqsZvVk)@1ZS^}yt#&W*8z^YOA43LQET+JsXloT z?W zHp?T5i_>lAB_eZS$G0=-#<*odpc9m@0zlIhDz^-X0)N6eAl{#KE_6jW{+y#Qi70tf zpCDrS{uTo-B-Gri^eYv?{aHp@HVH_C7*MC=0R`fp=?jUlPbs`_Db`gJ2JHV>&gK#e zq19aQxWXBP*_Tlih*i}W9ej`gNO$SB86g(^yNo+8lZaEVnG!&(=6{CkKS0;-iZSlDaRj4L;-f1y92q`>dDN43{o=L9!EF}@>A2I5S((sN^Jpy`ua z=3NIJ63P(zJ{O>%T1E#*T0?DgZ&XBx82vwAh9hUsRRHxLTd!MyVwp{fC8)zixpkp9 zNeaRhl7jF^OuG_-ve5rUvHf?cqObFX~374rO9U;+RxI0~aZg>l*Md6C@wEOwhy8?uNki^PIu>mNIE- z!U1kjhm-z%l~Wm^`#u=~vg_x2y7puw%J0N^{vx84F9iF&T=_VnG1`UhZIJ~8B~s%O z2V|_jqTGL%{O{Au9jF{YE9SkdkxJ-jo*%lu8gH!!$R5j@WxpCAo(Xz65V-!xFr1AL zo@(1+=e8f`opBnNcYVDqdt7Yc_F^2-=eB_3cmMI@4BvDHn!mkG{{@fX-%-fC{kXi8 zH)Eb-uSIN{>xx#KMdKZ1(;g3}7d^RSZODa5JhDldppH0jJK=f^1b&xj;lx1*XTM3F zRRF$NXRCb^0j3)Sf+A+qtRE5^VRHDw5wzFE_f?lb?X*HZ_AFxYNvK&W6HLx2;rx4H zwD^o14=`=_4i^A^NrH!xd9P(yi%-9blV@%w5N#~chz}3 zKhN;@rlk~okpanZuwLL9q{)jeOTq?E9K@JBdBrh#6f?k-jxj|NSp{F8lnW(B+&{Oq zw+&MPOtW4$KUtSq_8*)uE4eb(lJM*>2gc;}y#riehabgti)bKpHBxQ{LEz63x;cjk zS}dN&ISW{ESiC&{5A886E3Wx-Fm%l2wx(w&3+@HYR4zBLZ;1bSa|7bKeT<$v`DD?- zOS)OqZ2#*J^EChm|5k7S zJM?coaKKn7nP0IoYEZdVN79`I(AV!s@@#z<^dn3bzbEW#pw9415n=xl#vZv0?4BY} zZ17&_roY&C^G8hCkPl!J3B@9u($Bd zI28PbM-&{Z&>U%Dy8C$VPU(Pyqirm3iJnPtj@GKKa&8^Fn)JI#V~f1&GlXQ)kpE1i z7571`UA5G_o!FcIf;(Wq!S-INZLDPe%Oe-o=Zjlo?;^Zd^NKs^#4}DGbnc&=08L6l z7bN!oIX1lbim`v|%z&Et`YcI=9Epv&R@KCZUTdl?f|4TI=3@;K>(^H}mQ1XpPXMhu zg2uV)B=gOW67Vir`$zxve_8_mMfc`zp8mbl^#8S85C7bt`kzZA^^v_e_#=6Y(WU`i zH|{+hJlofAcXChPPQS_=zF59UJ-5QzX>{w_nh88XJTlw(IH@+f5fZV~mtS)Hk7~$6 zcdmmi)OW@NA7ygQxU3@97mspNx`9H|pE{I*^UQB+PyT$E`6F@BN;N=j_M1BaiGBV> zFM0>K&rShpA%(Jfd+dnU_fCpquGXy&ed)r{z03q?il$y z)jOS83!m%eB5!^%&)ph#S+h}$@}<6cgqgxIrl%9aZI;p5we zO^SiNvDUWiSpK<{jGaC-(UVP+$)Yoowg+yqW2Yr$q~D3B*%n-SUb);m->Gy< zeN{V=@{`-tp&wlc7uPX9IOO~ULu{|z{-eo64p1ozhT>$WKOwC39r|jUGx!`S;M3cg z(`#LodQn%KL)@vx$4K}Ib;wF%m* z@ApO8N929D(8kHZq*4gs@Zz~qCZvNvkRZ5F8pgFrO_?I3?s zO|pRJo8Md8_FPo%b~$hc|Fuzs)Hm>7-|+cOtN4FRli7d5?N8$w{*yF+?o9r-FY2*i zqGCsd7HCnn3GUeCBKlQ|&I^yTzl-2cSKuZo#(Y>aiIRnFpvjH^RkITHV{QSMI_GW9 zE&FTDAR+N=x<_F%VR)iF&6nvz58dB#1!)Rdow&bR)tj%Z6HnwdVY@v6plc+hJ7I+z z43i+$_@b{ZZvQle0uB0{cUxY@W1tHTq`ERtWNo-cf7zf4GT-$RMUzEEPmZ%z6e9?mDVC`F?#M8tTlp3OEF6re1*ExM$nYQ zVuooQINpOj_sW2_Wc`%g0Q9^cQhw0NhdzlBy{Y%|0FD?-xoiFuhl-+0#Eo_Ox%Il& zq8lb^3T|Ik9@<=ft6C?PsWaN|XX6BA!31tnGrC1bB3{5hy}z~DcD3PI(98zzqx(4ay~e3W%~j|qpH zRny2h{-hlG_dtxAi$;f zo_yi|V>;JuF+h)FO&^Ss8i{thd}2sFLp__jqd9TapZ*Z#ma6=>T2(uXyo1nwBTrVA zehlY%jIVNylrMBDSXtVgbi+3p>HOPO_lVn#R=WWU1jbB^zsVTmo%SE}#})xl-#D+#IqQ%bipeoXmcY>6?uAm1p-O$2U!mP|==IPkHDWensdlgONbvnz`a_AjIoc553x(So8K`Y(UYHeLks+SNsW~J+5(R*Gal^ z!ID^DmkV8sH^^y!y;H_G#-1$_M0gGF9FcIXyE?b{d2yvWE};h7Y@eMy1lR8P_9*fQmofw44f1>nR2TtTXO*$ zJ9?HMH*eGLFwyUjF$5fVGb1uuC#YlpQYcB|1jbl$Hvoj<^*b32$!=yDzLf7 zd-||*u*eZumAz7Gw$9I9Id|jUT{@aQeFv@YKE=4;_pCF({8ad(dEAQI?kOa z?vf4a1`78@?6#&kX9{c=PNlvFPFK`sa5nCSPEKmA=7T%3UBGyoUR&lQLTYvotXc`; z)}xubnRO7ze?2AwoBbur`dhc#YTopCJOjkR(8niBpV}=!ldvMx3=4D@>&os1kkg>vP%D{ROLm|)&7IVvd63XVom#K% z4F`Xh+3E5yI)YfR=s~M!+bcOFO+H*_?k1R9$~`y~(teeDTac>?=exy-susZeIV<@f z_(llcwmICsMODsJi?nnO#KcwL+L@feFO{hBpmS-|M9l5?N}XONR95V%oZ3;pyP z0!(IolRx=_)w*s^RuR6-?LG_cK~SDURqslTF{YLlB{1|jZ10>q5k3}S5$svm?$=bC zR`vw=pGb;io^H)rIdBMnnZ^1su~&Rptxm z-#5;Z+tEEgI)i_#Claf#Jqm$YEL0NKv&wA6Y8nmaLJs>N4p64*^rUTdnon)OS5e|i z%gFUlVD@P0hY#nC9L4%1dFuLI6?zZDEDh$|&LCVLI+Esjz@8J~MPsVfj`g#zbvXhv zq(`oOw5#~gz*yxSfH^#+PP05GsN`O^?mA}Z83^od3+!sP*Ryr)Oto#55o!F)?L|vf z0YEv(_B>x}n7V=Rz9eP@ssjbQ;#Xvhjv#t%h!@`umE{mDaxazy*)aFY#!0R!juQpB z-Ezc^);LlxEzrht&D@jSxoA~tn9;eJ1oIRm~UD zK-r_fYH$JOryS4sgc7IVhof?PI7epq>V<0& zAUC0oFD{Jsbz?sjG*+|)C>f&4mS^Qyo3_j@|3QEeCUd*#r(~hx#J7Di+f8mD!L9>yKb4SCBxGqwiJ`1LMwE7b$+PTWXi#`$ud|!BnFYI8rD)}8_A5YFQ zuh#7D+09-$y$$c6tP+c!JFC`AQd(g6=t~gwV+HM~Xvra`&peGKCg|a*eWV&KK%T6R zU0Yfk;B+F51`A5`5(gt)+{1hH`7DMwzCA6{jQLZ1q{mDN>D~`BzZu~2a zUQ5r-%{u5h6*oYVBwhH*x0{ouPb4&O*!ti66v9|?0!4JT3B4?FnzV{c@EmnjwN!uF zrAA=m7ChBX{OP0rvcKXyqBToKMiE8&Hv<08pZz~){O@?C{~x%kt2^W!d&kV`7%hUp RKW9Ovsiu84_sq4x{{iqAk+}c> literal 0 HcmV?d00001 diff --git a/contrib/plotting-visualization/images/plotly-scatter-hover.png b/contrib/plotting-visualization/images/plotly-scatter-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..20889573025e59824e5b9122c67014472c319fd5 GIT binary patch literal 38061 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 VPvgk{wY4B~Jzf1=);T3K0Ra8lzPJDY literal 0 HcmV?d00001 diff --git a/contrib/plotting-visualization/images/plotly-scatter-size.png b/contrib/plotting-visualization/images/plotly-scatter-size.png new file mode 100644 index 0000000000000000000000000000000000000000..3f8b78c2fe2e209bc399fb0cbe2aba54865755a7 GIT binary patch literal 28702 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 EKZ2*rBme*a literal 0 HcmV?d00001 From ba1b163b6ec66507d91a1e996f36fd84e8dd136b Mon Sep 17 00:00:00 2001 From: Manas Deshpande <66067507+manasdeshpande@users.noreply.github.com> Date: Mon, 1 Jul 2024 16:02:10 +0530 Subject: [PATCH 2/3] Created plotly-scatter-plots.md --- .../plotly-scatter-plots.md | 198 ++++++++++++++++++ 1 file changed, 198 insertions(+) create mode 100644 contrib/plotting-visualization/plotly-scatter-plots.md diff --git a/contrib/plotting-visualization/plotly-scatter-plots.md b/contrib/plotting-visualization/plotly-scatter-plots.md new file mode 100644 index 0000000..dc40b1f --- /dev/null +++ b/contrib/plotting-visualization/plotly-scatter-plots.md @@ -0,0 +1,198 @@ +# Scatter Plots in Plotly + +* A scatter plot is a type of data visualization that uses dots to show values for two variables, with one variable on the x-axis and the other on the y-axis. It's useful for identifying relationships, trends, and correlations, as well as spotting clusters and outliers. +* The dots on the plot shows how the variables are related. A scatter plot is made with the plotly library's `px.scatter()`. + +## Prerequisites + +Before creating Scatter plots in Plotly you must ensure that you have Python, Plotly and Pandas installed on your system. + +## Introduction + +There are various ways to create Scatter plots in `plotly`. One of the prominent and easiest one is using `plotly.express`. Plotly Express is the easy-to-use, high-level interface to Plotly, which operates on a variety of types of data and produces easy-to-style figures. On the other hand you can also use `plotly.graph_objects` to create various plots. + +Here, we'll be using `plotly.express` to create the Scatter Plots. Also we'll be converting our datasets into pandas DataFrames which makes it extremely convenient and easy to create charts. + +Also, note that when you execute the codes in a simple python file, the output plot will be shown in your **browser**, rather than a pop-up window like in matplotlib. If you do not want that, it is **recommended to create the plots in a notebook (like jupyter)**. For this, install an additional library `nbformat`. This way you can see the output on the notebook itself, and can also render its format to png, jpg, etc. + +## Creating a simple Scatter Plot using `plotly.express.scatter` + +In `plotly.express.scatter`, each data point is represented as a marker point, whose location is given by the x and y columns. + +```Python +import plotly.express as px +import pandas as pd + +# Creating dataset +years = ['1998', '1999', '2000', '2001', '2002'] +num_of_cars_sold = [200, 300, 500, 700, 1000] + +# Converting dataset to pandas DataFrame +dataset = {"Years": years, "Number of Cars sold": num_of_cars_sold} +df = pd.DataFrame(dataset) + +# Creating scatter plot +fig = px.scatter(df, x='Years', y='Number of Cars sold') + +# Showing plot +fig.show() +``` +![Basic Scatter Plot](images/plotly-basic-scatter-plot.png) + +Here, we are first creating the dataset and converting it into a pandas DataFrame using a dictionary, with its keys being DataFrame columns. Next, we are plotting the scatter plot by using `px.scatter`. In the `x` and `y` parameters, we have to specify a column name in the DataFrame. + +`px.scatter(df, x='Years', y='Number of Cars sold')` is used to specify that the scatter plot is to be plotted by taking the values from column `Years` for the x-axis and the values from column `Number of Cars sold` for the y-axis. + +Note: When you generate the image using the above code, it will show you an interactive plot. If you want an image, you can download it from the interactive plot itself. + +## Customizing Scatter Plots + +### Adding title to the plot + +Simply pass the title of your plot as a parameter in `px.scatter`. + +```Python +import plotly.express as px +import pandas as pd + +# Creating dataset +years = ['1998', '1999', '2000', '2001', '2002'] +num_of_cars_sold = [200, 300, 500, 700, 1000] + +# Converting dataset to pandas DataFrame +dataset = {"Years": years, "Number of Cars sold": num_of_cars_sold} +df = pd.DataFrame(dataset) + +# Creating scatter plot +fig = px.scatter(df, x='Years', y='Number of Cars sold' ,title='Number of cars sold in various years') + +# Showing plot +fig.show() +``` +![Scatter Plot title](images/plotly-scatter-title.png) + +### Adding bar colors and legends + +* To add different colors to different bars, simply pass the column name of the x-axis or a custom column which groups different bars in `color` parameter. +* There are a lot of beautiful color scales available in plotly and can be found here [plotly color scales](https://plotly.com/python/builtin-colorscales/). Choose your favourite colorscale apply it like this: + +```Python +import plotly.express as px +import pandas as pd + +# Creating dataset +flowers = ['Rose','Tulip','Marigold','Sunflower','Daffodil'] +petals = [11,9,17,4,7] + +# Converting dataset to pandas DataFrame +dataset = {'flowers':flowers, 'petals':petals} +df = pd.DataFrame(dataset) + +# Creating pie chart +fig = px.pie(df, values='petals', names='flowers', + title='Number of Petals in Flowers', + color_discrete_sequence=px.colors.sequential.Agsunset) + +# Showing plot +fig.show() +``` +![Scatter Plot Colors-1](images/plotly-scatter-colour.png) + +You can also set custom colors for each label by passing it as a dictionary(map) in `color_discrete_map`, like this: + +```Python +import plotly.express as px +import pandas as pd + +# Creating dataset +years = ['1998', '1999', '2000', '2001', '2002'] +num_of_cars_sold = [200, 300, 500, 700, 1000] + +# Converting dataset to pandas DataFrame +dataset = {"Years": years, "Number of Cars sold": num_of_cars_sold} +df = pd.DataFrame(dataset) + +# Creating scatter plot +fig = px.scatter(df, x='Years', + y='Number of Cars sold' , + title='Number of cars sold in various years', + color='Years', + color_discrete_map={'1998':'red', + '1999':'magenta', + '2000':'green', + '2001':'yellow', + '2002':'royalblue'}) + +# Showing plot +fig.show() +``` +![Scatter Plot Colors-1](images/plotly-scatter-colour-2.png) + +### Setting Size of Scatter + +We may want to set the size of different scatters for visibility differences between categories. This can be done by using the `size` parameter in `px.scatter`, where we specify a column in the DataFrame that determines the size of each scatter point. + +```Python +import plotly.express as px +import pandas as pd + +# Creating dataset +years = ['1998', '1999', '2000', '2001', '2002'] +num_of_cars_sold = [200, 300, 500, 700, 1000] + +# Converting dataset to pandas DataFrame +dataset = {"Years": years, "Number of Cars sold": num_of_cars_sold} +df = pd.DataFrame(dataset) + +# Creating scatter plot +fig = px.scatter(df, x='Years', + y='Number of Cars sold' , + title='Number of cars sold in various years', + color='Years', + color_discrete_map={'1998':'red', + '1999':'magenta', + '2000':'green', + '2001':'yellow', + '2002':'royalblue'}, + size='Number of Cars sold') + +# Showing plot +fig.show() +``` +![Scatter plot size](images/plotly-scatter-size.png) + +### Giving a hover effect + +you can use the `hover_name` and `hover_data` parameters in `px.scatter`. The `hover_name` parameter specifies the column to use for the `hover text`, and the `hover_data` parameter allows you to specify additional data to display when hovering over a point + +```Python +import plotly.express as px +import pandas as pd + +# Creating dataset +years = ['1998', '1999', '2000', '2001', '2002'] +num_of_cars_sold = [200, 300, 500, 700, 1000] + +# Converting dataset to pandas DataFrame +dataset = {"Years": years, "Number of Cars sold": num_of_cars_sold} +df = pd.DataFrame(dataset) + +# Creating scatter plot +fig = px.scatter(df, x='Years', + y='Number of Cars sold' , + title='Number of cars sold in various years', + color='Years', + color_discrete_map={'1998':'red', + '1999':'magenta', + '2000':'green', + '2001':'yellow', + '2002':'royalblue'}, + size='Number of Cars sold', + hover_name='Years', + hover_data={'Number of Cars sold': True}) + +# Showing plot +fig.show() +``` +![Scatter Hover](images/plotly-scatter-hover.png) + From 47690b7af47947878119756e6bb554cab6d13998 Mon Sep 17 00:00:00 2001 From: Manas Deshpande <66067507+manasdeshpande@users.noreply.github.com> Date: Mon, 1 Jul 2024 16:07:37 +0530 Subject: [PATCH 3/3] Update Index.md with plotly scatter plots --- contrib/plotting-visualization/index.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/contrib/plotting-visualization/index.md b/contrib/plotting-visualization/index.md index 02324f2..db7f33a 100644 --- a/contrib/plotting-visualization/index.md +++ b/contrib/plotting-visualization/index.md @@ -10,4 +10,5 @@ - [Seaborn Plotting Functions](seaborn-plotting.md) - [Getting started with Seaborn](seaborn-basics.md) - [Bar Plots in Plotly](plotly-bar-plots.md) -- [Pie Charts in Plotly](plotly-pie-charts.md) \ No newline at end of file +- [Pie Charts in Plotly](plotly-pie-charts.md) +- [Scatter Plots in Plotly](plotly-scatter-plots.md)