From 9299c86ea071665ffc9b9f8cc72730b0ceb3ed22 Mon Sep 17 00:00:00 2001 From: kdorr Date: Wed, 15 Aug 2018 14:59:08 -0500 Subject: [PATCH 1/4] Add altair to mpl scatter part 1 --- _posts/altair-to-mpl-scatter-part1.md | 157 ++++++++++++++++++ _posts/pics/altair-to-mpl-scatter-part1_0.png | Bin 0 -> 35234 bytes _posts/pics/altair-to-mpl-scatter-part1_1.png | Bin 0 -> 12601 bytes 3 files changed, 157 insertions(+) create mode 100644 _posts/altair-to-mpl-scatter-part1.md create mode 100644 _posts/pics/altair-to-mpl-scatter-part1_0.png create mode 100644 _posts/pics/altair-to-mpl-scatter-part1_1.png diff --git a/_posts/altair-to-mpl-scatter-part1.md b/_posts/altair-to-mpl-scatter-part1.md new file mode 100644 index 0000000..b09c283 --- /dev/null +++ b/_posts/altair-to-mpl-scatter-part1.md @@ -0,0 +1,157 @@ +--- +layout: post +title: "Making a Scatter Plot - Part 1" +date: 2018-08-15 15:00:00 -0500 +author: "Kimberly Orr and Nabarun Pal" +categories: user-guide +tags: "intro about scatter" +excerpt_separator: +--- + +# Making a Scatter Plot +This post will walk you through making a simple scatter plot in Altair, Matplotlib, and mpl-altair. +We'll examine the cars dataset: +```python +from vega_datasets import data +cars = data.cars() +cars.head() +``` + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AccelerationCylindersDisplacementHorsepowerMiles_per_GallonNameOriginWeight_in_lbsYear
012.08307.0130.018.0chevrolet chevelle malibuUSA35041970-01-01
111.58350.0165.015.0buick skylark 320USA36931970-01-01
211.08318.0150.018.0plymouth satelliteUSA34361970-01-01
312.08304.0150.016.0amc rebel sstUSA34331970-01-01
410.58302.0140.017.0ford torinoUSA34491970-01-01
+
+ +Let's plot Horsepower vs Weight from the cars dataset. + +## Altair +```python +import altair as alt +alt.Chart(cars).mark_point().encode( + alt.X('Weight_in_lbs'), + alt.Y('Horsepower') +) +``` +![png](pics/altair-to-mpl-scatter-part1_0.png) + +## Matplotlib +ax.scatter() allows you to specify that your data is being specified as columns from a dataframe via the `data` parameter. + +Notice that we have to manually specify the axis labels, the gridlines, and the fact that we want to include zero as our lower limit (Altair defaults to include zero on quantitative axes). +```python +import matplotlib.pyplot as plt +fig, ax = plt.subplots() +ax.scatter('Weight_in_lbs', 'Horsepower', data=cars) +ax.set_xlabel('Weight_in_lbs') +ax.set_ylabel('Horsepower') +ax.set_xlim([0, None]) +ax.set_ylim([0, None]) +plt.grid() +plt.show() +``` +![png](pics/altair-to-mpl-scatter-part1_1.png) + + +## mpl-altair +To produce the mpl-altair plot, create the Altair chart and then pass it to +mplaltair's `convert()` function. The resulting fig and ax are Matplotlib plots. +```python +import altair as alt +import matplotlib.pyplot as plt +import mplaltair +chart = alt.Chart(cars).mark_point().encode( + alt.X('Weight_in_lbs'), + alt.Y('Horsepower') +) +fig, ax = mplaltair.convert(chart) +plt.show() +``` \ No newline at end of file diff --git a/_posts/pics/altair-to-mpl-scatter-part1_0.png b/_posts/pics/altair-to-mpl-scatter-part1_0.png new file mode 100644 index 0000000000000000000000000000000000000000..9f25a925b220d648f8311f6d354a7ec58f17a342 GIT binary patch literal 35234 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 G$NwL_H*0bL literal 0 HcmV?d00001 diff --git a/_posts/pics/altair-to-mpl-scatter-part1_1.png b/_posts/pics/altair-to-mpl-scatter-part1_1.png new file mode 100644 index 0000000000000000000000000000000000000000..9f5cf5d6e2ef160a00c374ac084af5d56c6e50a7 GIT binary patch literal 12601 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 literal 0 HcmV?d00001 From 5177c2c02c60be3e0627ee3d71423dc98739e9b9 Mon Sep 17 00:00:00 2001 From: kdorr Date: Wed, 15 Aug 2018 16:01:59 -0500 Subject: [PATCH 2/4] Add mpl-altair plot --- _posts/altair-to-mpl-scatter-part1.md | 3 ++- _posts/pics/altair-to-mpl-scatter-part1_2.png | Bin 0 -> 23250 bytes 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 _posts/pics/altair-to-mpl-scatter-part1_2.png diff --git a/_posts/altair-to-mpl-scatter-part1.md b/_posts/altair-to-mpl-scatter-part1.md index b09c283..78001ef 100644 --- a/_posts/altair-to-mpl-scatter-part1.md +++ b/_posts/altair-to-mpl-scatter-part1.md @@ -154,4 +154,5 @@ chart = alt.Chart(cars).mark_point().encode( ) fig, ax = mplaltair.convert(chart) plt.show() -``` \ No newline at end of file +``` +![png](pics/altair-to-mpl-scatter-part1_2.png) \ No newline at end of file diff --git a/_posts/pics/altair-to-mpl-scatter-part1_2.png b/_posts/pics/altair-to-mpl-scatter-part1_2.png new file mode 100644 index 0000000000000000000000000000000000000000..9bd3aef7a142a6aa2c465cd77042bcd1db12d8f8 GIT binary patch literal 23250 zcmcG$bzD?k+dn#lill-_hk$}2Al)HINlQt0cgIi$AV@1+($d{2-3>#Bbayjw*64jd z&wI}M`{Vp^j(&iNJ$tXc;<~PHtO<~p6~{s+Mu$KkSdtQN-a#P9J`f1f0@_{h3j5H^ zGWdh)AS|hb2L5@V8GZrJ@7qeKIY1yddWavSpMqIt;6-jn(f5vuHpY%FdiF*TD?LYB zOB+W^Gkr>DBYOuk8*54yM)3b7rKzK%Ee{jZe-B`^u{UAzOCH65Kqw)SZ(b|8CT!1o zdMKSFp530&ER(Z5p^Vji_^v6QFj83A{z=)ppO3csp2Feea|KTDl%6~FIhN3BM~e^T zwd>A>>d*l7*$QW)Hft9cN!_B|b5jN4bd1zsg$U` zR8&F*(_w;T8C|3a954Y6U{I@M z%{>2>-oGmV9x9S(@Y;{EEaTpxgg_YC2{Fx1{5X7Z>j=E8zyqwicw|VNX%JLMQ$|Il z3)a@f*T)f~L$g^sJ6iqh=x!enw-U``OXGGB-DPKsgDwPtXqwObwATpz1eFK(z3>jv z#yOn=Lp>$|to*wIg(>4*#!qnmzSkxyfM{ZbAO45MWL5293GyHJ6d=ex;+S_u%qKl1 z=oaEqEjl)CR1Pv zyuGP{-@Ho!y+c5aMyOKtr!mp!peL&cUpEys|80U280e-pG-N-80Q>!aPfAD#8qBns z@TWEeCC| z@PV0WPnD{5e7s9r7{NnSEC}S~kv(=240Il3K|#C!*AWk5DEPX2xLviy!9wy8cjLY{ zu!Wd&`*cie3vOhH@g{$S?X@fTaFpRFGpC^D1^C1J2>>%{mx7BPUC6Qmiy_{TJa%*aM zV0}ms%0jHWB2#m787ShH`X7@M(KThAJ!=J*o`Ly+7zv?alMg)yzOSoVQ!5!NxAU9` zkwN4_WrSiPZlF_b!JcD{gsS>swKeFy&U#H$Mqc*$2Q5P=Afl1tXkrg=2JJa*Z|{yo zIPsPjm$yW1Q8FXOYr%AZW7?YPM$Twe9TFbP^CzR~xPPP+c^QHAq`$FvP8=l}I z7BeKo!5lm^KqG`emOtYiVTBX^X?U#V0OuQhumT_u*FV?w>3Giwf#s>CISlZtrild) zSJ^E&UaUlKCA!Q7aAy`4%1K2tj>Rw=u-Pw5FsPSFT%GNOavSf>)z_T={;I5|mTkAx zzEL|5FOW^((kpiZaWDOst^`=q8(mryIYwtsDhwT-^f*AgucqhCH-A9z8nW>^A_1etpiv>Ms%ht2VLkgol9-fqw2eR~ zPl)ozJbc$>bA5eK=ekYjXL|aZ+kKo{-SPl%;UB^IWMJMg80S{FdsnMy4|jHJ5*+vn zKhfy93>CPPSZWU*vGKmr=!<0)pPilM*+~C(yq*@iNiu)#N3*e0IX_Nhl8_P=^|&vA zTXBH@ETQ4%q|jo%!80c}_ZtoWeiKT~PQ~=`kT^wlSsB}o6V%;(`RryOViY{gyG}g}m8Ro)YUbwV5j0ND&N*deO6=_H%pK!nW7(yptoG85 z2LxV%*VY za^+C|)0o688PmQv_QNZ9xHm|CotNxL5ZiD2VKz0tnWjEaw}&#Ib|t+waY>HKo6ZKK zz-_MPJgEX<1Vbn%2rtw2I1u&Rbx8hNM~;Td_UhG-7Jr-$(njxFuRF*eI++i0Keh<^ zhXz#Yx1obIDt-gM81SyxQh`8h>%m;gt(v%cn}jm<}Xa)fCk&YuQ7SRzrDi| zwFY6-s!;;d=x370p=2;I`wJG6fxWZb)Kp=wMjg&M*R&`mor0+;b!Ao6EsgohC~!q~ zhgE6GVZ=DJ@l;zr8stcieav85yZ&MFoL;F)*g%tV4HQc^X_W zl?7X8wVf`iG!#K{y@j7iMKoNmFm=@3^yu8Yo4;P=d@AWO?^zib7+7XHM0Ij@ww3yo zaoF>0mVmpWs_H$W!=qlRrLL|TD=RB+Ty7P@=HavRYF6YBh(uGbymeCs233#%3MUrS ze=-RrhJG2O6x|u!SLqnLQ+fTn4e3V^ix+RpPUAM>E-si0HZL%w&M-ZQUwG+MTUl$* zcx$hL5BOZGYA%m-OZlx%c0_YD$lcCXufObzW8q*5OtzFb!=yO_r~jL*Kz)Kp=J@*^ z*mifXSKO+%#5tPdFm{M0e4pro6lVR3a2QNHGOpn)yEH$Q%T6Tdi44x-yjOd!>H(%xY90rY)S}3`yHA?TM&x_Q+16ElRvu&9wOM? zHG)3*_^o$Fig9lm@u}7aufU6+38-3e#GReb%(`k4rzWPt)1qQcR<-Rt=l|9*0xz?e zdV`^lcoCJ458F)HgI~S%%PpQz?mX^zM0S;Ek->Nf&e||jsR|kp!0iKpq%UUrqD@v2 z(C$M2)+d^!5L(!OjxModlAU$23zzHr*1=`ZP>Bf3|DL*Pqv7G#|8c2*pF>doUK%_< zAOdNu`<8v{?nL!#76_!P2v1^h-X*1^bX@Nt=!s`lW=}rGLhVL8KOs64GJvQuAp3-f zgaZlvKRwY0hZU@rU-R(pa(;8DTI8->Bo9gjpQ;-F-v#DSB=7qPyT;gr7Oa6utTWxa zh(cA<%)r7QvD(iC?H6xIE3FKSJK)Cl*qnT8!qxY9Eyz~Ez-gL*q20u?YPtC#6ChTR9Z z;*K@{;Xq#_kT2-H6PXasnfHDC_fkk3lb?PHMh)~UltM&0$)WbI4CP12{1GOsIbr_)E)e%c)NkR9x( zioZ2rRos|ha{&4$)5#Z(@9=3NA{sawnRTnzT~C8OFK@nqgu*YdeGOI)UIl}^R%UKL zujsdS75r^RV&}(}lXP^?A$UK)a7{3%3E7ree!i21{!DiKaqUz%A2aTMybGc1d3Og@yp;Flgv2YmiYdM2DV%z~y7SVlOKW+$U&Dwopb2B7}+QY-~k3W0CJgr5CsbpCv2?U2;jm#mh7Z8AvsepDuC1my?m zkKQ|I82u~U+vvQ`8m1*gzPK-Cz_17*ZyM=I8H#wu-+$59V>14T+vg6QhO+(uOqzW^%WFLu z+IeT>NsyV9<;vT(>mL4Ogyl%>K<{p#=Ue(e^Eay9?|tTsYzF~Bqe`a&*%>2XI_bku zkrnb!MBll}r=V^dfBXAV0K~i&5!KLz|MTLY1@g}wPJlN-{`ew%f1>YMB|l2-wArzT zZ%G)j*5P^0ZookTo>cx<}t5XOcq`|sOjz~~yjOMZrRlm2^k?%)a?2L`96w=AKdSAHj zE$*?Y$?3wg=63>pgQFUtl?*?M13_5xNnqinwfGy*q~(6Qw9FK~Ig?jZNF_0r86LHx zcIsg5a>4FegNEM7D(;|0Y`8F0+kkeVzD9xAw`a>6aDJxEs_{4U?i{J7#c!{lP66eh z*2!Q+Sx3GOpCTd{4pJSVfj)l3m$hnGt+yK;4wY!_gkE^BEb;9b=;>0r7}DVo$|Kn~SKMHQ7PkY@FBMWxvTY`F)q1MH%fZ39C)Cp-yXk@eyKV zxb@Bw@(j6MtYfZ>0B7RK^bI-ylYUJoj)@7O%-Zf;W3|VwT!j#KT}quKO+sB-99}B@ zg${p4geB>l(X*w2Zl^=h9BAh;f7(n~*85Jnzl(Mc6myQhwBo;srGH+ls<)q>`AC0! zh&8}-hUf~R-OlqK+U(WSgS=T^t#u?+$fK8>hSw{f_GcQ- z$s7KQ@mplTePe`@FNHt#E4J+14y1f-4bW7@%g;Ca4mvE z30N&d$FCLZOYI>qzX=cjn)B*unFZ1Q-RX_wa7Rao1r!P^B3EHu96at{B>)YF*wbj8 z+vhB$s>RxvJY9&jU2kqfBynzC8V~Ly@aWNFS5t6bu4>5XiV*&dzWr z`>po(@z*nM*c~K?ryFhQC_46;q?^1V&77T_jo#-Gz-p_bL3gb{gGu7hi zr|Eo*+8+Ko9ya<^D$Qm0e=}+xgNZ|m-x%`*K=ZLvM#(4a-d=gevg8KPU$1PbeuB@e z!wU@J-fLuU#nEOvzOkg}1f`UfH&6O}y^A~r`OTXpix+Gb-S7LZJuXja)H|68F`w3F z4sqKtH8@ayn+`^UeY)M6pO?3}{m~9nqS1VXi|rbcY(gk8{E5&@1pp~Y^bKz>qd@ZM z2Gy%j%r_y~xr`$@QUhg=kPI9@NLMUhUQRA!_zFkCjBO@ML$o*Ab=h zO0*8S+im>(b*9%zu1=fBDxz3y4fxQ>hT(4q&rTu@F+TpIH3- z{Gi(3+}%}iaw;FwK!zB;u4%&@mS3GoR826_aGr@XnLZxu*3F+2bL1fdyh z{(6l9x4=&Zmh|RKNliUZE(GVr_vJVQ9L({rn6&pc&LDow@ot|6sv_{*m=M7^C`TKU zqgwrQCjp@3n_xkmnV!yd=;s!N&iqXm`(;!1)F(asnz9V)Ty3G+OM$VQidJ%Bg=R| zRje0|??@B-M&$5!?QTp6SsoC0_wCPAYaTy!YQ@69xhoRxOARKbqqaysW4v=o9Nuwj zrn|~Pz2p^i7)Oxy-+q@Z%DDGx^|OFZGkFt$G+P0*NfPI=m2>V=09jnZ_q+?4ybiub zqz995nlCo{UM_sXVe`5^FN0;=djL6v{VlmI%>^_-Lescir6I0`lF?#U^~keWjv0{M681ZdhJ!VcNw*CVqad5M+tB#M*pD8m@NjI|Q7>bIn$u z;L79W%q{IWhx--c!Dogg&oo)Nvxur2yk5A$P)u8;nCjCJkiBd~b|m7dl;iqfN+*?4Q_6F?qv>>SPLZT<> zds{M_k}J{koAd$X;1-r@TC<=xsuC!1rkY!nb(h0NDYD#)Mb_jsZXOuhwJhmu)o3@Q~~ z1S27MREK=B%jl>xhRUIwb;7ud;13c^(UDi|hicSEB7I4$c-r?Xozo$8hu!qlw`Xc5 zi5aB>0vg|F<;D^HROqonPn77;7KpFj;NiBs1|Ydi%&TAa8c2}S9yYXzw?6x=Q{6#= z@zRdaZF3E~aHbL&b%94d?|w7Pt8LH`G6vnN zrsVea;X6qwVl%)#~p_tjj|)r~7A{WSD--g>+*&{c-6-l2f=k_NX~M;52u~I`~J1 zBA-g`WdUmYs^CUgtX>mQLpjYUDMvlVxs{&jLcXz|wON3&u}1f=bLYQ3t=$|wNz|3X z>_to+45m8Ui7l9pH>kyKy|lb8R@`^WVUFkfdchQe+B)z}Ri_Rzm!Aa%jP{nQs?kvl z8jtZ%;Umd6-vQHY8*4kUe`J;Dt`8G%I`OK2zOhoy_HtGG_BhFEk7B}d8#TgoNLWTR zz&d8^hmk`T=Jfq^Yo*wmo9aqDu>y&=)sSW#h15yKj?KnX57JUxPSOfeZ3$emg_oW+ z_LWz7PAAwuoeg7=$C7<{{nutCi<#LLd4ri8acB2BOZ5AacvN6Xf|6?-qvjn~6!CNH zEv9s*I|RuoHvQ)N$Fh{5(5YC1tRiUeM#?*+SH(Aczy^W5 zTfDauXXTywVMt8PQ+tsx&TzVs`@qvpuV1Udjs`?cpCVzLDfVfvtlhN1PvL1I#YaZ{ ziSdY%oK$)Jb*=IA-l%8Q6GCpDMLat1#+_f-gv zG?`MPiHT(*DjPMxyk{GorRe?Y=z0dfqL*^)sZ(TcWIo{dAzQ(WUkXGKG98Ubt~~C! z^={l*zAU{770Uw{t38wKOrctA+5PbcC@7FlbZR1pPrt%;XRiyqs+~fyz3urn?5Zsd zUKoG+xD>j#y)lyCI2U=!a}$WG<+i(ayjq#1xs0|j z_8(P1w^90bfdmV?0{4|=IboOoEAzBkT^c;=EwC()7otwTpHV$uJ0oGDX!s;7j1&U_ zqcTB1l0=mD>sKRu*Y|QbRJ)f>cOoR|C2jN1V855N(|1~aQYC-49A)!hN|C3_JbN|7 zEbC`O;7;kv_y8ykojJAx($^Gg|1B*eyv9v!_o*46Ea-$4!yKhnWw_RL#pNOdGv#Wk z{ADupUY5}X?xyjKRTd7?SE&T=--nxbYo2RIfT-WWMbx0R{$arv!C^lz_)7@fho=9b zFryq(8-|1y&T2!5co;7|RHlt9f@A$i;-9}GU>ieV6!wxlt~86uuCDzZVH{K@M+D>{ zRDl`?-9?tm%V%@cJigf8WbZbvDxRcr0)T1PHB(0X>Yj{FkM%#dl!BncTZ^Vx4cNHO zYgQ#QQT%rPej=8NT}>`UO|)T|=+h$fzEbpxattfdNVO=aj=$)Yo3xwS+HQQI8bNAt zJ|Q+@otZEVpPC$rF3TFEo6ouhq4CQ#>1_j>BNM=)tUJuIj1`o+Je7#q#Js&8%S=pa z$)P*ZuT5PF;~-YCER)#bnX;)`D+KW*evR#?fTV`%OG{}e({r)vM_v_$E6i+UX~R`Y4~|kZ7ZlKTLuClc)@r$Id^5Kx~Ii4^?0B+ zaPGX~rD+cAx?O0PioFg^AJAxr&+X)%e5DLy0O-qy&)9MCbxM%|0S>KNaN>P}>}VNY zHGuUn=~v&Qe$Y%ols-xV1HXFS)c6=C`yofHao#=5g!Kdz{dVN{72+5KJfGXoLHF(; zy4HG~M09#tm?GLlFql1uL0VU{tMS4!SCK{fRR}3*IaYZ4IV;t-#ZiwKlvvB8x%HfP zo>%mWW8PFT8?Zc23AIp86{&WVhJx(=f z$s|YZ-h6;b;5LGb1FYU*kRk?7DtGyMtHgEyo&#myj7`p|VVc!sm3L)7z33{K9h3uH z_4`d5zjXny)~>cH7-ve#h884bo_sagjGSH-b5Abezc;)M&$I|lv|_cdmo8WwM>GU+ zyH99QJ~}9nrU&wOosvqFp2c@L<@FBqw!;a2qgxsh0O^QQjvN0$f=%1&ik9fUIh$v& zVsjKDaR}tE7XTMCG5E@bYLM6$A$lIh;DP?su+w!eFH$q!8x!YnnVi#B3`z9~wo!}tjf5`CUZkgk#0Q8O zj3f2P7ndRW;S*y6_1-rVgu!W&F2Sav0?%t!dpddr>>(KOiRIYfW?a9ATh?k4+!Om4 z$J$rflTH|DJ@AKDn>s%Ag6nT3>2*vg@R?A@@W$)ScQT?kp@Pn9sse%l2s_*><`c}y z8RlvS_>m!<^OM3GyVQJ@JD~rby|mAJETU3~6Z0A*lqOv2NoRledu0Ill9?+Q=ZQ_E z2d3Hmz7#4zERlOF8pl$Z_MQ~g4FX}$0o&B1ck${T{d}qpOXSv7=gG+jX^>icJ{=n2 zXKL6l{(B&zXPzvM5IR_L_+#(?HdstUjRN)BQLpg)!dv7cUF3wUB%S? zH2jd{ZwM?>tPz|EmlwClzP-X#7NBOouI<1T6&!|~{d+j%b_xIVS zT5TuxKu*Qe4rXf>x}PHFeK0%ZiH$)Vjx4~~y+0MZz*SLN?{re_ey$`HY+BmwV& zepiGT(+{)nY3Wq1#82i00YFf62J9!4oF`@cH)Gom7g(Ym$s$tZOg+=?cq~0<=F1zJ zjs4=Kn$@+!O<*!0ahFwr;@@Y#I|GK`q-ikkZ%AbWV_SGmi<k8&>UTbL79P7Aj_KTW4#mdHJDsTh%JQE}6&020Y-4IskGqcH=?B{}wtCJl3 z$M(?P!Bd=MHz|NVHp$MniPF`t4IGQ*b8L5^Iv#RhP-~6?OR18J9UexIt#x;ZD%di8 z{DH*9ST`+d;-b^+<|BZ0@)AK5CLDVaP6jf>$sJ_;w&ff!8zhh=vf8XOzWC0U&NI?v zOpi2Zkz_S8P*FxwBU^GrRNoN0xBbB)ODe+Z*SPa%L%cF9YCtl|4}#HF%enKSi;(;D z7hpwBzE>Z`;lDc!+mwC`d#{$q3YaZ_Z4Q;|r@YBSTUqE+vWCDbl<&SNqmlHD3?uH) zP2tfDP_2YyKd-gkxh`(0L-KZ$h4KzF$ag781jfplexJnUQV!O2whNAI;|VR>W-d?V z9=Zt97StMat_#@}a5_CEu@-;f{L-|04ROCfF6xX0$SrQ3u=6tAg%xkhfy|gxFk!p! z<#z-Fm6X z#CH+h$R|e~_|m0J#@JYaYkG8&OpQ3xM6E&@pZqNsTCPlv?G$n5LGfPRzX%c0lPVtK$c^{1?K3+AKceayCU1a6W5ajp`UVu4BINFZrh zCyo5LM8!}guX3&dk6-1%de*)**k4K_pl$f8)f#gH44q!gi!pEa5PS?0ET#fLJpWIv zpsIVcTR#!JUf_x@(-7YYs|qVc+bek!yE8G$`?oc-X?MmLU*E6&Oly!J4<2XXj$(mo6Po3W4C09~bD-KCUGY5oP8l1N5 zpbtKEzIyX{=lCRL(0sEm7t4;^52>#%lXp4S7-+knFJTwpRCCy?U+s4m`2Z z&qugS2nLguHm=9m=8C6QuxtI=xL}d36lr85gu02yH;7yaXu-#=?zPSCsy3!0AV%-( zuuV1aCb>!BXS5OFcU=&_2T+D*)(({`Eeu$knohPi`B|GoC^sy3;pSzY6ld5pSUnY6 z#9~DED>?ACEn(O4h?_ywKw`0|lC`7?` zWTwRED`WLCE`k^lNS2f1J9yK31#Fsv=f7~2baV;>1JMCZCAZgbW!=lHrKMG~8fT%T zrIjBSM?CAg6wKp({FAH?W#Nffb1*Ca+EStC&*a8yTKDBp9oi#3 zdmiZ@@LmVMpdb2}$)lW61p~BD&P$malTPU>rxFuwEoR}bnaO!_ckdb`sn%Si0G7zl zD-_LEET!b>z5VL7q>=G_4R(WeOa#g4etpp41ngDfbB$XCwPnVA#DEEEd?zCE$+{8l z3}3|YmedQSY$E49WpPO}rWEzl@{PjOQvS?5qE9ru>*;sw&NR7YjHm!^oc)@IEIPVTuXU7&dyw67hHwKo-2 z#|;gzPHOgp3jEC4ORjNds-PvARJHDWEpk0!pwcPshM#4aqv-_@|EE9w@D$LIMj}M_ z1%$UN{6y!ryx}NuPa*JK7jrLt){+SD={%Kj?+eanZ0qo@Mu6#2Qb|c>A>POHahwyP*4)Q zmjsM7$D6r@#Y8DFmT2$yjLrM;ysLQz@`;atC zje}JRwG+3DA)Tq~ZpsGYQIbzKbZu^nxK;dGf}xj)G{6J?IF;#?D`%je)3X`;Hr;W( zU5dHTFjif7#yhv}_AFT`W3|fwkW@G_TAWkkX96tzXD{o%Jn`z+SQz29f!k?}OfCZP z%P)l2Hl1lB%<``RjEI%S;)Iuaf=D~!1o_niG>M4Qz4^k+%Yjvy?fFI>K=^(oby#Tn z5Hpa-WhV?4bofArMzOvx@K2FnRR6VC7u8+>@o(%m#&hR)z(!H;*YDObVw02W;<~3E z&g5KM4Dw$AA8f{3F2WZchoxPCOYE`twf2O9SCFlqjz;;tbI+~_Q6+6`KzXEJ2nlbA z^!!ENmZZO-XCPKD$JO@lP})E3d$Qo?clQo5lGRk%^FwvuA=dUhQU2F3<^Dy;V2oqq{wOeVAY1x9W)WCm>AyQ&yfm;Ww6?n#4 zc02@QQFjghY4TFLq%-0i)*`Zm5s!R%G0sm^W?U5+&6WdX17N-UiEu$`oRE_J@EFuR zASI8$8Zgr=u{P;m@_b7=Xt{iZ%G<(V8SuevBO}^z(U$-l3P(8AT5tsOfUhr-UUl== zJ&MuA7JsK-cL>%Su69SVvyzCpD{^zC5Nd!Q7KxIQQo88Z#~WFK@a(^uB>;-PPt}a) z324VnTSx*3yjPlG0|l^g&XfBHwbWACRTJ=8*%BEmhfJkqu07SetiPwT4^(WVL{IzAUI7U~z4#TJ z@r6*uvJcavO2wCU=Uz_FO9p*3CN^7^o0hlZwyACCvV3Qj%gfx=Fh*{leOzD@=jz_T zEVmuBtMNtJ`0P)|YUKQtlO7iCcNWBbF|*U4k`qJB8;*j;1n|F4T0*aUJoFM&ci+vu z41^Ho?Q-Sz%J*Mg_9YrYk)i_}~FdgU?S8e>Q#{Hgja*t_(R2_x(c)G7i zC`?r5gt<2EOkJcvW0*>nz$X_u1^h1h3DYU9i+us39;|bE$ucbQ-h>fY#ixXru9v^C#MA{01t? z(Cf8`9Wu>MZa1-0F~;R9lvF?_6^%6o{P4OtOg{cZt8sD^eVhIP725SIenN*cN9k!> z_HES-EQt|_d04-Ep$^UTTzFc%cxm0@>oWoDFX%(yavMORfe%zGvaOBUwK(6sk0JP} zW|Kt`hI!soe!9ujsiQ#bu=`7wZc&zI2<(&qLI!aCv|{_hu6mq~68!X9x(=LVMa_yE znBfjJXWeEkQ(CH8QO*it9whf2C>T`LS!V(rx73MO1P z-tJ9{%u8u%2)~mCOY907vG+P*8_~{wLy9F!Tm7N?VNyV;cuB(bP?|*Z8rUT6`+o}d z;FzmYSOMNZ*I9=Z0%=d#i1v_c%XJpg>n-3=aoL>YJQelgs7ZCSRF2K2TwB-MQ1~&pJk2%fgFs&1YyorIV-M3_Oz!x` z&py=6yKl3T-7LFaqLjXLmnz z9Z34|t8D3fb6w6Z&Sx7Lg5+f$Aqbn?z^}O=0l5j5FfGvKEc(XQs%7hL+Dwf{;n=6A zB>frC&6AMM!QTKIo=l&`)wz3ZY~Q>Y9<1j(ao;5n_&mvc#pn?N-g+UQ=>COQJ=HS^ zX(AN(Xo;A4E9uo;lVDDbGuE39i`u227%Ho;mrCUK<(GEtV719kEqi|x_^xA(isuPU zc4?MQWk0X7pxa`o*_p^QOCnor5Ik5Sa=FzPwOKiPA6`|t2mxFd)LOKhR-KjnU13JH z3~aW+^P}%b=2Yushg<<{MM+&9mxjN~-eY*jmS;Z3t3=y%%g5koN0@l? z`Ul%xK;dTE1ZE5O#;q9PlrZv1W9xNKuq}&Sjyw&x9Q0m~@Xp3myzg_lfQO-K4CY@ zW3yRQ?FRUyZt_Y%2;E;hj^!3FbHoTl^S`^@0iqHS0{f4V=&xCfDScn}Q^Tq;>t8!r z&)wTX7_nZ}2xr~P8FR7}+MzhvOp@8-;W6A!-+uwKkrq_L&!DF9bv*6z%AY(B5!fZ` zJa35pM@Ewqw|Zg{EoqQ@43ezD>S`iPKE48G{aVqpH=&`Jx+gu%v8Zx>pSwATaow(^ znSxRWWc*hQlOFm1#)qssVw>%g$rPtVoCMwx%Y~$y_u*%W6k^)BfYrE-wJRZ?8BXH3 z`!rTfQT82RkmxaN0NPUhYYUILvCK@C8okRKiV{W+cJfJg88)b7rVOdfa#=)}lM*Ls z+Zrd<0AJIhK{5Ro-r6f5{W{OG0UbKbtiDkbaEOv?!)^XlB$J#IKRv*9CKsKHQI#eJ zfWc!Tx;z-@!Kr#JFim&ZN64zj$7lWDJ#Le$pG%qdIuk||LI_~EMKCZ*U)eVX99~bm zCWJ9-AI~joEZFBnK=7fWel&w@aMpf1+vOU(o=S|C0mkEovh(jnn4@ zzq4kAk#5}K8+M`EfG(!G0tZ2^+aaMA$BrRlZvLjy8NP$x^;m&W&F5iZN!i3;^+?yT zOFLTW0Fn?MyCs}v@gFM_+{Dtql4fza1vt1s(*PX&`_Es=UthiOhF-~?Q=J$ z=eY59-i*g}^cp$%6@4SCaf~OnPc*Qe6``T-#~5O8{Z)1P%jy{xFVrV7eYDx&hE|?? z^1a%PLv8Ir0crmD)I%LwplBqYiKvnI?pHzeb+;9rhRzgF{ropm0vdiriVXU%YJX69 zcmN~kQI0ICe`<2Ppr8t?AOmJ9wZ#8|ZJrzAOqrIdfWaQuX4P7g%?X|id|6ZZ zyoT1iy>-a_GB_k?kG76ljN>u0A+PY$*}WjS4R4c@0CEvZ)<-@*{)B2lLtw)vl(R9{ zCJT)WdjR%!9K*!FKgkPjI8qy)yyt1>BF&^*l9UR@WVm8upSDAJ`3P7Y6`CDrh>PR<8k6Ye+ryZUs;1a(>?y%A7FI`AA9{g1Y+0ttLE)G2L0AZfa^cD1 z92NEOPCfA~2_B~3qn{PDKe!SdubPQ>9>z1<9T!R9@gAbLtTj5_WQYHZwk)L=eyY$b zCGeRoekamsPnVJ()V4VH&mP0aY7+fIwPS^2A7<{QuiN~eJ zN$}>7^V26{o7ZOH;@|upW^F#KHIw}Wf`vdHoNU$;fvuvZzHbfw-VgI|94vd-)iAQ} z!6V6yVOB9r-!u11$R3c43m3rh6_X>@P%C;!v(YeO`?(J+{YaV)YE^`lya7JJsF)mJ?U3S0A@l;A zzbL(`GfO!-iD+Y1^7!_S^9eaDzmfd1g@m!>8b8BL`C2l&<;zlbLajXDw&h zdTp;g`R=uMo#E6MxJMB|;iCM$0+=|<$oxJ&9lrjOC^vzhMP=Vh45!Q?jj2R(;hseV zcwfP_;R{_V@aq*pvxPUd6IaI2Z!{anoG_;Xi<|i1|?6(I!G+ajb9Sk@>Pjjp>iD z63*oQUKMK<18YcY>b(cHMAZB*0z&v*X)Xd6Opl0B{MN8n-~FeEeSG9z#hGobl$~;9 zId70>GSC-Jz2`_S$=f)b=QzX~u&QiK?0}-n1;lCs=8?3B^$DtZ`Ni+Oz?KAuovn#e z>49zB8y6L_@Me84Z4Ug4^vb>SxVPf1H@CH)P_tpi5C|~=;(Gypg@Hk~0O8>ngDcSE z9o_e;j?zJD@gT7)V1X;&9B#Gab=D~zOnx5501RK?)*1CO#h*?VZ}7MY2srZ@Kec`J z=$+99nrD8tY#O~(-u#=#s3OBam-DOF23y1GRpnr?0a=|vRFPzc^DnD@oe$Gq_aMs6 z)$Io3l!07SbR-AJ2huM%bQL_&&&QnA4(OFnHf|HmV7Fk)5Rf@9=kW4dRy!geT{uz^ zc3;jk84<{ikJc!-uLfho=PTf5q27&K?}yJ;Imd}M?_Bq&eLL2)Fp*xwm3SzuMc3P} zRc6rU&>%hl(H25NO`y zFh0qR%|fdALA$P)fY)|QRG+0&?ecE0S9sj-0!P+DjAKh#MDgrPTrgzse%8MTSe=dx zp+n4>=Yo~4&MifED2JMv>4snuPBN7N4c=+svu^NMlnWs7+e&cIHjr$zWdjlkq#h?= zN`4{rRYr#z7GZTzuCJH&NBp5J>ZG0Jqvg2wD%SCJ%LPZrfb?kS!|iOb1A9Nx;W(XNRbAW7=ph4q-x7ruP1yClsbQR z^I@BTZU4YD#;{`t>J2vjUjoZz_xPO?-zU(c&2yFL+bpv17Q zvJI!WrP$dYDb8JcsTS_G!F__*;51%{L&*%tW)&n9?E5$)U`t;H<|7WC1Ad+_7XeyV z`lq=kp2V7@Or-aZa0VJONSI>MlN(EDKk;@6q#ZTYjY18dZFX$3N|fzPfo?^_@Ab|T zBtr@?Tw&{;rb}l-?7Rp33OF)lO7P3YYQH5ozF2&clQKfYB@DW@q|srD7fHG3>?M6i z|Byj%5r04r_}sbOJt338LdHeMcfj9Z%Zx{tU`aTbr?l89ix@y0CW~RfKxDcfM(}^K zO$Z_Jr*a@mO4!;$DFX7|LeZNR3o*d|Vxh!2<=uY9GU@7t#cduF^kFfdS(U*$yHW-{ zBDVIIHFYR_>gf>6heDgRd%YoF?7E{LM_Eyg#gezuk_50<(88oAl0^8wWN~~~F>2Ss z9#5ShO#sQ3j?x*Ykb72e^;_9$VCgY%le8b5)$u$sTO%D7t`mSj!Iup@dcf-s6OI7O zToXZ>DXdHa%_RHf5F92OO(QkE=;lVp0$c0?rWwc;$j*<#99wK-W7sO*PB(Ju1Ouyq zCcmY!sATbKlC}x=+tw|SaFx}tn#D`VHi+o*Lhp7`;gy#&XkUxf$pE4JQzF-=U&J0ly4Jf`< z^FMRKI{OaxAN*`9C0XwIJ%6Z*wd;^zeM2r14$;LDX%hN?Knx&*&>PosCd=^*bN-xf zfOd{nr$W0Cn*laBc}jRNuf3;FNqG7@ulfC`kSHA<`3NCNKK8M!FwF&b4oYJDjpwEG zno}=IkIqIq}J$MPXclnqtS4m$qaJm2j_zto`jZKcw?sFA{iP>&YP4 z6v)n+1M4j~8V68#eyn9}g{Tc2fxw4CAByNF&P&Xe4BRL3k~nMD0N|)+G)G_GU7H^Q z#tqr4$$z3=?>q{`9{|KhU-<7qt+)q(|E_mH1?AfkbQf5#5mbvvaw7Ph`UXOI4*+ZQ zroV_+T|n+fjpYO~2J7N5;Fo8;4v2`gl%wod@?kA;NR;z{O1Ps7g+_z2k|B95=SY@F zB`;%oiJfMH$wX!th=GfG>ZieXe6HIcypo4($K7(8St>Wf6z|Xr+U_{Q7a~|?a7J*) zF(DUU$%TGE-X~_6Eb~pGsXWUgf*b-_ULF$En|*YVt{WlgA+|PSME!npo%`OWC+MOO zTeN@P*5Ipsjbm*V9Z{D&;IIpZ#1y!tV)&Zfz1?Wk??QAD?tnW~V+l3M+9!8{Nt6q? zvy#%oSE&8!5yv-A54QO$08-$;J9?3Ppcld^me%myg#YJPKS(pPUK4q5uU7J&9I2kR zV%}cT^zp-K;NGRQCT!p1e)31KSR0fWfEEIsWi_2Q{Ih=nV&n7NsW!5Y;@@wAuZ6!6DuV>WHN>NRX7Lh$cbs#FZfphB3y z{@>0g^exH2E#$twa{7JEdwseD$Zv z0|ZBV$0Kr~b@MP-7TD8o-W$VA%x$0km_a=qes#t>#71e-i|PIB5ZGx%V9f5CHK#PV zv+dHmw4^rQES;0(L|Qs5iS9v8?ep&K_p%NsiHnOb&(jyy;kxaOYuJndD*hO3FA{5n z@7R>v%nKl7PFZ%W&ilD7$p|{fb8g*E#ZL`~bfah8tNDNf@m(;!4|Gr@fn7FHI=}5(w#cPDwp{CTRSZw4iJ+8~aRC9vpplSe zX{LeEx-`qGi5&46s%|aJA%|C*X^ab%mXx?pv^_REveWnBgFzjO??Y!aGmT>0j!n7Q z#w&BKy%!x-TZy2$xMPUWOWzW#aQ4p~6`pbEguTo|^|sV-JZH2_J@T6sW=AahK0|14 ztuOtYZ{(i=vW?}*lQ*Fxm-nUEjRL9)P?tmelIU*gH?a@fY;w|xpzY%N%je?vj}CbQ z9uIl0MN%F1UJ?O+q(R z{W;QiYjXnz-MF(51RoAM)M_sVK;=!|G&!#K5;U5$s+!of6I1E8JSnSJKCA13a=Zf8 z|1xLDG$gJ6rNwU-2HHpw8>ye<WF_{(h`?rj-pXWDFWqMmQYI!Qo=qw!Dq02x2Da%v#YW%M`v+no zw$QGXw47}Fpvrqi8t_Uv8h94VxXvLXQ^uj+i}X_x_q6is;>Ou~A7GMB8u1SY)h*P2D;G1HvhXYX6j)nDeF z%KC2HH5f$C`zMVL?5J`oGloPDThXAY)mg{4C&nPtIad9AsE>4irHoipXkD6j zEEhn$Cd+aSJICrgTHIJ%^v|=evH{jzV5UZ-qUhlJgW4h?%;tNQqoSj>RO7-b|FgGW zt2BDr@gW@5m)W`P8m4TBP(ZHS>Ys*H#WQ%O-1lxwg4X5NwmgW>pmO8;M^?aaZN!2o z?BDu$c6@~_MMnTx`fZF)^7kZpZw#ncrf3=mavqngx#@#U&!AR6m3HD!mDqXIP~*x$ zgs&EClE}4nB&r677JXCxYmiU!lK&zeG3*LREhVQ*`FjFp5Or0s&xKUc!rgxph!{St z@nyTZ`0Q6HegzW5q%Yq1yT)!qs22>cuye=RyH37WDd$5}{}!M4-{lcl)YJbz^M9ic zlB*RFpYrV~#tHH-s;liL$q}_>KJ@e%c{Wf(Ga>Abq=JY~Y3Q1Np4}S@t)RIcjmalj zF-nz2pajzz*bR-elP%z_liFHs!B<}{Bvy=Yvj8bjGRI!HkPY-rhp|czxGG--DE>U+ zA|fB}OK6pxZ@$y&g~4E0_z^rFe?x*!rx$E)Znk!Uuuwc`_oUAr6Gi}>d_-)&5brr% z+>lV@Hh#&T;o+y??avbmD3tC2AF9sm>OZNBjRf)`CxgCz9t0xJ3k2#O&>7{V`_%^! z?fCzMMyvsA@3&`}8}wSs*jp7G91OB`oGh^%An69?r$(u**79znTaOG^q5fK13GLIcy}XFgMm?U+7!ma7*^P z1!@Z#>VvG+SMzyK>4rL73iKaumx=4@vS?3MIgxtQ`%bm+pWLM$-SXhUCSPBG{+WwE zrV|-o0v&B1vGMcQHzYN8sYA~IQfVOpRXW8h{|s=UL12kAdhgiZQ?x9V zmgk(8n$3zkL|L_78X zjggs1P9g*wcjuVn0CMu&^l>Jjrql<@CpA~-5!4P{=B&~1MTlt9L+0MJGDC4|(;Zrj zhn=Vk|DE&SPu`6DI|3jGu3{K{^vnL zwK|N0U_Uh?B0qHk->J*IIOVgo>~mskjl3lqFT?_^IS)}`I8TIA^?o!7nqMct7=O%8 zB8UNNmnUrT-Tnv805%cOoO}{sFi^I!^?lIW$dVzxZT?i6?VYyMuBrH9v}#X@h26|T zbe2=iEy8UhqZ*!5^+u@e4N2U`u@<{He|4O>Dx_o7cr(%Ik=LoDq9Pl^ioR~rqtz0| z7KY?IUT~AXg-cDJ;o#6&Y1UW?t2I@6KDjIjVPaHIkChM-xqVbtRu)U?RXA|qYU7AL zv?wz((|2=yjat?bUFWWrnUTT9ca!5%mBc`qca#mK`Sa&wtfh_34G4-eOG|eHGV5$P zQKGNFLHVw^xw)*O;&$#Rwxg*#juF2`nq)W7vQ9>)Om>oGH8sUxE~6tN^k6Ov?A&?v z(W6Jy%AvKnzk4Ya;TxLi+E>_fx^F{BD}DIzE_fuuZTFoyIyDyLs-(5F#6k3_!LI{F z>gnm(tEwv4*x1-G^L?Pap+ck>FR;TgJX{y-DVpKt>Kd1ve5=2|e{YA0cC9yJBV12S zY=>F8_JKW1!8LL3T--f9*%3chR-$gr57%>KOaM%YXZ!ZXnNJ05h{=w$D2o?OO-Y+mj83TZEOWs#!hK003c8k2!WsiDGRAPni2)oh$Ry{{H?Gdj!2~mNs#92?+@~V8XMt=#o=%QZt?`Bq?oV7Abt75 z!op|W)7MQaD=UpMuvh{i9Sa;m1#RsofE0{Q0pMqX6>7KVT|-%oG_zj-2z0==H>e&y zY=B1l`T3#IaCZ++Pt@K5h_&KvC_7rcdS6;Uv!O(bWzmeXva)`xE;whnE^E~G%`@le zsgEB^C%i+Gb;D$82%YDmpF+gb5AvTuD+$HCI_6~E?4~BPiLr4;eEcpkF)0d zK^m@O>woRU0nT+NEh*$cqKR<^ma`{3^;2ijYEBA`c1BD}YD;$JT<))5zZB%>`(fD0Y5B5?%d!1 zO8D)Ts?*(#cxa8k`X0z7L}y>TmNGIo-(NLo29tucws--u4Y`=+U9%pA=Lj{y7#|)-NJiKj~B^}!$ct}@A=QQLPJh_i&_7oS?hudQ?T=rF$?)480c)W|3 zYw){gcmhme>}N2?-_-UQw{z>3_w1CA-}ygBoI)j9zyOXVW`#9a5qd^fk z4`wsE@DXU^#xf7$&@$37%?55APo$xvVGN3Sop__K*}OV?JSr+GGt8l#$&G~@5s6Br zWo5iA>*0EEj3*TEe`{;1hAQ*y}xHyeYkF5z=F#w~{&THJX)g|+T zFM<#Hx@C@8y=(Ev_=hA!?M03(tb*_O``tg5m(RlrA3)?N23RpEC@8DASP&dN+d$pr z8bWTb=WKuJc5p`W34hRNwCWvgKK z*GLA}5Ja{rxf%e%>{LEL>*~6;y1J@SuCGp-65!_M_FbO+5;w#yZ3UR##`A@BJ81l(-4XR>id zf-omM*(lp$Y;tlG7R37Wu4{cmLwqv7=B)8}-r)~6hgxE#ZsPN9n983xew^)znOmL4 z5H%teA{y{=`btU8D|3VMYoTmMVkLDNK;Z;tdfdZ@*CFp+&y!OU2^dGC-QC>_amR@T-|V3kjw*VIT*a0NH4P#8!Y z>yCUbfc%|5J|RIm(PXETR4j~Z#u|q@1-tCc(RwcWJ|tlK_U+S0CCVH)@CU?)B761- zy=_jm7C~@M7N2}8;(S*{_|K(HAA~4;d;6I&!X2jq|C+i~u(`k=B7&mCf1E Date: Wed, 15 Aug 2018 16:41:07 -0500 Subject: [PATCH 3/4] Clean up table --- _posts/altair-to-mpl-scatter-part1.md | 101 ++------------------------ 1 file changed, 7 insertions(+), 94 deletions(-) diff --git a/_posts/altair-to-mpl-scatter-part1.md b/_posts/altair-to-mpl-scatter-part1.md index 78001ef..d6256da 100644 --- a/_posts/altair-to-mpl-scatter-part1.md +++ b/_posts/altair-to-mpl-scatter-part1.md @@ -16,100 +16,13 @@ from vega_datasets import data cars = data.cars() cars.head() ``` - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AccelerationCylindersDisplacementHorsepowerMiles_per_GallonNameOriginWeight_in_lbsYear
012.08307.0130.018.0chevrolet chevelle malibuUSA35041970-01-01
111.58350.0165.015.0buick skylark 320USA36931970-01-01
211.08318.0150.018.0plymouth satelliteUSA34361970-01-01
312.08304.0150.016.0amc rebel sstUSA34331970-01-01
410.58302.0140.017.0ford torinoUSA34491970-01-01
-
+**Acceleration** | **Cylinders** | **Displacement** | **Horsepower** | **Miles_per_Gallon** | **Name** | **Origin** | **Weight_in_lbs** | **Year** +:---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: +12.0 | 8 | 307.0 | 130.0 | 18.0 | chevrolet chevelle malibu | USA | 3504 | 1970-01-01 +11.5 | 8 | 350.0 | 165.0 | 15.0 | buick skylark 320 | USA | 3693 | 1970-01-01 +11.0 | 8 | 318.0 | 150.0 | 18.0 | plymouth satellite | USA | 3436 | 1970-01-01 +12.0 | 8 | 304.0 | 150.0 | 16.0 | amc rebel sst | USA | 3433 | 1970-01-01 +10.5 | 8 | 302.0 | 140.0 | 17.0 | ford torino | USA | 3449 | 1970-01-01 Let's plot Horsepower vs Weight from the cars dataset. From a3525538d339cc4d68544346ee32070b4c066bbd Mon Sep 17 00:00:00 2001 From: korr Date: Mon, 20 Aug 2018 17:21:53 -0500 Subject: [PATCH 4/4] Fixes --- ...d => 2018-08-15-altair-to-mpl-scatter-part1.md} | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) rename _posts/{altair-to-mpl-scatter-part1.md => 2018-08-15-altair-to-mpl-scatter-part1.md} (77%) diff --git a/_posts/altair-to-mpl-scatter-part1.md b/_posts/2018-08-15-altair-to-mpl-scatter-part1.md similarity index 77% rename from _posts/altair-to-mpl-scatter-part1.md rename to _posts/2018-08-15-altair-to-mpl-scatter-part1.md index d6256da..04bb1d5 100644 --- a/_posts/altair-to-mpl-scatter-part1.md +++ b/_posts/2018-08-15-altair-to-mpl-scatter-part1.md @@ -2,15 +2,15 @@ layout: post title: "Making a Scatter Plot - Part 1" date: 2018-08-15 15:00:00 -0500 -author: "Kimberly Orr and Nabarun Pal" +author: "Kimberly Orr", "Nabarun Pal" categories: user-guide tags: "intro about scatter" excerpt_separator: --- # Making a Scatter Plot -This post will walk you through making a simple scatter plot in Altair, Matplotlib, and mpl-altair. -We'll examine the cars dataset: +This post will walk you through making a scatter plot in Altair, Matplotlib, and mpl-altair. +We'll examine the cars dataset from [Vega's collection of datasets](https://github.com/vega/vega-datasets#vega-datasets): ```python from vega_datasets import data cars = data.cars() @@ -56,7 +56,7 @@ plt.show() ## mpl-altair To produce the mpl-altair plot, create the Altair chart and then pass it to -mplaltair's `convert()` function. The resulting fig and ax are Matplotlib plots. +mplaltair's `convert()` function. The resulting fig and ax are Matplotlib objects. ```python import altair as alt import matplotlib.pyplot as plt @@ -68,4 +68,8 @@ chart = alt.Chart(cars).mark_point().encode( fig, ax = mplaltair.convert(chart) plt.show() ``` -![png](pics/altair-to-mpl-scatter-part1_2.png) \ No newline at end of file +![png](pics/altair-to-mpl-scatter-part1_2.png) + +Why is it beneficial to convert the Altair chart to a Matplotlib figure? +- the figure can be modified using Matplotlib functionality, which has more functionality than Altair (by design) +- the figure can be rendered without Altair's front-end [renderers](https://altair-viz.github.io/user_guide/renderers.html). \ No newline at end of file