From 54b393b456bea931e9d2795fd05ece67015f3d1c Mon Sep 17 00:00:00 2001 From: skie1997 Date: Thu, 20 Feb 2025 15:42:54 +0800 Subject: [PATCH] feat: supply more chart types into vchart libs --- README.md | 7 + .../images/chart/vchart/vchart_area.png | Bin 0 -> 24320 bytes .../images/chart/vchart/vchart_funnel.png | Bin 0 -> 9173 bytes .../images/chart/vchart/vchart_line.png | Bin 0 -> 20088 bytes .../chart/vchart/vchart_percent_area.png | Bin 0 -> 12863 bytes src/assets/images/chart/vchart/vchart_pie.png | Bin 0 -> 55733 bytes .../images/chart/vchart/vchart_scatter.png | Bin 0 -> 36785 bytes .../images/chart/vchart/vchart_word_cloud.png | Bin 0 -> 28456 bytes .../GoVChart/transformProps/areas.ts | 32 + .../GoVChart/transformProps/bars.ts | 6 +- .../GoVChart/transformProps/funnels.ts | 28 + .../GoVChart/transformProps/index.ts | 12 + .../GoVChart/transformProps/lines.ts | 32 + .../GoVChart/transformProps/pies.ts | 139 + .../GoVChart/transformProps/scatters.ts | 35 + .../GoVChart/transformProps/wordClouds.ts | 21 + .../VChart/Areas/VChartArea/config.ts | 47 + .../VChart/Areas/VChartArea/config.vue | 19 + .../VChart/Areas/VChartArea/data.json | 16 + .../VChart/Areas/VChartArea/index.ts | 14 + .../VChart/Areas/VChartArea/index.vue | 22 + .../VChart/Areas/VChartPercentArea/config.ts | 48 + .../VChart/Areas/VChartPercentArea/config.vue | 19 + .../VChart/Areas/VChartPercentArea/data.json | 16 + .../VChart/Areas/VChartPercentArea/index.ts | 14 + .../VChart/Areas/VChartPercentArea/index.vue | 22 + src/packages/components/VChart/Areas/index.ts | 4 + .../VChart/Bars/VChartBarCommon/index.ts | 2 +- .../VChart/Bars/VChartBarStack/index.ts | 2 +- .../VChart/Funnels/VChartFunnel/config.ts | 25 + .../VChart/Funnels/VChartFunnel/config.vue | 17 + .../VChart/Funnels/VChartFunnel/data.json | 24 + .../VChart/Funnels/VChartFunnel/index.ts | 14 + .../VChart/Funnels/VChartFunnel/index.vue | 22 + .../components/VChart/Funnels/index.ts | 3 + .../VChart/Lines/VChartLine/config.ts | 47 + .../VChart/Lines/VChartLine/config.vue | 19 + .../VChart/Lines/VChartLine/data.json | 16 + .../VChart/Lines/VChartLine/index.ts | 14 + .../VChart/Lines/VChartLine/index.vue | 22 + src/packages/components/VChart/Lines/index.ts | 3 + .../VChart/Pies/VChartPie/config.ts | 26 + .../VChart/Pies/VChartPie/config.vue | 17 + .../VChart/Pies/VChartPie/data.json | 14 + .../components/VChart/Pies/VChartPie/index.ts | 14 + .../VChart/Pies/VChartPie/index.vue | 22 + src/packages/components/VChart/Pies/index.ts | 3 + .../VChart/Scatters/VChartScatter/config.ts | 47 + .../VChart/Scatters/VChartScatter/config.vue | 19 + .../VChart/Scatters/VChartScatter/data.json | 2846 +++++++++++++++++ .../VChart/Scatters/VChartScatter/index.ts | 14 + .../VChart/Scatters/VChartScatter/index.vue | 22 + .../components/VChart/Scatters/index.ts | 3 + .../WordClouds/VChartWordCloud/config.ts | 26 + .../WordClouds/VChartWordCloud/config.vue | 17 + .../WordClouds/VChartWordCloud/data.json | 88 + .../WordClouds/VChartWordCloud/index.ts | 14 + .../WordClouds/VChartWordCloud/index.vue | 22 + .../components/VChart/WordClouds/index.ts | 3 + src/packages/components/VChart/index.d.ts | 64 +- src/packages/components/VChart/index.ts | 8 +- 61 files changed, 4065 insertions(+), 7 deletions(-) create mode 100644 src/assets/images/chart/vchart/vchart_area.png create mode 100644 src/assets/images/chart/vchart/vchart_funnel.png create mode 100644 src/assets/images/chart/vchart/vchart_line.png create mode 100644 src/assets/images/chart/vchart/vchart_percent_area.png create mode 100644 src/assets/images/chart/vchart/vchart_pie.png create mode 100644 src/assets/images/chart/vchart/vchart_scatter.png create mode 100644 src/assets/images/chart/vchart/vchart_word_cloud.png create mode 100644 src/components/GoVChart/transformProps/areas.ts create mode 100644 src/components/GoVChart/transformProps/funnels.ts create mode 100644 src/components/GoVChart/transformProps/lines.ts create mode 100644 src/components/GoVChart/transformProps/pies.ts create mode 100644 src/components/GoVChart/transformProps/scatters.ts create mode 100644 src/components/GoVChart/transformProps/wordClouds.ts create mode 100644 src/packages/components/VChart/Areas/VChartArea/config.ts create mode 100644 src/packages/components/VChart/Areas/VChartArea/config.vue create mode 100644 src/packages/components/VChart/Areas/VChartArea/data.json create mode 100644 src/packages/components/VChart/Areas/VChartArea/index.ts create mode 100644 src/packages/components/VChart/Areas/VChartArea/index.vue create mode 100644 src/packages/components/VChart/Areas/VChartPercentArea/config.ts create mode 100644 src/packages/components/VChart/Areas/VChartPercentArea/config.vue create mode 100644 src/packages/components/VChart/Areas/VChartPercentArea/data.json create mode 100644 src/packages/components/VChart/Areas/VChartPercentArea/index.ts create mode 100644 src/packages/components/VChart/Areas/VChartPercentArea/index.vue create mode 100644 src/packages/components/VChart/Areas/index.ts create mode 100644 src/packages/components/VChart/Funnels/VChartFunnel/config.ts create mode 100644 src/packages/components/VChart/Funnels/VChartFunnel/config.vue create mode 100644 src/packages/components/VChart/Funnels/VChartFunnel/data.json create mode 100644 src/packages/components/VChart/Funnels/VChartFunnel/index.ts create mode 100644 src/packages/components/VChart/Funnels/VChartFunnel/index.vue create mode 100644 src/packages/components/VChart/Funnels/index.ts create mode 100644 src/packages/components/VChart/Lines/VChartLine/config.ts create mode 100644 src/packages/components/VChart/Lines/VChartLine/config.vue create mode 100644 src/packages/components/VChart/Lines/VChartLine/data.json create mode 100644 src/packages/components/VChart/Lines/VChartLine/index.ts create mode 100644 src/packages/components/VChart/Lines/VChartLine/index.vue create mode 100644 src/packages/components/VChart/Lines/index.ts create mode 100644 src/packages/components/VChart/Pies/VChartPie/config.ts create mode 100644 src/packages/components/VChart/Pies/VChartPie/config.vue create mode 100644 src/packages/components/VChart/Pies/VChartPie/data.json create mode 100644 src/packages/components/VChart/Pies/VChartPie/index.ts create mode 100644 src/packages/components/VChart/Pies/VChartPie/index.vue create mode 100644 src/packages/components/VChart/Pies/index.ts create mode 100644 src/packages/components/VChart/Scatters/VChartScatter/config.ts create mode 100644 src/packages/components/VChart/Scatters/VChartScatter/config.vue create mode 100644 src/packages/components/VChart/Scatters/VChartScatter/data.json create mode 100644 src/packages/components/VChart/Scatters/VChartScatter/index.ts create mode 100644 src/packages/components/VChart/Scatters/VChartScatter/index.vue create mode 100644 src/packages/components/VChart/Scatters/index.ts create mode 100644 src/packages/components/VChart/WordClouds/VChartWordCloud/config.ts create mode 100644 src/packages/components/VChart/WordClouds/VChartWordCloud/config.vue create mode 100644 src/packages/components/VChart/WordClouds/VChartWordCloud/data.json create mode 100644 src/packages/components/VChart/WordClouds/VChartWordCloud/index.ts create mode 100644 src/packages/components/VChart/WordClouds/VChartWordCloud/index.vue create mode 100644 src/packages/components/VChart/WordClouds/index.ts diff --git a/README.md b/README.md index 5f754761..dd2de173 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,13 @@ GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图 - 封装:项目进行了详细的工具类封装如:路由、存储、加/解密、文件处理、主题、NaiveUI 全局方法、组件等 +- 可视化:基于开源图表库[ECharts](https://echarts.apache.org/zh/index.html) 和 [VChart](https://www.visactor.io/vchart) 编写,具有丰富的图表类型和适配大屏的主题效果; + +- 入选 NaiveUI 社区精选资源推荐:[查看 NaiveUI 推荐列表](https://www.naiveui.com/zh-CN/light/docs/community) + +说明文档: +![说明文档](readme/go-view-doc.png) + 工作台: ![项目截图](readme/go-view-canvas.png) diff --git a/src/assets/images/chart/vchart/vchart_area.png b/src/assets/images/chart/vchart/vchart_area.png new file mode 100644 index 0000000000000000000000000000000000000000..e1c5b1374e710c32cc9073112c5d827ded0152ce GIT binary patch literal 24320 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 L%2E{)#y|cCu9eqD literal 0 HcmV?d00001 diff --git a/src/assets/images/chart/vchart/vchart_line.png b/src/assets/images/chart/vchart/vchart_line.png new file mode 100644 index 0000000000000000000000000000000000000000..980f81f5db6f0ff3687c0b4a3daf265fb7e35fa3 GIT binary patch literal 20088 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%0A2Yy6 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/chart/vchart/vchart_pie.png b/src/assets/images/chart/vchart/vchart_pie.png new file mode 100644 index 0000000000000000000000000000000000000000..130ccdc8ff710929fdb269e5bab5e4a75645e1a4 GIT binary patch literal 55733 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/chart/vchart/vchart_scatter.png b/src/assets/images/chart/vchart/vchart_scatter.png new file mode 100644 index 0000000000000000000000000000000000000000..f96060adfaa4fc39220158884b43f1df2f55127a GIT binary patch literal 36785 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

1XUr?EeQX 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/chart/vchart/vchart_word_cloud.png b/src/assets/images/chart/vchart/vchart_word_cloud.png new file mode 100644 index 0000000000000000000000000000000000000000..63a117dea073e7fe8e560d863a718fd18fdbb31e GIT binary patch literal 28456 zcmdp7Wmg?dvpu-G1$PY+oZv1YKydfq?#>~&ySuyF!3hq*-QC>}4wvV{`zP*)nKi4Y z*Q}oE>fKelc8C3vmqI}#Km-5)C^FLGN&o-^_viCGJnZM4Z5f0H0FVJ>#6?uxGtaWz z+_C51LpIqPd>W2%M3Fk_E^qh9`3}dvo6+ngD0fNhHC+}M8yOkZ$B@4*Lw#dqWnCsr z-7)=aP%sM52n!n#45PQDp`m%9DsD+jO+8Ea|L`(d$O}LNq{zo{xf3!V^0Q6)OA$~` zPH{rIP&3jML2vuZco_mC?O-%HWLQd^k*M%&fH}o`!y4%B=28dkT@+MZt zvVl6(f%`^ukr2XGj8q-c9ijRRWvbBi5+gje8NQpkC_IbeFzSfu`}X^cwj&zes=G|L z>2JXM<$EpR4la={wCL8Ov(1cSkr=O$xYr|{N9%|_lGEgQPIxpqO_aW8KswN@eFxpqXaN zgeK*OTnt3ptquvs%}2J5xU)i`D9nvIffr~XFZ3@r%;7+4U9(e3hJG)J4kqG$>@!HJ zTVuyt{a0_^ntUK!jxu;}xU3@f+s34F((wEj3n}6|yu0-gVTHpc2b>DdrkE53uom(B zhMY{Mwi$Ei%?V+{i>F%F%pd(RM+mlS$&aU%yNw0X75}(spGQzvwonQ+ZWRqS!+P#b zT|c!GV{wkO;O#}9pJX*DM^t>h;&Scxq+xi5OoBA0h?ums(%Q|h?>0h}$|MQ3cB6pRAjAv z)e1;$gWenn_~oYjxgv3lB}e? zaH@QJ$LPQ0WFVf!=;Pb+G~2)Q&7uJ^9*mva1#)fK?%_P-e*GgME2O!A1Nd^_vW*h_NZi;A`9Lj~0Ew zJlYsZPghp(B^PDUQfx;UZEAIdV7RZHen;nkS=`C4g8sfEX^XYo!XiIcFB)ms?U-8v zV)2MRq0<4FySM%v%bD{v1Wez{uu^ggk7jP=Em%w3EWs+0KoM4wCOVH%FAUN~hrpqV zyQ1#AX8%!w>|ek)v`H9hkkgIxvY(Ty>kNQ5%(OZh&rCn@be3G$b2_3DB2(lv{)xa1 z59vk>ds#yJQ!KRh_W&iJC+$lGCZ<0B^#IUU0@_Aa0(~T&kU8d;X z;BsvlZyO72E_hhJwC12?I>KidM=%kYFIw|-XLPj~^Ee?y=ZxC>96q&^JP)OnE!18E z0|SLz7$l7VdEj*?y{0~HInRF7TkC@*LhU+k$QsDBT=~;4wHpUe}_PCFk3sixwl3#&WF=seYM)ga&Kjoof@^qm4u2bV_ckn7H3LKim?`k&PNZL%|L z3EjA#h>BA8@r=9j&P_I76*OZvEvkAXD%^q#(7iTZ1=AB4C>paPb^2oEpT|ulws0CR znzlY@C%#Bg+SNpK@1N&{=?ErXvFrz@63<~=zn34KO$c6N^`b?QcbLOrFZRUgV#r2( zLNH%5OLn{8eraeTiXmdCie!>jhcCo&s~2Rg5CThnTC*??)K_uk$>p5{(*}*` zlf*4{#k49vbN6`drMR0C2iF!Agjk_Z=*$T&8ffytG#zpD&+z5D6it}r*?0%6ur|nK z;5aqJBM#-;yf}kiz&S$b7FN1zn6p45J8_MHr)f)y_4>aS18w;nWzywAWpp0&OKQm! z{$Vf1pDVD?i_4sMAxgC_VLI!ShcWO4$6#3}K3ZeQ_xDsdM4;GQ7dPc^LeE^}(S@`vdQoxj(8Oo}ycBAlznGSF$viyzu9ra$sC9&4 zp(#ltC57YrO9E)#@WVk$$*^FXtf#s1%W8OhVJ|G1KOz`L+f8A~l~_tf;PX+=@CD9* zS@t7XV?myrHWLb$ExD_a&A!VLHLYdqiG@)ASQeJ!W#e2}8b1_=a#XIrO?r$;$eq{oj{S;qfnzVy+p}@8Db+ zw*L`@#h#BZVAd1MxN>S{#{(hbsi~irv%DBDG93UKXHN$}k%Z3RR>n8J+zNL=(oxb@ zKqD`b%(*9=(Qd)xKSBWrs=!#`c!xriK3#WITr)3@rtBM11>wcr6kl9z8hT>pf%KV> zlY2MFtuY}I@=EjcoH=H0EXKFk6*&b0Q>Lf~O?G>{%Z4a0%TkpJ5l(fU-Mt`pJ;~H9b8HtW(?AC-3 zimrN@9?CMmyb#t=eVDRG%usZmlNOvy1HRb=Zr;azU8C!;+u1t>plp z=GzK6|Mdh-_S4p)+MN7^h!4BRj&52xRY<2#yL)WlUkW7Hdk)H&GlVge7@MW(xb&{iq=!BIR`qQi2{+Y@{we{vn?lN=UZ1|q12vO8^G zzN#?uK~)r>aG8|^R}i#Sf6f?*E>iv}hO=(i1gbKh-j5$8kFHGB6m!y?BXm`W4))zY zd2y(KhgI8t2%9%+k#gNnz6nAk%4_e?<>9i&Gr;ab6CX5^iC~;=gND^(-dsB!%#>NX z7D(|^;O|yq#P9bjvT4po*E-*g_)}0wqRPvOoJLyZHg%-T45Jd2yFMPPKZ$U^q)krc2rMHti<#D?RFpxUD?#>k}4SZQVN^5h; z>ixPOi&={fr*$6`zsxEFR3!GxWUF_lJ=mYN!Va-k;?7$OUFEu@8?n>&ZQTeXWBOLIu+`RRiHo)q_A6(O~!RavwOQB}jnI~c*WZQ!@K(IrZ6?!gTxKD`Tv)_cgxAkF)j1vEX4My?X>QE&bfiAQsK&5| z_DeXM%7^N;n$&uo9)JK((^_*?P8%m84XU0yy9mweot}=X5!1xr-@Im#%)gJ@czF-n z(;Uy=GaU| z`$Q(e;5k=3|JvQnYl7(4gee@-rivO76!m<%`K9$vnNwfxd+icT1e!tri01WcL;#h# zdL>x&w-rI&iQN=7OZ=HAQi|m1KU8BH958n`Dfs#olP1z?a*5o-`&rCFXZiWuw>qmM zoVUB~4n>NiI_njQJ99osqQWS@!h+WdH0LB7gN$3r0e+O{ZSg}Q(dj{e!?}8mWO~)I z9<#<#JzU1m(0CXm=YMvc?X{|R`;34TjGh)ZrypXs6FbncK-)va1B-TpH#kd~l7Zoi z7aZV?Y+W#?TjrIW^SHfX+fHkU`$yQv_3mLXRO?sHB<;jZR!_N&mVgz~z4+UC}ex@+i6Y@(luz;=2SH^o2_F-b{$G#Qis8b68Qfem85Y~h- z{6~m#pa71LZfc{hpR%3)ScjQptz$w8Q_=g;y?%sG06<;hOF_1@gzBzT z`o+yO`^i8!Td1w}2O*giQ=e--zhFK$Z&A&D5Q$t=*dG#RsbS{cuBP@zR^lmpljt8S zA)k1o{H8%9@hfF*ttUl+Bs-9ex;Aa)-i^9*GR=i2o{6<9dh|y;zt!Qt%h5xyVboF`Pf))j=U$)qh@#&+uZe`G z?TQ^-6jD>tBNSqPKWfJm#Yie&fp^uu5tw~tY&R^YxZL;?Co`M61E$@sxK-*fWbX_{ zGu`hX{lag{A=~v>Jpb^3{~bGGe6aOloybi2|r8s+?G(woNvM(tCZ!1%)%r0m9p1GD1Kx2Phh>Yz4k1-pqpDDQ^UY} zx29STE9Fh=(USbMm07e!p9dOaK?e=Z&qJblW{X%ozwfdP-+v3EN)g45XR&-?-R{y> zlvo7Y3VIjtXic8SYJzv@+H&4;W)E?lc1pcT+?jkos2u7P1GiLBCsckAiG6 zm=`(v+xi8tJAKGKZBb`-ie&6olRRe4*xb*yD>EOULNZP#t?>k(cSFcEB}!c=HFxf@oq$Y|4@p+^NFMi4wtdutUupUn;gzY}H5 zr^?tYVQlp)+PK>e*6bCorhTi1T3;#RNaNk^uBqC68KLy}ST*uT!SF8uHUz|c@C7Cj zc8=-kNQxvUgs>bBR4Fgy9`h=j*&1%&!YS&OTunbv&n-xOnG(q2n>e2^wzIRIZ;{iA zp|_Qp@_Z2gY7OO=y%Q`AjS>DfGneDae_ZnA0DHUQJ;0WI3~4UYdQJtcxev|KTzcqz zlQ#YAu>HZz@n2KQl+7<-Zx0zYp>}ftCQ1mT5D*kQTb(m(juUU|AYsXaq^zPA1any0+4?54MJtQcE!%yU#2p$2h1(uTU;r&zu~O9o-Gi@o!dx{5JhwP(Ak<4=GRmWKxs}M;gM{G7 zBZbH~2`?<_HQiQ$d5^mffH(4_)#7S-E#T8LL2?cEPtB88#1w&abLEFezCmPxG>A)| znrgWgH8tX$ose|btQnV>YK83tF`=sxT}pB7u$`e zw3wAOhugQ+1}jl+PB)w>j_VbZ25!7`t8G~s(Yz?sn3C`!x-KYEy7p>2sW?eq3f;M? zH9c8Q*Z|EJffxdYf}2C6;fn``)`DJkWMZ?z7K+JS^;0PBUUl|7Sa)?4)uQQSba3C2 z91f$0K2szUS^54XmoL$41y}FS($2uKBp;sae5*1|7Z^1KeH|P5K9C1n*Np}ZgZcrT z60g3(a(+|AX#M^D}at3_30$T0)$H4hlTvu=+OmOgRtb(k(y*&IuZr#;s_8`g3xbQAtUq z-9SOH>R4NH*RRhB8hDRPb$GTt{EagVAAzKcR!}j5k|6iqn%Y$)N9Ma8`Iaq}+lG6p zJzM5s!j@l8F!`iTCgB?1ZP$R&@ltL)B19f>MrN@7aDKumP^WID}+pxU>v5> z1X{q>&pVJ*GSh@4~Fx`Q@~^1L-A zw@a{^$9=U4UZSVX9e>8s_&YU|?jH_!fRY7%bVmBd>jv>j%wwkC*OWDuXqW-1>rjg& zQJ3G|Y((dNFJWsidOKoEkAiF2R+jO zX@5G%1{W8ASbnxJ+N>Jt*fpN1Aa{$cTS}a-LydxN9ef_?%^8}9vc)b}!luU6jk{mA z1Djo~cyJ=>7|45@RRSq#Jq2nvU5-R4Y?jx}+x+eExipW2+pnpm-Cgl!l(XcA4(d7viF~Al4a1T`XEH&uWjU zgR2X}3zqs#3ss~Hr2}ce@(Z-~0{?2hoy5@=s5XTqFeyw(LFyU(x0U2w13?+NMgv*i zMs}~!Xm1vfO;n?lB`q3rMPN1?2wB`hokxuZ^+3JY@6+6s(*G)~jA6C#VQYw0A8-{r zR0liiAZ3YgVb`Kfuf`ou&`(lMJ@|Ms$7ke``56y#)}%>m0;Y z)vdAOm_1?}#ax|yzwh!tduR>hw-8ik7L;w`HmG9b;%Ro04749x^u9;!p**LC7nS7G zAOw-vP`G?yRZDyxjq7r)>;O7~sem$u+JiN_*rXDrX)rJ^Z$?_i)khiuTCaEkDkvyq)3_05VA*v($FEo2TmNhvnjW5GJcA^SrHRlGwT@LwgRI@Ir9Pl)8}BSx?j(A_C6o8c?FonUAaMhwriu z#j#JRwG$oKfEu4rUu@1MFk6?vOLApITR0)|gCV|{1D6(u;}bJW!Id1?#wa>}M-|MwE7#gRh@ zG8s1RZuX#at3`I#UQNdIdupNaEHvQ|L4n6ftcRP;2DhhyMGA9jeGFcEf^cg}w_CVG z7amlAotAo{;9`8+zE5E&OB)b-&AU zbBhT;OkNLaJ|^CUHO#x?F)qt~xt=nWV}aC!Dsux_)a%TsIHoh&+%S6=Y>39$xOZes zS^A3nxNKOh0?@$;%G!9wWHFyTGY(dA9NES^#BxW<@?yWf>NnokGzmI}$2#m2%Nh(- z3}P*@0saL3jdNp664Ljp4vzh?N!dAC^=Vtm-(T~|;jAq~!c=OyP~})5^?7Gujbx8S zN^N19GDsp$8Jezi{FC%QiXZA&jKj6Rnr}7`@^SSi6LnW>gn`O&Wt#1;=!YCXKHlI| zSxs5v3_{UzGXHrzY>xf&5c;L9N7AV5)d3)0*{o-9hyO{v)HEpV;K?U zp%lL}RtzNsmT%t%-J<}VZ(QdtoOFt^E3nv+V8syhKP|vwXQWO;!b>V;#Lio_TN_+^LTTZ2VT#C-G5JD`&gP6U3;jlC}z6ZL7|DpZO zXF*&ejAA>aZ^A6&Hh>LMyZXDFV!ztXQfqKb{^bb`< z$qhjdM=RR?m0!6lGsVj4W_}&}2o>+oq97ha#Tz?{gEala=tZhG39egYtuTL<{=$pf!u#y6mG9T7Sj@Cs$V`RH$=~uu1my#FUF;vu|MI z9k|e_?W2WL09#VgjgL9U+jV*#r;4H#tQvR zoeZ+_nwE&F0|IxnK$5FKo8y*)@qgs((_?GOQnM%2#>w9C9)Lr2dqDd_Oqwku+k@gz zz@Gin=~6D;V|Su5S`OzB8jrR5uXYC=cX067UiLv6k0W^3HY&{IW~0c3)Sy4r=p^?9 zpFfl)q!$BgzA6Yqo}gG4So;<2AsIjMt_`{BA?dL`1Yoev%4fJiQ`9Im&cVhGleG+u zG!)xz!Hbbm*C_WH?7(whNQ50hh->ZNn8P~&=8`FMUb(0WnazH6Y`RQ;CHEq52?2_) zJmAsJq4Go()xsyzBy#Q`CnvN$2{bk-$Dw*~d+Oe$OUpbUIJnGq5XSjh%Sp}(#8C0c zSOCfQM~y|$Dx*b-G$rYnmXpOSLq_d>YiTQSNM9^#kGL$_> z{G)W_g0E^LNq9h!?%&KL$R@LOg+J$Eq-ahpN8R9#dh@LQi#Hp<%X63=L}GC@jE-x* zg%*L?i+jNK^h)9a#G z2j8afm!z^EgRy|ClQz8zlwH|$B%Q3nQG}Y&&PRXFLNyZ`$lG~(?hf?%at9w@)Dx?z zJ`G+WP4A}t++O{vPm%ddk=b*+(sEgvK`N?Bl3Mb(xEV=cf%ZBRRcng{<0FW@W~&HB zZJtjL^SGbTaNO5Vsrh}>LMc5yv3J;tRBAmYUqnbA&35ZZzurN;(EYohQf%yNUR-$d zwZ#YGg1pGrcf`QIICKM-V^DtyK2u&0Mg=B?QC-5$x?jf?!yUHR6(a`eQbR1;3l}oe zK?#Fnu;jy9V|h+`<4H`T5Nw25$!m6UW8rYsg7(kQmHMY`UYM4T-_ zE8{ZFobNsV?VYwfHyrPLFT~lM&s-FF=m9YVQ8mTMOx=}+|6JT0cTXo-52KE)pG;7) zUhYk&mZsOd(hZXpmpZ==>3NcTJz)NOQ0uhO$?fo=nUX6`q4ROV-r;a*{AhW46OWKCoc-!=~^^a6+Oy>odxL9+B|hWh7fq!r=1p4 zja9D^ZuaZ8LeF?9@slM>OSVLnHctG4@eIMDKL%e0x+(IXl^s36Y-UEOC9Q3>=AUCs zeQS7S3MJN$O=F+4AK>jG4=q$uSUIbMSHRFZ=e;pSl{#Y3A~mMe$HSy9FpKRpq48i3 zxl{wLEG!KCN#M_#ep|)j7dUb2SU&SnJ+b2Y6{8u!qk2}tV~aLBJHaPC-}7a75WrQfp{9Hv7WT_ zi&<*qo{cwFl{;#$(NOp1J>d82Ggn)^vMB?7vZ^j#b0AGqR1Fl_Ih)w@46>N2EZxDM zE%=2kc-xo?^^_F>%ZCN*wEc+KHyIuOxdr?e%Z(@p!Q!YROZd*>ZI$mjaJaPdHb$dP zy3+6*1=cLko%BL`HrUIO?_(H8<744+@7_NhR#BR(G$)%mN7kKtdjPT-!+J%5VvMgm ztl=!e*MoA{pjbW;9=2)1NHxvRTPct&}xjV~hgU(U&*+_eAkcZ9tV_wz>X?(wfDwp2%?N+a-nd zEtv&_CSO->hyBk+jUT5!#%o6kSy~aQtlvqFm29wG#v@4|)Q2Ju!DeL8ZE}*J=8OB& z9z;jMGlh*6iz$PEdGp!~t*+W0T|gjb&_BgN%%Odj0o`sKUFpQ=tbkgcjB_!^CRUwD z=U6p?R^>n6P_bR#Enz1QjYqtI-3th-m)9UXwv#E^e52&fYZq}bJ=M;-?L>L#% z(F;AHy2)A~Tmkf3R;E*X3Z<9bo##0%^cK?`YO^n;zM<{~K9EQ44!rax;3A`?265{_ z8AC95IW&jF|9!Aa&1d4*jF*nM#Y04-8N+&%rgp!E<$`B8I$U>H(?;rmWqnk7@I#VX zUFH3G+N;GU$!`|B|M%MBw!|tbRKDa_M*>uPrNr>tyU|^F(H3Lw#a}aoHpE!b`OIdW?ts${U;$oqUg6~YG?&eW95f;-#9z(V0cI%lZrL%{ zBIn^<^Myyv!b0c_j)`@gk@@7E06hr9u?a`+t^f@OmRxenD6G?5_KbK~ZZ<9a3A!Hz zvz_R3zwd&n{_xol>aSbTe53I~RbB&QTK)-{$_k+n)QED`pzSYrtV9A~;m_eZDqksl z32iKfe2FK9CLxZv8{ut4hI1bK>#`~j!3^>S_}I|^&sF*l9;RRUrU=$^PPli|1hQ4M z8A>6P9AUSgF1#DFxNe$+5uS2LelDl7)V|rL)%mUSVkrzIAiuPvCk+b;_{l2A1`7me zJQ!s{DQ`S48jiC&OsWB|_#W3_axZw~FH>j!T1@T&QyXt2UZh)Tyg9Ck*K=XCAvaON9P*xtU_o~zU56Oa9C zO10REyl7SU+Pn$fsHXm@o#F;MZbbUF!qCX%Hy@W@GE>IH165xYNTW{U(+2Nl`szB{ zF-K`Afu{D>+@HdPTUwRKn@k?+Kz6-#V5HX#Uj4^ zURZ+@t^2%+kpW}329-BG zSDfhuNi5rDxq-%m%|+G$8y52UAbYu2?54kBh1y*2B{72@`;6l5DVn|2x2Bqq5zy@m zRf*-%(?ee57t!@pF`0~Kf@VCuh#ImH6>l(V+pNeSWkTK054yala)nLF z`@&eCe;%R41599xn}OSMxHfM)xCu%}$Uz8j-&k zJf*J==7|DP2+gQQ2@u)O7L=#$%EpsS#i2QPyUWH%nBM%B(0u;)d0E|DDvE~3Q^mjK z*ygst==`laVPr{S?QS9~w6MgmqI7Mymj+?jO^Y5Zh52slQHi+`>VbVNWf;Dy*DL76 z^ga|FD6!gOD&nRc=glWkXH)smt0bC&9Nd(2M9&qd+I!=BYgk|KyHMHbmWm@IE0Vs( zC>Boa?$lwkVMcOXOi^V>?C%lveiM_EB_*!Q~OLpP%YFg|C*VN#fGu)xs@Dk)^w`% z&gB0tM+q7G3IR#X7n`1p*u+YzUS<4p^zg&fv$u0w8D$oCF{A1FKiawN%-Z&3^NnqoQ-x_`M;odnGhZ)@e#Irc#ufuV_1m-b%}1zB`fL)^@~B za)K|&MZ2}#j#-adPvi2X)!*pjf)w#h_uGFSZdcRivd@@^Y5}hg?V-h3oPIi!R_8gO zr^5{l)7lb&rjX{W+EhT)eYH!xQ<*XK39~u*8iv!0@mW+AKi@8ZZ)TwyPk?mMyUSj` zI^TqA-3U2tejyKAO?kcNXRGN>2#34Oy}5oF{(iQku~0*`WH#Qz=Zv05i7L-vnG4 zpaRJFsrQ`ZyknYxqdiK(oly#iT;-VtmPJ_ z{@_*1$lfn=x-Q^4Z92r~PL_Q0qtXrtfb7M4|9a77u*wB5C-wvL=@DeFI>~sUr-)B$ z4d|YO_Sj$4VzaLEnd-uqpE!*lp(mb^ZWyc{75&D*66C~dX0J8GvC?WR*dx_^zm-TW ze;hj)$ec!`wq9YMMeKM3& zuv{59$U)Dh6Jl{E?1IvmBb75v4bmH^M@-%dyO5j4Qf$9rcBv9i)vR4f#?$ z9!ju_-3ERvD4?Cvn!GTVhr1w685%$EMbmUe8ZA!%aoYHB&ZE3kcCuT)w#yQ1CO-Z0 zO9=+`kP~+MKip03|0SZ;PkCNaskvH$@Yv&t44PLCxOqIYH!ka}=Mpb8gk5(pWtQ>( zlO}($B$Q$E{w<;$QfHbyLD3@^PAZ3k&qMwzp6lq|#=FO-DdfXVHb3UMQ;NpP&hT@C zcPMP9%-u{zh0zlIYROE_;IgB0C8n&@^1Y(Gk(3qyjku!TpvXjis^4lfZRk9%C~?r{ zaCcH5YDuU#JeB}^_;HKhzvKUDH5WCE>qA3)Kx{8fk(sLK^ zTnE0mkdf`a4`uLMFQuK_P6ppj+Sc>ijmi8v3=02Yz3PhoiJ5Hdx#a{^+GYTvnl2kaOXawtx+QE88bq_V9bedf)?g<1CTLF0g%7IP8S)i;bm98Y%-cWwC>SHf-6W`g&N z&$I$r)HN5}Ml>C}&i^CD34I@lTqla{O0TdU##~!S82;;j%3gJ5iB*1LrVoS1tQ{Jh ztUt}HBlQg;RCiQd4o#q+6qy-W_5znJ9|1ErOP%p+`Il|Bb{a+uOoU@UWRoeqP7z!$ zq%C&^Q^tecLgVyR_2$|%KB`r%>TK6HoP+GosFs_|5k3((jED{M)QcUS2*{!IE%2^j z`y&nfI;x`QMDOVeYb1q`S1mE9p&i;^&(30J?K#ObOG62oVZM%%bD`r4dr@d2uP0{X zG)($?lG9s{9W9sq`lF|`ts4u<>?uTffrgBxHtSj4i>z)`#u#7z+MdH5^ z3#s0i)N!|&JYRFMbk3ed4m+`ywCpn_bbtMuB6S$ocDv~B8AwVHElJbkDppYaZT;= zwu8SWG};TCj#Jv5Xow|*z)B&FlIMCLQZ)d(cM3fXo4d3GRA?!|j zx&$nfyy}MApJONgyBS!tA1{KgX@Ng%0%46zh=N}*w40mC-;zraD;ga*->ec%6Y$e_ zcN)(17y{Z`Jdb(FYNh={;10H%r8_#8N4bE3Tg+a+neb!JuB3QwM#uNQGwEyyM8tW> z(=aobSg88d{5Zjy@HfSKIZn2;DR1@h_W^Fdc}=OZC2v}U%0l&Khgr=!Q|6QkP%>Ea zQ6_H^zv!WTA%M7|*qzw(liSK2}r=!HZIZrMt0<*K8&l{8BgoCDdhi6FD(Lo*Fa zv#UebpfJ+ju%7FZ67vf^r`*_l0LC?uenQXG{@1{J8Q@aTy~kY8P51>tvO zn=1fEMbaF1@#QqD^<6N2+M#?4v!C|Eq#-zZZ+o2ZJBLt^To*jn!R6L1v7T=k!UcHb zU`Z4Wk`9G#t+6t(&(!YVDeq~Cs;B%q3(NFKV8(jxY?sUJKh{X^9qOL4SVAZSZVirF z5>khLN|Xv|`H#z!uDJ=)RI`tNl`Beb9D+^E;M1GLCwnOJ^@U_{gXUo7Mx4pVcSpWBMV>UJGqXUj9&l6$`zY8ITX{fOt??%L*p96h8L}M zp=~v~RXfuLVNFbmO-@ozRk4fCqVHElJYQ?ue_T;+pD|K|;FE`0*PJER(qi^ZlO4Du zL36mfrGwHd~i=V-BU)dESNTs_-MhUB@8YLS;eg=bscMP^CR!%@?VZe!$Z2GS76)EzM@K=^M!` z)1p>A$ZoiEAuwr6hEV&%zqS~3V8DZ#K{b^pp=gC#K@}S~Jy<=iK}A`0+vP3V#(pqX zg>$scTmHQML-&Jk+ASQ#RF@OqbI43FW$hfHi7L#94seyTGTLsrLo)edy0- zSuve;CMGAazdO(9dm^n{lE2^aCC0@mlQ4qU%8fm@by+I|w!{UmZolG39p?oR! ziiLzoY*c}iAVxUc&u!B!WYiS7xHdcQs)d-F+p*AimJtLh8Opv_4zgq&IAV@S+ug`6 z4;;v2rx;kJR%zlmlg5? zVlI7nGWM{cV>UCf6C}4_dXA_&jOYYX5`J8j@qi}%=MyqW3+Ev%ERIn5=n#8Jzn%4H zdGkQvA0NrX(J|y#3wmHiiI%$abd0_ZTd5anZzQ*K^M%H3gkL z+TKhKG&-#+2cBYzu5pA^!*07l>&`{+Dgpa&+?iYIO)7xo@ayi>V7Q!jIr-D{>NxGC zZ1B2gYNc(yqhP@hodS{lSW<%hSSgC)kl z@Me5g%0c+R2@mhPow=h!N_l|u6{vsZPyn(apP`>Wc(aJ-H!Ybps5LN;`Z zo*mrN)Azr2n}+i)8y}nOnSu_O5}gmm%N>u6KKQL3&Zpe5_g|B@t1PkvbgW{3BXP@T z2NzrDI3L;fiu66YgZb>PhT$4`YKQC}rI6KU2E=z^|`}u>WfB|F1$+4C%eex?o2s+&- zO;Ft)u!V!SZH~^}DaPjvA}pH@oi`$PJo^-JW&AOjUEl#x?+^DW@-<79SNA+`(<<_D zbvn`ZhL9qQ8tAqWmG#iMEu6AA-2iEBYOL&jpo6xhqQ&5QV)TI)-h!6=%P=;N_9spb z_k%g?5EbhacZb>0dV~&lbm5l#ld&<+~~*Joq#u5J_R(o^#%0FfX|8 z`~YlGLmR4XuECcGwL&pNR7yPKFrgFR;vsW0sH@gX$tPSOkX4O^zYO6c2NOqbQ^(8# z1J=qHnJI{*Sc^sK-NRBse z_FZIYOBV2SJ(B173xjMp{d#>`+-{87orM|O{l)6z`)thhf{Ig5DLKNV{!-D`WgEmN zlWl)oAah$a+kH0Q(E>ZX45zIG3cp7vQ@M_}HlkbkEC9I1x{rU&0~~I2bU6^b+(8WOA`IkUx+* z)sKlG^Tgo)++|yTyww@@#iOeTzg^g6JApIT(pn!T*3Nt{#`xGT`GQD?qF@cWMU$ld zrv;b^Zz4iml`cTdVm)$cad)pZ8dR|aS@#7Mgj_Rez{4GyxrHClG^k>&ZPZoXDutYj zE;hFgAW4a0%FhDHT)^0wUHYMU-uOg91jbI)t-r`_Qh5?b8RL#|+%6z;FK0+R`cYIs zmlQ&-n1G=X_9>8sEe;50Q{Hgz;g(*xs7-b4HNc-t2Q36_ZA6FZJlv)r5`OxUU11hfMqt>noPp zSZc7ku)KoZ(%mJGm$}fa(3il95WK#ww`hsop)H(We)5-SyD7`F%N@VT|42lzyDf@r zSn0scIwkL0Yc{8{BBeCAty@w|WNlvuyy)<|Qe7e@fqOJWqOa8;qrb8kI4Z^8o8l9x z>-O*cUwdEG)m9g-3sfjlT#E#Ech>^Ny|`O(cPmheyL*9Bpt!qhiaUYeuEAaQ`u6z& z=i=O+tBfQgBgwno`Ph{8M?5th$pvW#niPLBGxl^(DzE=h>|%JWDwhngX8Z*Amj*qd zfW>=eU)^j9wC4xC?F%R@2FRMLeNR|%J}~rdFlW8YcZ`Oj6!;NGm3~%LNRfz7Oay3JscU61Gk1nam;a8J5yQncA^5(!`+`)3qT zm)hpHiO!*>e!$_zmpEz)b(pR}fg5_=9JQEH!dsB+^1H3zW@Z%5F$zo%EeoUFv7H}t zk6r4)95v?nbdLO?yNCWZKxs`Plu*coA%s@JVpwa9%>-hjKtoAb3g+1%&dK4&X@vit z-0w9%o*|Xh`3x5xCO` zNtsDI7r*!A`-h7^<-siTHH2b+#Ig#KL}n{y0T(Tzw7-=6d4Y|>9RE)bG_6qU>Iq3!~4y9zl*@PJG^`Feri}Q@$<03~-RC zix@Qrx|}cwOG}%5ADwt90%6q$TO#6^0VMtn*)dmt!=?y`X2k>6Ka|XxbK8IKyCzC! zNRjb4O&q&V{F>zp`l}Xd&h}j*$Y)i#WXy6j2;LkG6n!zRnLHBMfY;&6oLxI-qta|n ze`UNCgoDXH9vN#Gq{Fi$_~aK`&O@!58~B5QgRm|H3zFdb%@$X}`DjiNy2x0tck`(k z-*7A9zcsH873{e*)Y26jkTo-p(==%--Bukin0B z-D@!)*SAnN+2DYT1td|Q>mK1^3uzKB?q$|Zm)lewmSZYiedBkS7$+MXL!XvDqE=*@ z+L<4)%c@TC#b!y%q3cz(Ms+=4)j|2GZ6CEm9(~(;0-&DKD(jP?qgUhUxL~e-%{DqoP$Vjad2C~hN(E2eo<`=oe284@Q+aYu ztPk>MPhpPXFTv0WdEBh;Ym~tQJ;&e4O#Qe4eHkI`fami!&a=-Lic=B6mJz2(+S)(9 zm~}5mpo(~twQ%_u%s)SI9ko}ocB;57_s+5|!iC#*#s9y#7 zb{Sy1Cu0j`3w2Lf^!JgFx)MCmz@4tGA-uwN)61Le{${UsT|GNfkr;^z@L`o@utIE& zl6x{y(=Yv+!9>hFAO`VdPoa+})n?0-VkBd3Vy!(>A1VbcC43sw#qxh8^{iU@`P}Aq zOy{oKP&jm!@FWt*lBjPA-NdDvvx$a~`Y*8N%6!T3K_wPUfJyuRP%0ak>kHXf^NTYq z+gZv`r%Pt2<=`lp5lA+$4IqD5H86LH@Ua(AY1I9A`ooAucwjy?HPz1diHjy=>M&sc z==R}qAUF?+P7S9H+<)QNx%+U>nOvor#))`y2FVU>_VO{AJn(7?a0f8BPLyzvm#C3K zi%wQH+)N)7wc^xsH{oq{Ox21;Vxse>aHh`Vw0uvA;fwB@SQO?F&*?6^AIT&=a?^y) zPp5oKf8R|WH^U1$d{>artHbz%z+!$~5w25I9hphNfkbam?&(Wv`Z#B63WxzdK0$2f zn`n2QGo*0`(%;m3<*GJIMS@yN#Iz5qIYO0JYm$jnsZY*m8480FGcQp)nb`B2!?JxdOAd2Y9;$O@_Z?*r16 z)&A&Kzl$zp!{%H1Pb}z-%2+HIv`kK*FvA1)cdtSc&|^4WT53YwH{txz{{0SmeM5*2CH``2f zZx&=cSSi48<%RZKCCeZc$%Rn82~o=1!$QhXP%4#6DP0ywR+Pub!Y7H*uM|rRI;9^< zLr%#=Za7lul(vtxL)jXibBg|HrT+zt`}Qq{KRG3=!*ExRz_FH5mumF#rL5d}1EcP~RShh6vkj`isB)er)#6&v zYSKjh9HGvuCif@5GsKmwx6_S{tRYtV1#mwj_wUMYymi!bi zduC!C6%^pc4}#_)t7YRWBIsX?y_PlO><3Xn-b4e?|gSyT2mztGZS?KzSfOF3d@W>W^>`OEGA0kzW7H=;jCpNUrU#wtg90NUV&R-+%{q28GNouG2ZE zvyap}r|1Ok?CCKX1od&w^phVY2S3g_%&D|!lAr&it}oQzxs*Gi@ahQ9&C0>hT|ftU zawE6&-@OzOG*MBkUG%l#3=D_|NmHBItzng~Ub3xSOsI9M$}&63{LGHF+y{RfwfwdY zQ)n{w95jly7>@WxV-UGBbl4cBIMQ6I`mbA=lD6NVPo@~ex!*7O>4E=(%wVEz2;{;n zH6%Dh+KFZ2dS(+XfgK&9C28(Li!*NF#LDxj#SC+lhPf3m(dG=c-f7>*2{x#@}{#x;ppM=(OuGEeGT^ z>ET;??V0-3&;_@}P2X?HQ9K-nf5{NQ=3LljQsj4G4@xec*SKcg?Wx@7(og0P(s1#R zE}r6W{BZL z%J`f;H_g@^A&dLmoLRoJKwIgXOMX~!`furgE~GBcP#r^c9!sf z^mzQRiz3pSVrZ(3oui0WDS+floT2^L6b*@FmJ22`KG5hnvth~?3g6VnxAtc~$?k@$ zJ`Q7jS*Fte_*_MfcaCg`%-Vnuqffy=IYe5VEQ{m%^_*`+tl)G_|B6wv@}j>as_u_h zDuJ@xw#3nB%{2LkjNY89W)iQIOeIUZ^fBDgL}IX=bqEhLLLtlhp4ayh(6_HuD*P#8 zJ6NW|Jo~1@a(u|?P8ar)KBJd~o?x8HbX59@G5n_{j7=Jh564*SUCjSIkUJm*b+cgp zpV$8XlmC~3s6MIl9xfNM9`*4|wmZ8@{7bQ#%QT|XuV(W_J8n!pm};Rt;(Z+-0tE!8 z6&G_03sZ)Gc3;I7np%Z!A4URof)r@jOJ0rtjA!?z<;4t*jp4#2f%}KqDcQ5e;G!Ro zub?rzcmZ^I5?`@9s@E@y#tP)N1^sGI_1xyG!e6 zt!D~iu3H%c48WoCd#?kjI%gMG4vYh%;{FR|`!xX zivJqKDDVUJRnE1`+rmE^4NoW^YC4cZkXj# z>A=U{b?3L2d*ZWiNQXqmn_?3cltLzBlS|cN+7>EJISB2S$&xrd2lX3Ip~&Au27@5# zR(19Zjeb>+KY)^M93DzU{b8oZ()fXr#@c?CUH+AND(za_nH33aTnl#fy!_=J#iLQ7 zA9K6vjou)qSc+BD;_P)@+s8yiu?RWEyUofd zmRK;+>g6|k5+v|j-gUG4<$N^3L&Ehv1exEX5Wlvc5%2-TE37t}&uvAKztTDs1+7K9|awB7_x6GJd8)x(0ZXqJ(lY(qof{_4SS0ih6&W{|+;J+x#(_ZxWN8&LLo-8+g zV8H25DTA;ggD)Trf#|B}lohvSUt0t$KH`Iq4A%0nf9v^!; zW;LiX1}~V@#<2sh0bL|Q@C4rkTNP(XtGn$sOiaX1ph7Zh9GzocbNts|^z`)2d~J#G>FI$aB-!b$9+bJAsj#o# zUW1}fmx8wMveV+h=G(`iu0T_VBv~n`6nM#=Lfa%&HjKG!K4S7#s@nW# z>j4?FebQ-mBbO^mbj6>j*}XMFVp55R_kX{w2l^geL=yk5nG8OoLqY|8IaWwuE;BDV zd-!3jYisL7KGcQ0eC?N;jy&`Y&kR}gfiq2 zU7}Q@#u$vS?ZTf(b-q044tE6;hO@%A+Lq&oT?fV`&*IEi8c9yAo8CR%tF!+`unjO8 z$+)ySzq!cwgSgC=d<}_?M%`t~9{KeWLWhCT-5n63-RuS*^bT3AT^osmlf!WFbV2dH zcAy0(;4;PVvdG>+Ey3X{uxY|th&_eWMo&8N&Ta9_pg(tNgPlHq!3E#$Q0uj<;%LGQ;AV^;XZ%FTeVI*{;bP5VnMk} z=`r~IsRqOmE#@XLY^H;k@@KShe>`Tr!_?0@{Bbq*-xP91$SwNg5$d!h8u=WWjG7il z<4?XU<3Wykp&!K#bTJX*mUt|Lpu*1X?hQAoBCqCL>VwMpE}?P?grcD?79%sw;%3v+ zGZD@1IqpRBiP_oxCC+*5n{}AP0zMx^jYQ28qt6Sw`ukR}lfYjtX_)CWsxheLlSi9k zE&giMArpO1iehxU0i~Bg59*3b)k=}!VvcxCSAMRYIo3YO_m<;YYE#y-FSYGS;J@pI$zcao1#6*FZGhut%oJC(~qCR5A zt4&MvYn7g&ogFH+w6gKhcm;sC!RUyAUyOsqY&6Qomp&djxjFq(08ay`J>4Q{m0D%k zQ(9L{FdGhV%j6o7zxdLVrlQO>$T zj#t-OotqIC8_hD=Du<56dUsAZTID>dhbhT%qgFAnDK))eJ;BGr`C`qw)Mh?Gv%%5n z6j9Fmtg2?LfD9dVtId<05Q%)UrzPBRBY`1L(E#-BQqJOL=SzXX;sE?xAV)QE!x>U0 zDfUUR`7FIMWXyK9ZbAj?xD@Fs*Hd(no6h_Ddh}aG99Ub5@-)=1=;27>;;+>7)q1iZ zTsyuDx@(`6AkQ(LEg15(n3A49VYZ&@)FNu6^0|%A<(Tf45|)&jItY+dJQbmT>utVc zT<82zz2i)7r|^Rd>_wO;NM1?Favlolr|kz09W(zkmZ>yi$(+Gs!eFHEga8acIXMnE zRrEsbw3RtTr%67wE~OB^c4+ebQ#+kMMuT;4M5%*fkd&ewjecDh_{sg z$xUcnyE4G|HL#mggPLSHGosH%>Q&@QHFwaY@R?*cM~F305dUM#aH>BZV5OICatMy>B5A8k-*KNyj|DzGx*5&_(eeJ zfFk|Z#K>>o?&^WY9-KyX-e+;m1-0GhUj8T?iaWDxLwk#lRvWOl0%c-V;MLON;NYCJ zX<&NthDS+d0rVvx>3ldXX9?8Q)%k$AzDKmvVwE0=Z(N_YUEaC01do#lz{e*fJnH!P zc>T9Kyk56L(NNdt6ChOAL&QPr8>dPWmBOzYf`;4yBDs75mRUYrhgwU%zSdb;^d};n zG7lz9OC)tvGS0WW3iP}#De|)N15@A#fLp6=#uym1N`iZge~ITj{4he&Zt%8w0Y$`J>%-b<&q(l=k8PCE+JO6FjcRr?f`8C z6Ira1iHO8b&YwWq?UNL9W*J7Znw|1{aZs7k9R)4$S+=erpRdM<$cu^!bz9J|?4

mj0Bzhen=!N4vdm#p@YVJMgErrqz#nSbbEyfX`r~<&6y34>imYbr+}j^>2d>4| zEA8BQe&@{(vM#ZF+m6bvVY%o#3?=KyXTf2vY38Jx1Cq8^6l7eRk;i`AukDX3f z5~<0drn4+=_HqZ;>+-vz42cQM{wWfOX#J7BUQMXKdc3ahTPrp zNeA4~9}p7u_YVRJOiWr@z$oT163{Px?f#HfTNFezm=(a#%`Gj?XJ_!lBsq4Sw94@# z7VR^8B>y^8V;#Gi76U%M7Zw({H6A!5P8#A(>av*2)C_DTsY-+k1i7_l=XT~*;j2!u zS8XpP8f~~#`FAtRVws7M^Z{7K@3l=fmc=!+FqCG|#YEXH`u%Up-!rm9c)-YPKMhVP7RQKf9I{Aunc#-R2yeXGZ@9MHXWd*i)!Jd{b`d*ewJ05!h@Vx-Gn zf9SgiY<=edoQNwQ5ff#i^4e3r)}FiAOz?2yl?4|V$Wd3j*lNbe>$r!v(-jp}Mzl1l z;07_;rsd-o%wPC4dC)K+eB1RSWH6yq_z?piG&C3f0Sg`PeMpXCj-?tkZ)W`$qrgeZ#BKm{Y!;z z>KoVZq8);#oa}72Pl`OkO1!+h9Gta=kFVyt$vS@5V_E&j}=Bdn_boA116GH9Wito0N^0=0grhj}PuonQENh5|o7IPhbrL@Z#F z?05jJF8k=gtbI4*A|xba_^@OuAx?(zWLxh5NnUP(xtu(dt!PDJ@CJ#UIa0_by2q@Q z?FL$EGst4S1iZX@aKFryaHDzo-fPDh=o=)Ayt1eHR}r@;nAB1KTN!&(q?Q8X4^ES0 z(ZX0aS_ieQ9bxeprZn^WdQCoGZd|>%P&tUKwp{GEyp!K$u5n;Uql#$Z+{IcFNCuqo z8@7k7i9FxuNb;1shY|Y!91Ey3CnRL>Jk#CIUel z;w_O!EM;`ofIA+?5Wka84TKy{-*UZi|7n?DEXw{!Mlo3}2N@|68FuechOyf|P#x`! z9G|#W1*Zj6_`bj6^d4a#HejwaKJ>8bTbwlPhmM@nT5^3F9{tw~fkY%H<196KCwmr9s9{UFebe|_WKFFSkt0j$@mojJd;f5}4cGS^Z+K=N=6i#&mom% zQUs7ykju_K&ZdQ%ey*(61GaK$ zD&aJ+;sLf0-HhA*J5OMX4^hM!zRc=?@ zkW76eCg66!5$M3f$JYV|ad=!@po4$#6G;VdqB=0=w`UBjRqAy;?d1ph&ay#wzW$S@ z?dIWe?=-Hcp23Aig~mHTh;BW^0P=b||0D~z)E5Wg3E5pvv5I=U>^A+ytmioS2EXb6 zL!XU{mDicjhOf|A*S7&fx4L`mqgQRG>IscMGgwc@)!{sfC$HzHImiB8dy`|qX7s|T z;h)tp1d2cPZv%omrOe8z;nTTn>R~%8QLOsa7-4ZF`3j}eeEj^*yS>&vo-oC%RC{Mv zcS);B)mC%sS(}gQL&_E>Ki%zC@diifIRUJE5B~zsWYm#8?A8K9oe~DL+q}0?m~k~Q zFU|8S{mz^oILG7ukowcSZMbxWc&Wz4zH>b{E8rX51V~h;&`UHs@JLB>+vi@GqiL|+ zZRW|z*@J+-;P9VzqfyHGY&n1FYaiHfdo>d|&t? zM2;&AzYWMolN%=N**>g=n&1aJ}suS`zqk3&)PEqO8esY(>2- zBvonzPj95Pt)+0ry2bUDXTeeW*VMOW_dUGMRgtTM)vV{Ro21mt%p+1|O|m#Dsoawf zOc-BMv(&q=v{X;@g;i=N*=C~2csd$~E;ZBDVg|JuceCei$^ATmPXk)xMO%FT~- zIV809E0a&n=cLkRt460+S8f5zS404lyk8${bi7#Kcmud}X*>P$7%x`C&h%UZ-vVBO z@EBi(uV3;0n{Vl*zT|hhBfF)5ZM-J$X@eX=rxt=+ewbMl>az2DcTw`3=^6gaFw(;n z-=-Gt$M?LBYh=R0IRHXTRvSv%1_1sa$sQM3OzsB#OWuiCt!tRle*sujfT7*HC8`1v5Q=wP{y)hO_h8#9n{w{LA{ zJ;4mx>7QmVc+)w3)LB2qO#Z;0B!K?wRL?$sWQTaUJt=*-{rQ&F@CF-uNWpj~Go|GM zn336EssYX^b~IUh?4vVk6dH)cv3Sk*_j{b#cY#@j#d{d`A< zyFCgnleH7UdWP1*6;I?A_@o@dL7Uw}@DwxEn~gX0R|C}R{B4+ZYTkYyTkZqWL^7X_ zTtrp$FA56lqb+p`q=FgyGE>P+s)?$Ae8X18q?oyG_g;rL2sTIXdP)eaWd!h|$=^ z%4ZOnJe?{+XUbq;j*org66v?a@2#VgkwviC!CG5jr7K7{_K(!eE { + const spec = cloneDeep(chartProps) + delete spec.category + + // tooltip + const keyFill = spec.tooltip.style.keyLabel.fill + const valueFill = spec.tooltip.style.valueLabel.fill + const titleFill = spec.tooltip.style.titleLabel.keyFill + delete spec.tooltip.style.keyLabel.fill + delete spec.tooltip.style.valueLabel.fill + delete spec.tooltip.style.titleLabel.keyFill + spec.tooltip.style.keyLabel.fontColor = keyFill + spec.tooltip.style.valueLabel.fontColor = valueFill + spec.tooltip.style.titleLabel.fontColor = titleFill + + // axis + const { name: xAxisName, ...restXAxisProps } = chartProps.xAxis + const { name: yAxisName, ...restYAxisProps } = chartProps.yAxis + spec.axes = [{ + orient: 'bottom', + ...restXAxisProps + }, { + orient: 'left', + ...restYAxisProps + }] + delete spec.xAxis + delete spec.yAxis + // console.log('spec-area-transform', spec) + return spec +} \ No newline at end of file diff --git a/src/components/GoVChart/transformProps/bars.ts b/src/components/GoVChart/transformProps/bars.ts index 92bdb22c..4c1ef91a 100644 --- a/src/components/GoVChart/transformProps/bars.ts +++ b/src/components/GoVChart/transformProps/bars.ts @@ -20,13 +20,15 @@ export default (chartProps: any) => { const { name: yAxisName, ...restYAxisProps } = chartProps.yAxis spec.axes = [{ orient: 'bottom', - ...restXAxisProps + ...restXAxisProps, + // paddingInner: 0.5 }, { orient: 'left', ...restYAxisProps }] + delete spec.xAxis delete spec.yAxis - console.log('spec-transform', spec) + // console.log('spec-bar-transform', spec) return spec } \ No newline at end of file diff --git a/src/components/GoVChart/transformProps/funnels.ts b/src/components/GoVChart/transformProps/funnels.ts new file mode 100644 index 00000000..86846502 --- /dev/null +++ b/src/components/GoVChart/transformProps/funnels.ts @@ -0,0 +1,28 @@ +import { Datum } from "@visactor/vchart/esm/typings" +import { cloneDeep } from "lodash" +const INNER_RADIUS = 0.75 +const OUTER_RADIUS = 0.68 + +export default (chartProps: any) => { + const spec = cloneDeep(chartProps) + + + // tooltip + const keyFill = spec.tooltip.style.keyLabel.fill + const valueFill = spec.tooltip.style.valueLabel.fill + const titleFill = spec.tooltip.style.titleLabel.keyFill + delete spec.tooltip.style.keyLabel.fill + delete spec.tooltip.style.valueLabel.fill + delete spec.tooltip.style.titleLabel.keyFill + spec.tooltip.style.keyLabel.fontColor = keyFill + spec.tooltip.style.valueLabel.fontColor = valueFill + spec.tooltip.style.titleLabel.fontColor = titleFill + + // label + spec.label = { + visible: true, + } + + // console.log('spec-funnel-transform', spec) + return spec +} \ No newline at end of file diff --git a/src/components/GoVChart/transformProps/index.ts b/src/components/GoVChart/transformProps/index.ts index 63ec6a97..50f4f294 100644 --- a/src/components/GoVChart/transformProps/index.ts +++ b/src/components/GoVChart/transformProps/index.ts @@ -1,8 +1,20 @@ import { ChatCategoryEnum, IOption } from "@/packages/components/VChart/index.d"; import bars from './bars' +import pies from './pies' +import lines from './lines' +import areas from './areas' +import funnels from "./funnels"; +import wordClouds from "./wordClouds"; +import scatters from "./scatters"; export const transformHandler: { [key: string]: (args: IOption) => any } = { [ChatCategoryEnum.BAR]: bars, + [ChatCategoryEnum.PIE]: pies, + [ChatCategoryEnum.LINE]: lines, + [ChatCategoryEnum.AREA]: areas, + [ChatCategoryEnum.FUNNEL]: funnels, + [ChatCategoryEnum.WORDCLOUD]: wordClouds, + [ChatCategoryEnum.SCATTER]: scatters, // todo: more charts handler } \ No newline at end of file diff --git a/src/components/GoVChart/transformProps/lines.ts b/src/components/GoVChart/transformProps/lines.ts new file mode 100644 index 00000000..5faa9e7b --- /dev/null +++ b/src/components/GoVChart/transformProps/lines.ts @@ -0,0 +1,32 @@ +import { cloneDeep } from "lodash" + +export default (chartProps: any) => { + const spec = cloneDeep(chartProps) + delete spec.category + + // tooltip + const keyFill = spec.tooltip.style.keyLabel.fill + const valueFill = spec.tooltip.style.valueLabel.fill + const titleFill = spec.tooltip.style.titleLabel.keyFill + delete spec.tooltip.style.keyLabel.fill + delete spec.tooltip.style.valueLabel.fill + delete spec.tooltip.style.titleLabel.keyFill + spec.tooltip.style.keyLabel.fontColor = keyFill + spec.tooltip.style.valueLabel.fontColor = valueFill + spec.tooltip.style.titleLabel.fontColor = titleFill + + // axis + const { name: xAxisName, ...restXAxisProps } = chartProps.xAxis + const { name: yAxisName, ...restYAxisProps } = chartProps.yAxis + spec.axes = [{ + orient: 'bottom', + ...restXAxisProps + }, { + orient: 'left', + ...restYAxisProps + }] + delete spec.xAxis + delete spec.yAxis + // console.log('spec-line-transform', spec) + return spec +} \ No newline at end of file diff --git a/src/components/GoVChart/transformProps/pies.ts b/src/components/GoVChart/transformProps/pies.ts new file mode 100644 index 00000000..c6bb19c3 --- /dev/null +++ b/src/components/GoVChart/transformProps/pies.ts @@ -0,0 +1,139 @@ +import { Datum } from "@visactor/vchart/esm/typings" +import { cloneDeep } from "lodash" +const INNER_RADIUS = 0.75 +const OUTER_RADIUS = 0.68 + +export default (chartProps: any) => { + const spec = cloneDeep(chartProps) + delete spec.category + + spec.innerRadius = INNER_RADIUS + spec.outerRadius = OUTER_RADIUS + + // tooltip + const keyFill = spec.tooltip.style.keyLabel.fill + const valueFill = spec.tooltip.style.valueLabel.fill + const titleFill = spec.tooltip.style.titleLabel.keyFill + delete spec.tooltip.style.keyLabel.fill + delete spec.tooltip.style.valueLabel.fill + delete spec.tooltip.style.titleLabel.keyFill + spec.tooltip.style.keyLabel.fontColor = keyFill + spec.tooltip.style.valueLabel.fontColor = valueFill + spec.tooltip.style.titleLabel.fontColor = titleFill + + // extensionMark + spec.extensionMark = [ + { + name: 'arc_inner_shadow', + type: 'arc', + dataId: 'id0', + style: { + interactive: false, + startAngle: (datum: Datum) => { + console.log('startAngle', datum) + return datum['__VCHART_ARC_START_ANGLE']; + }, + endAngle: (datum: Datum) => { + return datum['__VCHART_ARC_END_ANGLE']; + }, + innerRadius: (datum: Datum, context: any) => { + return context.getLayoutRadius() * spec.innerRadius - 30; + }, + outerRadius: (datum: Datum, context: any) => { + return context.getLayoutRadius() * spec.innerRadius; + }, + fillOpacity: 0.3, + fill: (datum: Datum, context: any) => { + console.log('context', context.seriesColor(datum[spec.seriesField])) + return context.seriesColor(datum[spec.seriesField]); + }, + visible: true, + x: (datum: Datum, context: any) => { + return context.getCenter().x(); + }, + y: (datum: Datum, context: any) => { + return context.getCenter().y(); + } + } + }, + { + name: 'arc_inner', + type: 'symbol', + // dataId: 'id0', + style: { + interactive: false, + size: (datum: Datum, context: any) => { + return context.getLayoutRadius() * 2 * spec.innerRadius - 100; + }, + fillOpacity: 0, + lineWidth: 1, + strokeOpacity: 0.5, + stroke: { + gradient: 'conical', + startAngle: 0, + endAngle: Math.PI * 2, + stops: [ + { + offset: 0, + color: '#FFF', + opacity: 0 + }, + { + offset: 1, + color: '#FFF', + opacity: 1 + } + ] + }, + visible: true, + x: (datum: Datum, context: any) => { + return context.getCenter().x(); + }, + y: (datum: Datum, context: any) => { + return context.getCenter().y(); + } + } + }, + { + name: 'arc_outer', + type: 'symbol', + // dataId: 'id0', + style: { + interactive: false, + size: (datum: Datum, context: any) => { + return context.getLayoutRadius() * 2 * spec.outerRadius + 50; + }, + fillOpacity: 0, + lineWidth: 1, + strokeOpacity: 0.5, + stroke: { + gradient: 'conical', + startAngle: 0, + endAngle: Math.PI * 2, + stops: [ + { + offset: 0, + color: '#FFF', + opacity: 0 + }, + { + offset: 1, + color: '#FFF', + opacity: 1 + } + ] + }, + visible: true, + x: (datum: Datum, context: any) => { + return context.getCenter().x(); + }, + y: (datum: Datum, context: any) => { + return context.getCenter().y(); + } + } + } + ] + + // console.log('spec-pie-transform', spec) + return spec +} \ No newline at end of file diff --git a/src/components/GoVChart/transformProps/scatters.ts b/src/components/GoVChart/transformProps/scatters.ts new file mode 100644 index 00000000..a74f8d67 --- /dev/null +++ b/src/components/GoVChart/transformProps/scatters.ts @@ -0,0 +1,35 @@ +import { cloneDeep } from "lodash" + +export default (chartProps: any) => { + const spec = cloneDeep(chartProps) + + // tooltip + const keyFill = spec.tooltip.style.keyLabel.fill + const valueFill = spec.tooltip.style.valueLabel.fill + const titleFill = spec.tooltip.style.titleLabel.keyFill + delete spec.tooltip.style.keyLabel.fill + delete spec.tooltip.style.valueLabel.fill + delete spec.tooltip.style.titleLabel.keyFill + spec.tooltip.style.keyLabel.fontColor = keyFill + spec.tooltip.style.valueLabel.fontColor = valueFill + spec.tooltip.style.titleLabel.fontColor = titleFill + + // axis + const { name: xAxisName, ...restXAxisProps } = chartProps.xAxis + const { name: yAxisName, ...restYAxisProps } = chartProps.yAxis + spec.axes = [{ + orient: 'bottom', + ...restXAxisProps, + label: { + formatMethod: (value: string) => Number(value).toFixed(2) + } + }, { + orient: 'left', + ...restYAxisProps + }] + + delete spec.xAxis + delete spec.yAxis + // console.log('spec-scatter-transform', spec) + return spec +} \ No newline at end of file diff --git a/src/components/GoVChart/transformProps/wordClouds.ts b/src/components/GoVChart/transformProps/wordClouds.ts new file mode 100644 index 00000000..a4b57777 --- /dev/null +++ b/src/components/GoVChart/transformProps/wordClouds.ts @@ -0,0 +1,21 @@ +import { Datum } from "@visactor/vchart/esm/typings" +import { cloneDeep } from "lodash" + +export default (chartProps: any) => { + const spec = cloneDeep(chartProps) + + // tooltip + const keyFill = spec.tooltip.style.keyLabel.fill + const valueFill = spec.tooltip.style.valueLabel.fill + const titleFill = spec.tooltip.style.titleLabel.keyFill + delete spec.tooltip.style.keyLabel.fill + delete spec.tooltip.style.valueLabel.fill + delete spec.tooltip.style.titleLabel.keyFill + spec.tooltip.style.keyLabel.fontColor = keyFill + spec.tooltip.style.valueLabel.fontColor = valueFill + spec.tooltip.style.titleLabel.fontColor = titleFill + + + // console.log('spec-word-cloud-transform', spec) + return spec +} \ No newline at end of file diff --git a/src/packages/components/VChart/Areas/VChartArea/config.ts b/src/packages/components/VChart/Areas/VChartArea/config.ts new file mode 100644 index 00000000..78bf1ee4 --- /dev/null +++ b/src/packages/components/VChart/Areas/VChartArea/config.ts @@ -0,0 +1,47 @@ +import { PublicConfigClass } from '@/packages/public' +import { VChartAreaConfig } from './index' +import { CreateComponentType } from '@/packages/index.d' +import { vChartOptionPrefixHandle } from '@/packages/public/vChart' +import data from './data.json' +import cloneDeep from 'lodash/cloneDeep' +import axisThemeJson from '@/settings/vchartThemes/axis.theme.json' +import { IAreaOption } from '../../index.d' + +export const includes = ['legends', 'tooltip'] +export const option: IAreaOption & { dataset?: any } = { + // 图表配置 + type: 'area', + dataset: data, + xField: 'type', + yField: 'value', + seriesField: 'country', + stack: true, + // 业务配置(后续会被转换为图表spec) + category: VChartAreaConfig.category, + xAxis: { + name: 'x轴', + ...axisThemeJson, + grid: { + ...axisThemeJson.grid, + visible: false + } + }, + yAxis: { + name: 'y轴', + ...axisThemeJson, + grid: { + ...axisThemeJson.grid, + style: { + ...axisThemeJson.grid.style, + lineDash: [3, 3] + } + } + } +} + +export default class Config extends PublicConfigClass implements CreateComponentType { + public key = VChartAreaConfig.key + public chartConfig = cloneDeep(VChartAreaConfig) + // 图表配置项 + public option = vChartOptionPrefixHandle(option, includes) +} diff --git a/src/packages/components/VChart/Areas/VChartArea/config.vue b/src/packages/components/VChart/Areas/VChartArea/config.vue new file mode 100644 index 00000000..9f15a51a --- /dev/null +++ b/src/packages/components/VChart/Areas/VChartArea/config.vue @@ -0,0 +1,19 @@ + + + diff --git a/src/packages/components/VChart/Areas/VChartArea/data.json b/src/packages/components/VChart/Areas/VChartArea/data.json new file mode 100644 index 00000000..9ba2b574 --- /dev/null +++ b/src/packages/components/VChart/Areas/VChartArea/data.json @@ -0,0 +1,16 @@ +{ + "values": [ + { "type": "Nail polish", "country": "China", "value": 3054 }, + { "type": "Nail polish", "country": "USA", "value": 12814 }, + { "type": "Eyebrow pencil", "country": "China", "value": 5067 }, + { "type": "Eyebrow pencil", "country": "USA", "value": 13012 }, + { "type": "Rouge", "country": "China", "value": 7004 }, + { "type": "Rouge", "country": "USA", "value": 11624 }, + { "type": "Lipstick", "country": "China", "value": 9054 }, + { "type": "Lipstick", "country": "USA", "value": 8814 }, + { "type": "Eyeshadows", "country": "China", "value": 12043 }, + { "type": "Eyeshadows", "country": "USA", "value": 12998 }, + { "type": "Eyeliner", "country": "China", "value": 15067 }, + { "type": "Eyeliner", "country": "USA", "value": 12321 } + ] +} diff --git a/src/packages/components/VChart/Areas/VChartArea/index.ts b/src/packages/components/VChart/Areas/VChartArea/index.ts new file mode 100644 index 00000000..60894264 --- /dev/null +++ b/src/packages/components/VChart/Areas/VChartArea/index.ts @@ -0,0 +1,14 @@ +import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d' +import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d' + +export const VChartAreaConfig: ConfigType = { + key: 'VChartArea', + chartKey: 'VVChartArea', + conKey: 'VCVChartArea', + title: 'VChart面积图', + category: ChatCategoryEnum.AREA, + categoryName: ChatCategoryEnumName.AREA, + package: PackagesCategoryEnum.VCHART, + chartFrame: ChartFrameEnum.VCHART, + image: 'vchart_area.png' +} diff --git a/src/packages/components/VChart/Areas/VChartArea/index.vue b/src/packages/components/VChart/Areas/VChartArea/index.vue new file mode 100644 index 00000000..c70c6676 --- /dev/null +++ b/src/packages/components/VChart/Areas/VChartArea/index.vue @@ -0,0 +1,22 @@ + + + diff --git a/src/packages/components/VChart/Areas/VChartPercentArea/config.ts b/src/packages/components/VChart/Areas/VChartPercentArea/config.ts new file mode 100644 index 00000000..d2e46b78 --- /dev/null +++ b/src/packages/components/VChart/Areas/VChartPercentArea/config.ts @@ -0,0 +1,48 @@ +import { PublicConfigClass } from '@/packages/public' +import { VChartPercentAreaConfig } from './index' +import { CreateComponentType } from '@/packages/index.d' +import { vChartOptionPrefixHandle } from '@/packages/public/vChart' +import data from './data.json' +import cloneDeep from 'lodash/cloneDeep' +import axisThemeJson from '@/settings/vchartThemes/axis.theme.json' +import { IAreaOption } from '../../index.d' + +export const includes = ['legends', 'tooltip'] +export const option: IAreaOption & { dataset?: any } = { + // 图表配置 + type: 'area', + dataset: data, + xField: 'type', + yField: 'value', + seriesField: 'country', + stack: true, + percent: true, + // 业务配置(后续会被转换为图表spec) + category: VChartPercentAreaConfig.category, + xAxis: { + name: 'x轴', + ...axisThemeJson, + grid: { + ...axisThemeJson.grid, + visible: false + } + }, + yAxis: { + name: 'y轴', + ...axisThemeJson, + grid: { + ...axisThemeJson.grid, + style: { + ...axisThemeJson.grid.style, + lineDash: [3, 3] + } + } + } +} + +export default class Config extends PublicConfigClass implements CreateComponentType { + public key = VChartPercentAreaConfig.key + public chartConfig = cloneDeep(VChartPercentAreaConfig) + // 图表配置项 + public option = vChartOptionPrefixHandle(option, includes) +} diff --git a/src/packages/components/VChart/Areas/VChartPercentArea/config.vue b/src/packages/components/VChart/Areas/VChartPercentArea/config.vue new file mode 100644 index 00000000..9f15a51a --- /dev/null +++ b/src/packages/components/VChart/Areas/VChartPercentArea/config.vue @@ -0,0 +1,19 @@ + + + diff --git a/src/packages/components/VChart/Areas/VChartPercentArea/data.json b/src/packages/components/VChart/Areas/VChartPercentArea/data.json new file mode 100644 index 00000000..9ba2b574 --- /dev/null +++ b/src/packages/components/VChart/Areas/VChartPercentArea/data.json @@ -0,0 +1,16 @@ +{ + "values": [ + { "type": "Nail polish", "country": "China", "value": 3054 }, + { "type": "Nail polish", "country": "USA", "value": 12814 }, + { "type": "Eyebrow pencil", "country": "China", "value": 5067 }, + { "type": "Eyebrow pencil", "country": "USA", "value": 13012 }, + { "type": "Rouge", "country": "China", "value": 7004 }, + { "type": "Rouge", "country": "USA", "value": 11624 }, + { "type": "Lipstick", "country": "China", "value": 9054 }, + { "type": "Lipstick", "country": "USA", "value": 8814 }, + { "type": "Eyeshadows", "country": "China", "value": 12043 }, + { "type": "Eyeshadows", "country": "USA", "value": 12998 }, + { "type": "Eyeliner", "country": "China", "value": 15067 }, + { "type": "Eyeliner", "country": "USA", "value": 12321 } + ] +} diff --git a/src/packages/components/VChart/Areas/VChartPercentArea/index.ts b/src/packages/components/VChart/Areas/VChartPercentArea/index.ts new file mode 100644 index 00000000..743e9aa4 --- /dev/null +++ b/src/packages/components/VChart/Areas/VChartPercentArea/index.ts @@ -0,0 +1,14 @@ +import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d' +import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d' + +export const VChartPercentAreaConfig: ConfigType = { + key: 'VChartPercentArea', + chartKey: 'VVChartPercentArea', + conKey: 'VCVChartPercentArea', + title: 'VChart百分比面积图', + category: ChatCategoryEnum.AREA, + categoryName: ChatCategoryEnumName.AREA, + package: PackagesCategoryEnum.VCHART, + chartFrame: ChartFrameEnum.VCHART, + image: 'vchart_percent_area.png' +} diff --git a/src/packages/components/VChart/Areas/VChartPercentArea/index.vue b/src/packages/components/VChart/Areas/VChartPercentArea/index.vue new file mode 100644 index 00000000..c70c6676 --- /dev/null +++ b/src/packages/components/VChart/Areas/VChartPercentArea/index.vue @@ -0,0 +1,22 @@ + + + diff --git a/src/packages/components/VChart/Areas/index.ts b/src/packages/components/VChart/Areas/index.ts new file mode 100644 index 00000000..7125be10 --- /dev/null +++ b/src/packages/components/VChart/Areas/index.ts @@ -0,0 +1,4 @@ +import { VChartAreaConfig } from './VChartArea/index' +import { VChartPercentAreaConfig } from './VChartPercentArea/index' + +export default [VChartAreaConfig, VChartPercentAreaConfig] diff --git a/src/packages/components/VChart/Bars/VChartBarCommon/index.ts b/src/packages/components/VChart/Bars/VChartBarCommon/index.ts index 8e8a1533..968350b9 100644 --- a/src/packages/components/VChart/Bars/VChartBarCommon/index.ts +++ b/src/packages/components/VChart/Bars/VChartBarCommon/index.ts @@ -5,7 +5,7 @@ export const VChartBarCommonConfig: ConfigType = { key: 'VChartBarCommon', chartKey: 'VVChartBarCommon', conKey: 'VCVChartBarCommon', - title: 'VChart柱状图', + title: 'VChart并列柱状图', category: ChatCategoryEnum.BAR, categoryName: ChatCategoryEnumName.BAR, package: PackagesCategoryEnum.VCHART, diff --git a/src/packages/components/VChart/Bars/VChartBarStack/index.ts b/src/packages/components/VChart/Bars/VChartBarStack/index.ts index 860c0d02..a584dac2 100644 --- a/src/packages/components/VChart/Bars/VChartBarStack/index.ts +++ b/src/packages/components/VChart/Bars/VChartBarStack/index.ts @@ -5,7 +5,7 @@ export const VChartBarStackConfig: ConfigType = { key: 'VChartBarStack', chartKey: 'VVChartBarStack', conKey: 'VCVChartBarStack', - title: 'VChart柱状图', + title: 'VChart堆叠柱状图', category: ChatCategoryEnum.BAR, categoryName: ChatCategoryEnumName.BAR, package: PackagesCategoryEnum.VCHART, diff --git a/src/packages/components/VChart/Funnels/VChartFunnel/config.ts b/src/packages/components/VChart/Funnels/VChartFunnel/config.ts new file mode 100644 index 00000000..a0ec081a --- /dev/null +++ b/src/packages/components/VChart/Funnels/VChartFunnel/config.ts @@ -0,0 +1,25 @@ +import { PublicConfigClass } from '@/packages/public' +import { VChartFunnelConfig } from './index' +import { CreateComponentType } from '@/packages/index.d' +import { vChartOptionPrefixHandle } from '@/packages/public/vChart' +import data from './data.json' +import cloneDeep from 'lodash/cloneDeep' +import { IFunnelOption } from '../../index.d' + +export const includes = ['legends', 'tooltip'] +export const option: IFunnelOption & { dataset?: any } = { + // 图表配置 + type: 'funnel', + dataset: data, + categoryField: 'name', + valueField: 'value', + // 业务配置(后续会被转换为图表spec) + category: VChartFunnelConfig.category, +} + +export default class Config extends PublicConfigClass implements CreateComponentType { + public key = VChartFunnelConfig.key + public chartConfig = cloneDeep(VChartFunnelConfig) + // 图表配置项 + public option = vChartOptionPrefixHandle(option, includes) +} diff --git a/src/packages/components/VChart/Funnels/VChartFunnel/config.vue b/src/packages/components/VChart/Funnels/VChartFunnel/config.vue new file mode 100644 index 00000000..48a2470f --- /dev/null +++ b/src/packages/components/VChart/Funnels/VChartFunnel/config.vue @@ -0,0 +1,17 @@ + + + diff --git a/src/packages/components/VChart/Funnels/VChartFunnel/data.json b/src/packages/components/VChart/Funnels/VChartFunnel/data.json new file mode 100644 index 00000000..8b605d5e --- /dev/null +++ b/src/packages/components/VChart/Funnels/VChartFunnel/data.json @@ -0,0 +1,24 @@ +{ + "values": [ + { + "value": 100, + "name": "Step1" + }, + { + "value": 80, + "name": "Step2" + }, + { + "value": 60, + "name": "Step3" + }, + { + "value": 40, + "name": "Step4" + }, + { + "value": 20, + "name": "Step5" + } + ] +} diff --git a/src/packages/components/VChart/Funnels/VChartFunnel/index.ts b/src/packages/components/VChart/Funnels/VChartFunnel/index.ts new file mode 100644 index 00000000..1c8bdd1d --- /dev/null +++ b/src/packages/components/VChart/Funnels/VChartFunnel/index.ts @@ -0,0 +1,14 @@ +import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d' +import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d' + +export const VChartFunnelConfig: ConfigType = { + key: 'VChartFunnel', + chartKey: 'VVChartFunnel', + conKey: 'VCVChartFunnel', + title: 'VChart漏斗图', + category: ChatCategoryEnum.FUNNEL, + categoryName: ChatCategoryEnumName.FUNNEL, + package: PackagesCategoryEnum.VCHART, + chartFrame: ChartFrameEnum.VCHART, + image: 'vchart_funnel.png' +} diff --git a/src/packages/components/VChart/Funnels/VChartFunnel/index.vue b/src/packages/components/VChart/Funnels/VChartFunnel/index.vue new file mode 100644 index 00000000..c70c6676 --- /dev/null +++ b/src/packages/components/VChart/Funnels/VChartFunnel/index.vue @@ -0,0 +1,22 @@ + + + diff --git a/src/packages/components/VChart/Funnels/index.ts b/src/packages/components/VChart/Funnels/index.ts new file mode 100644 index 00000000..3da01d4b --- /dev/null +++ b/src/packages/components/VChart/Funnels/index.ts @@ -0,0 +1,3 @@ +import { VChartFunnelConfig } from './VChartFunnel/index' + +export default [VChartFunnelConfig] diff --git a/src/packages/components/VChart/Lines/VChartLine/config.ts b/src/packages/components/VChart/Lines/VChartLine/config.ts new file mode 100644 index 00000000..12ce684f --- /dev/null +++ b/src/packages/components/VChart/Lines/VChartLine/config.ts @@ -0,0 +1,47 @@ +import { PublicConfigClass } from '@/packages/public' +import { VChartLineConfig } from './index' +import { CreateComponentType } from '@/packages/index.d' +import { vChartOptionPrefixHandle } from '@/packages/public/vChart' +import data from './data.json' +import cloneDeep from 'lodash/cloneDeep' +import axisThemeJson from '@/settings/vchartThemes/axis.theme.json' +import { ILineOption } from '../../index.d' + +export const includes = ['legends', 'tooltip'] +export const option: ILineOption & { dataset?: any } = { + // 图表配置 + type: 'line', + dataset: data, + xField: 'type', + yField: 'value', + seriesField: 'country', + stack: true, + // 业务配置(后续会被转换为图表spec) + category: VChartLineConfig.category, + xAxis: { + name: 'x轴', + ...axisThemeJson, + grid: { + ...axisThemeJson.grid, + visible: false + } + }, + yAxis: { + name: 'y轴', + ...axisThemeJson, + grid: { + ...axisThemeJson.grid, + style: { + ...axisThemeJson.grid.style, + lineDash: [3, 3] + } + } + } +} + +export default class Config extends PublicConfigClass implements CreateComponentType { + public key = VChartLineConfig.key + public chartConfig = cloneDeep(VChartLineConfig) + // 图表配置项 + public option = vChartOptionPrefixHandle(option, includes) +} diff --git a/src/packages/components/VChart/Lines/VChartLine/config.vue b/src/packages/components/VChart/Lines/VChartLine/config.vue new file mode 100644 index 00000000..9f15a51a --- /dev/null +++ b/src/packages/components/VChart/Lines/VChartLine/config.vue @@ -0,0 +1,19 @@ + + + diff --git a/src/packages/components/VChart/Lines/VChartLine/data.json b/src/packages/components/VChart/Lines/VChartLine/data.json new file mode 100644 index 00000000..9ba2b574 --- /dev/null +++ b/src/packages/components/VChart/Lines/VChartLine/data.json @@ -0,0 +1,16 @@ +{ + "values": [ + { "type": "Nail polish", "country": "China", "value": 3054 }, + { "type": "Nail polish", "country": "USA", "value": 12814 }, + { "type": "Eyebrow pencil", "country": "China", "value": 5067 }, + { "type": "Eyebrow pencil", "country": "USA", "value": 13012 }, + { "type": "Rouge", "country": "China", "value": 7004 }, + { "type": "Rouge", "country": "USA", "value": 11624 }, + { "type": "Lipstick", "country": "China", "value": 9054 }, + { "type": "Lipstick", "country": "USA", "value": 8814 }, + { "type": "Eyeshadows", "country": "China", "value": 12043 }, + { "type": "Eyeshadows", "country": "USA", "value": 12998 }, + { "type": "Eyeliner", "country": "China", "value": 15067 }, + { "type": "Eyeliner", "country": "USA", "value": 12321 } + ] +} diff --git a/src/packages/components/VChart/Lines/VChartLine/index.ts b/src/packages/components/VChart/Lines/VChartLine/index.ts new file mode 100644 index 00000000..95cb94cb --- /dev/null +++ b/src/packages/components/VChart/Lines/VChartLine/index.ts @@ -0,0 +1,14 @@ +import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d' +import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d' + +export const VChartLineConfig: ConfigType = { + key: 'VChartLine', + chartKey: 'VVChartLine', + conKey: 'VCVChartLine', + title: 'VChart折线图', + category: ChatCategoryEnum.LINE, + categoryName: ChatCategoryEnumName.LINE, + package: PackagesCategoryEnum.VCHART, + chartFrame: ChartFrameEnum.VCHART, + image: 'vchart_line.png' +} diff --git a/src/packages/components/VChart/Lines/VChartLine/index.vue b/src/packages/components/VChart/Lines/VChartLine/index.vue new file mode 100644 index 00000000..c70c6676 --- /dev/null +++ b/src/packages/components/VChart/Lines/VChartLine/index.vue @@ -0,0 +1,22 @@ + + + diff --git a/src/packages/components/VChart/Lines/index.ts b/src/packages/components/VChart/Lines/index.ts new file mode 100644 index 00000000..99b4ae8f --- /dev/null +++ b/src/packages/components/VChart/Lines/index.ts @@ -0,0 +1,3 @@ +import { VChartLineConfig } from './VChartLine/index' + +export default [VChartLineConfig] diff --git a/src/packages/components/VChart/Pies/VChartPie/config.ts b/src/packages/components/VChart/Pies/VChartPie/config.ts new file mode 100644 index 00000000..423796cc --- /dev/null +++ b/src/packages/components/VChart/Pies/VChartPie/config.ts @@ -0,0 +1,26 @@ +import { PublicConfigClass } from '@/packages/public' +import { VChartPieConfig } from './index' +import { CreateComponentType } from '@/packages/index.d' +import { vChartOptionPrefixHandle } from '@/packages/public/vChart' +import data from './data.json' +import cloneDeep from 'lodash/cloneDeep' +import { IPieOption } from '../../index.d' + +export const includes = ['legends', 'tooltip'] +export const option: IPieOption & { dataset?: any } = { + // 图表配置 + type: 'pie', + dataset: data, + categoryField: 'year', + valueField: 'value', + seriesField: 'year', + // 业务配置(后续会被转换为图表spec) + category: VChartPieConfig.category, +} + +export default class Config extends PublicConfigClass implements CreateComponentType { + public key = VChartPieConfig.key + public chartConfig = cloneDeep(VChartPieConfig) + // 图表配置项 + public option = vChartOptionPrefixHandle(option, includes) +} diff --git a/src/packages/components/VChart/Pies/VChartPie/config.vue b/src/packages/components/VChart/Pies/VChartPie/config.vue new file mode 100644 index 00000000..48a2470f --- /dev/null +++ b/src/packages/components/VChart/Pies/VChartPie/config.vue @@ -0,0 +1,17 @@ + + + diff --git a/src/packages/components/VChart/Pies/VChartPie/data.json b/src/packages/components/VChart/Pies/VChartPie/data.json new file mode 100644 index 00000000..d71a1e6b --- /dev/null +++ b/src/packages/components/VChart/Pies/VChartPie/data.json @@ -0,0 +1,14 @@ +{ + "values": [ + { "type": "Autocracies", "year": "1930", "value": 129 }, + { "type": "Autocracies", "year": "1940", "value": 133 }, + { "type": "Autocracies", "year": "1950", "value": 130 }, + { "type": "Autocracies", "year": "1960", "value": 126 }, + { "type": "Autocracies", "year": "1970", "value": 117 }, + { "type": "Autocracies", "year": "1980", "value": 114 }, + { "type": "Autocracies", "year": "1990", "value": 111 }, + { "type": "Autocracies", "year": "2000", "value": 89 }, + { "type": "Autocracies", "year": "2010", "value": 80 }, + { "type": "Autocracies", "year": "2018", "value": 80 } + ] +} diff --git a/src/packages/components/VChart/Pies/VChartPie/index.ts b/src/packages/components/VChart/Pies/VChartPie/index.ts new file mode 100644 index 00000000..532e6154 --- /dev/null +++ b/src/packages/components/VChart/Pies/VChartPie/index.ts @@ -0,0 +1,14 @@ +import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d' +import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d' + +export const VChartPieConfig: ConfigType = { + key: 'VChartPie', + chartKey: 'VVChartPie', + conKey: 'VCVChartPie', + title: 'VChart饼图', + category: ChatCategoryEnum.PIE, + categoryName: ChatCategoryEnumName.PIE, + package: PackagesCategoryEnum.VCHART, + chartFrame: ChartFrameEnum.VCHART, + image: 'vchart_pie.png' +} diff --git a/src/packages/components/VChart/Pies/VChartPie/index.vue b/src/packages/components/VChart/Pies/VChartPie/index.vue new file mode 100644 index 00000000..c70c6676 --- /dev/null +++ b/src/packages/components/VChart/Pies/VChartPie/index.vue @@ -0,0 +1,22 @@ + + + diff --git a/src/packages/components/VChart/Pies/index.ts b/src/packages/components/VChart/Pies/index.ts new file mode 100644 index 00000000..fc58b881 --- /dev/null +++ b/src/packages/components/VChart/Pies/index.ts @@ -0,0 +1,3 @@ +import { VChartPieConfig } from './VChartPie/index' + +export default [VChartPieConfig] diff --git a/src/packages/components/VChart/Scatters/VChartScatter/config.ts b/src/packages/components/VChart/Scatters/VChartScatter/config.ts new file mode 100644 index 00000000..7d1216e8 --- /dev/null +++ b/src/packages/components/VChart/Scatters/VChartScatter/config.ts @@ -0,0 +1,47 @@ +import { PublicConfigClass } from '@/packages/public' +import { VChartScatterConfig } from './index' +import { CreateComponentType } from '@/packages/index.d' +import { vChartOptionPrefixHandle } from '@/packages/public/vChart' +import data from './data.json' +import cloneDeep from 'lodash/cloneDeep' +import axisThemeJson from '@/settings/vchartThemes/axis.theme.json' +import { IAreaOption } from '../../index.d' + +export const includes = ['legends', 'tooltip'] +export const option: IAreaOption & { dataset?: any } = { + // 图表配置 + type: 'scatter', + dataset: data, + stack: true, + xField: 'x', + yField: 'horsepower', + seriesField: 'cylinders', + // 业务配置(后续会被转换为图表spec) + category: VChartScatterConfig.category, + xAxis: { + name: 'x轴', + ...axisThemeJson, + grid: { + ...axisThemeJson.grid, + visible: false + } + }, + yAxis: { + name: 'y轴', + ...axisThemeJson, + grid: { + ...axisThemeJson.grid, + style: { + ...axisThemeJson.grid.style, + lineDash: [3, 3] + } + } + } +} + +export default class Config extends PublicConfigClass implements CreateComponentType { + public key = VChartScatterConfig.key + public chartConfig = cloneDeep(VChartScatterConfig) + // 图表配置项 + public option = vChartOptionPrefixHandle(option, includes) +} diff --git a/src/packages/components/VChart/Scatters/VChartScatter/config.vue b/src/packages/components/VChart/Scatters/VChartScatter/config.vue new file mode 100644 index 00000000..9f15a51a --- /dev/null +++ b/src/packages/components/VChart/Scatters/VChartScatter/config.vue @@ -0,0 +1,19 @@ + + + diff --git a/src/packages/components/VChart/Scatters/VChartScatter/data.json b/src/packages/components/VChart/Scatters/VChartScatter/data.json new file mode 100644 index 00000000..fbb1862d --- /dev/null +++ b/src/packages/components/VChart/Scatters/VChartScatter/data.json @@ -0,0 +1,2846 @@ +{ + "values": [ + { + "name": "chevrolet chevelle malibu", + "milesPerGallon": 18, + "cylinders": 8, + "horsepower": 130, + "x": 8.369035799207357 + }, + { + "name": "buick skylark 320", + "milesPerGallon": 15, + "cylinders": 8, + "horsepower": 165, + "x": 7.650029728786544 + }, + { + "name": "plymouth satellite", + "milesPerGallon": 18, + "cylinders": 8, + "horsepower": 150, + "x": 7.968503221959899 + }, + { + "name": "amc rebel sst", + "milesPerGallon": 16, + "cylinders": 8, + "horsepower": 150, + "x": 7.8561560094781955 + }, + { + "name": "ford torino", + "milesPerGallon": 17, + "cylinders": 8, + "horsepower": 140, + "x": 7.864427335458599 + }, + { + "name": "ford galaxie 500", + "milesPerGallon": 15, + "cylinders": 8, + "horsepower": 198, + "x": 7.795269144672034 + }, + { + "name": "chevrolet impala", + "milesPerGallon": 14, + "cylinders": 8, + "horsepower": 220, + "x": 8.093918960889592 + }, + { + "name": "plymouth fury iii", + "milesPerGallon": 14, + "cylinders": 8, + "horsepower": 215, + "x": 8.096790572779447 + }, + { + "name": "pontiac catalina", + "milesPerGallon": 14, + "cylinders": 8, + "horsepower": 225, + "x": 8.280421990443992 + }, + { + "name": "amc ambassador dpl", + "milesPerGallon": 15, + "cylinders": 8, + "horsepower": 190, + "x": 7.812477402825842 + }, + { + "name": "citroen ds-21 pallas", + "milesPerGallon": 0, + "cylinders": 4, + "horsepower": 115, + "x": 4.350254126743262 + }, + { + "name": "chevrolet chevelle concours (sw)", + "milesPerGallon": 0, + "cylinders": 8, + "horsepower": 165, + "x": 8.336047282481855 + }, + { + "name": "ford torino (sw)", + "milesPerGallon": 0, + "cylinders": 8, + "horsepower": 153, + "x": 8.302128751564197 + }, + { + "name": "plymouth satellite (sw)", + "milesPerGallon": 0, + "cylinders": 8, + "horsepower": 175, + "x": 8.061597332557989 + }, + { + "name": "amc rebel sst (sw)", + "milesPerGallon": 0, + "cylinders": 8, + "horsepower": 175, + "x": 7.664837196380818 + }, + { + "name": "dodge challenger se", + "milesPerGallon": 15, + "cylinders": 8, + "horsepower": 170, + "x": 8.275147641122178 + }, + { + "name": "plymouth 'cuda 340", + "milesPerGallon": 14, + "cylinders": 8, + "horsepower": 160, + "x": 8.258530083217627 + }, + { + "name": "ford mustang boss 302", + "milesPerGallon": 0, + "cylinders": 8, + "horsepower": 140, + "x": 7.645170928170343 + }, + { + "name": "chevrolet monte carlo", + "milesPerGallon": 15, + "cylinders": 8, + "horsepower": 150, + "x": 7.89039684982018 + }, + { + "name": "buick estate wagon (sw)", + "milesPerGallon": 14, + "cylinders": 8, + "horsepower": 225, + "x": 7.76227513980753 + }, + { + "name": "toyota corona mark ii", + "milesPerGallon": 24, + "cylinders": 4, + "horsepower": 95, + "x": 4.240267871288519 + }, + { + "name": "plymouth duster", + "milesPerGallon": 22, + "cylinders": 6, + "horsepower": 95, + "x": 5.815333283103814 + }, + { + "name": "amc hornet", + "milesPerGallon": 18, + "cylinders": 6, + "horsepower": 97, + "x": 6.199722230971187 + }, + { + "name": "ford maverick", + "milesPerGallon": 21, + "cylinders": 6, + "horsepower": 85, + "x": 5.84155599489376 + }, + { + "name": "datsun pl510", + "milesPerGallon": 27, + "cylinders": 4, + "horsepower": 88, + "x": 3.644534398133687 + }, + { + "name": "volkswagen 1131 deluxe sedan", + "milesPerGallon": 26, + "cylinders": 4, + "horsepower": 46, + "x": 3.652329499162354 + }, + { + "name": "peugeot 504", + "milesPerGallon": 25, + "cylinders": 4, + "horsepower": 87, + "x": 3.6921618966402843 + }, + { + "name": "audi 100 ls", + "milesPerGallon": 24, + "cylinders": 4, + "horsepower": 90, + "x": 4.027217142848164 + }, + { + "name": "saab 99e", + "milesPerGallon": 25, + "cylinders": 4, + "horsepower": 95, + "x": 3.9415947155959774 + }, + { + "name": "bmw 2002", + "milesPerGallon": 26, + "cylinders": 4, + "horsepower": 113, + "x": 4.050221722279534 + }, + { + "name": "amc gremlin", + "milesPerGallon": 21, + "cylinders": 6, + "horsepower": 90, + "x": 6.261381817520874 + }, + { + "name": "ford f250", + "milesPerGallon": 10, + "cylinders": 8, + "horsepower": 215, + "x": 7.695684729213842 + }, + { + "name": "chevy c20", + "milesPerGallon": 10, + "cylinders": 8, + "horsepower": 200, + "x": 8.209748747255345 + }, + { + "name": "dodge d200", + "milesPerGallon": 11, + "cylinders": 8, + "horsepower": 210, + "x": 7.846867016987405 + }, + { + "name": "hi 1200d", + "milesPerGallon": 9, + "cylinders": 8, + "horsepower": 193, + "x": 7.828846703882448 + }, + { + "name": "datsun pl510", + "milesPerGallon": 27, + "cylinders": 4, + "horsepower": 88, + "x": 3.859449508889943 + }, + { + "name": "chevrolet vega 2300", + "milesPerGallon": 28, + "cylinders": 4, + "horsepower": 90, + "x": 3.8718649080786602 + }, + { + "name": "toyota corona", + "milesPerGallon": 25, + "cylinders": 4, + "horsepower": 95, + "x": 3.6787061470327425 + }, + { + "name": "ford pinto", + "milesPerGallon": 25, + "cylinders": 4, + "horsepower": 0, + "x": 4.0187293963215724 + }, + { + "name": "volkswagen super beetle 117", + "milesPerGallon": 0, + "cylinders": 4, + "horsepower": 48, + "x": 3.943328407800161 + }, + { + "name": "amc gremlin", + "milesPerGallon": 19, + "cylinders": 6, + "horsepower": 100, + "x": 5.999494813289073 + }, + { + "name": "plymouth satellite custom", + "milesPerGallon": 16, + "cylinders": 6, + "horsepower": 105, + "x": 6.290208822990809 + }, + { + "name": "chevrolet chevelle malibu", + "milesPerGallon": 17, + "cylinders": 6, + "horsepower": 100, + "x": 5.823164098366052 + }, + { + "name": "ford torino 500", + "milesPerGallon": 19, + "cylinders": 6, + "horsepower": 88, + "x": 6.116011353863191 + }, + { + "name": "amc matador", + "milesPerGallon": 18, + "cylinders": 6, + "horsepower": 100, + "x": 5.865571771104295 + }, + { + "name": "chevrolet impala", + "milesPerGallon": 14, + "cylinders": 8, + "horsepower": 165, + "x": 7.80322981951277 + }, + { + "name": "pontiac catalina brougham", + "milesPerGallon": 14, + "cylinders": 8, + "horsepower": 175, + "x": 7.712942520435072 + }, + { + "name": "ford galaxie 500", + "milesPerGallon": 14, + "cylinders": 8, + "horsepower": 153, + "x": 8.030269860470632 + }, + { + "name": "plymouth fury iii", + "milesPerGallon": 14, + "cylinders": 8, + "horsepower": 150, + "x": 7.8959396584543855 + }, + { + "name": "dodge monaco (sw)", + "milesPerGallon": 12, + "cylinders": 8, + "horsepower": 180, + "x": 8.15167511088829 + }, + { + "name": "ford country squire (sw)", + "milesPerGallon": 13, + "cylinders": 8, + "horsepower": 170, + "x": 7.642988316347062 + }, + { + "name": "pontiac safari (sw)", + "milesPerGallon": 13, + "cylinders": 8, + "horsepower": 175, + "x": 7.837391703481973 + }, + { + "name": "amc hornet sportabout (sw)", + "milesPerGallon": 18, + "cylinders": 6, + "horsepower": 110, + "x": 6.287237197746149 + }, + { + "name": "chevrolet vega (sw)", + "milesPerGallon": 22, + "cylinders": 4, + "horsepower": 72, + "x": 4.201240369620046 + }, + { + "name": "pontiac firebird", + "milesPerGallon": 19, + "cylinders": 6, + "horsepower": 100, + "x": 6.091165935264614 + }, + { + "name": "ford mustang", + "milesPerGallon": 18, + "cylinders": 6, + "horsepower": 88, + "x": 6.36195718874336 + }, + { + "name": "mercury capri 2000", + "milesPerGallon": 23, + "cylinders": 4, + "horsepower": 86, + "x": 3.8411851683678155 + }, + { + "name": "opel 1900", + "milesPerGallon": 28, + "cylinders": 4, + "horsepower": 90, + "x": 4.080202623672469 + }, + { + "name": "peugeot 304", + "milesPerGallon": 30, + "cylinders": 4, + "horsepower": 70, + "x": 3.8607928613726648 + }, + { + "name": "fiat 124b", + "milesPerGallon": 30, + "cylinders": 4, + "horsepower": 76, + "x": 3.7969976315564606 + }, + { + "name": "toyota corolla 1200", + "milesPerGallon": 31, + "cylinders": 4, + "horsepower": 65, + "x": 4.363211116247065 + }, + { + "name": "datsun 1200", + "milesPerGallon": 35, + "cylinders": 4, + "horsepower": 69, + "x": 4.316312298201062 + }, + { + "name": "volkswagen model 111", + "milesPerGallon": 27, + "cylinders": 4, + "horsepower": 60, + "x": 3.711432044472396 + }, + { + "name": "plymouth cricket", + "milesPerGallon": 26, + "cylinders": 4, + "horsepower": 70, + "x": 3.9609923230640787 + }, + { + "name": "toyota corona hardtop", + "milesPerGallon": 24, + "cylinders": 4, + "horsepower": 95, + "x": 4.263784859264984 + }, + { + "name": "dodge colt hardtop", + "milesPerGallon": 25, + "cylinders": 4, + "horsepower": 80, + "x": 3.8871854792281146 + }, + { + "name": "volkswagen type 3", + "milesPerGallon": 23, + "cylinders": 4, + "horsepower": 54, + "x": 3.8360975201282663 + }, + { + "name": "chevrolet vega", + "milesPerGallon": 20, + "cylinders": 4, + "horsepower": 90, + "x": 4.172708392435074 + }, + { + "name": "ford pinto runabout", + "milesPerGallon": 21, + "cylinders": 4, + "horsepower": 86, + "x": 3.9673857263272256 + }, + { + "name": "chevrolet impala", + "milesPerGallon": 13, + "cylinders": 8, + "horsepower": 165, + "x": 7.633164000543357 + }, + { + "name": "pontiac catalina", + "milesPerGallon": 14, + "cylinders": 8, + "horsepower": 175, + "x": 7.886678205550053 + }, + { + "name": "plymouth fury iii", + "milesPerGallon": 15, + "cylinders": 8, + "horsepower": 150, + "x": 8.275671856536176 + }, + { + "name": "ford galaxie 500", + "milesPerGallon": 14, + "cylinders": 8, + "horsepower": 153, + "x": 7.951195410494355 + }, + { + "name": "amc ambassador sst", + "milesPerGallon": 17, + "cylinders": 8, + "horsepower": 150, + "x": 7.882820449295332 + }, + { + "name": "mercury marquis", + "milesPerGallon": 11, + "cylinders": 8, + "horsepower": 208, + "x": 7.849390788382628 + }, + { + "name": "buick lesabre custom", + "milesPerGallon": 13, + "cylinders": 8, + "horsepower": 155, + "x": 7.948201490604689 + }, + { + "name": "oldsmobile delta 88 royale", + "milesPerGallon": 12, + "cylinders": 8, + "horsepower": 160, + "x": 8.210635205663252 + }, + { + "name": "chrysler newport royal", + "milesPerGallon": 13, + "cylinders": 8, + "horsepower": 190, + "x": 7.641036004573681 + }, + { + "name": "mazda rx2 coupe", + "milesPerGallon": 19, + "cylinders": 3, + "horsepower": 97, + "x": 2.891821199642409 + }, + { + "name": "amc matador (sw)", + "milesPerGallon": 15, + "cylinders": 8, + "horsepower": 150, + "x": 8.336629003944669 + }, + { + "name": "chevrolet chevelle concours (sw)", + "milesPerGallon": 13, + "cylinders": 8, + "horsepower": 130, + "x": 7.9219881116886475 + }, + { + "name": "ford gran torino (sw)", + "milesPerGallon": 13, + "cylinders": 8, + "horsepower": 140, + "x": 7.8934726533849435 + }, + { + "name": "plymouth satellite custom (sw)", + "milesPerGallon": 14, + "cylinders": 8, + "horsepower": 150, + "x": 8.057706267563129 + }, + { + "name": "volvo 145e (sw)", + "milesPerGallon": 18, + "cylinders": 4, + "horsepower": 112, + "x": 3.635290276575149 + }, + { + "name": "volkswagen 411 (sw)", + "milesPerGallon": 22, + "cylinders": 4, + "horsepower": 76, + "x": 3.8028229183447957 + }, + { + "name": "peugeot 504 (sw)", + "milesPerGallon": 21, + "cylinders": 4, + "horsepower": 87, + "x": 4.118577741767033 + }, + { + "name": "renault 12 (sw)", + "milesPerGallon": 26, + "cylinders": 4, + "horsepower": 69, + "x": 4.198450953513762 + }, + { + "name": "ford pinto (sw)", + "milesPerGallon": 22, + "cylinders": 4, + "horsepower": 86, + "x": 4.329784358153141 + }, + { + "name": "datsun 510 (sw)", + "milesPerGallon": 28, + "cylinders": 4, + "horsepower": 92, + "x": 3.9435403382828396 + }, + { + "name": "toyouta corona mark ii (sw)", + "milesPerGallon": 23, + "cylinders": 4, + "horsepower": 97, + "x": 4.35540238583771 + }, + { + "name": "dodge colt (sw)", + "milesPerGallon": 28, + "cylinders": 4, + "horsepower": 80, + "x": 4.037920811568482 + }, + { + "name": "toyota corolla 1600 (sw)", + "milesPerGallon": 27, + "cylinders": 4, + "horsepower": 88, + "x": 3.7599084399512606 + }, + { + "name": "buick century 350", + "milesPerGallon": 13, + "cylinders": 8, + "horsepower": 175, + "x": 8.326745745776993 + }, + { + "name": "amc matador", + "milesPerGallon": 14, + "cylinders": 8, + "horsepower": 150, + "x": 8.062835335606577 + }, + { + "name": "chevrolet malibu", + "milesPerGallon": 13, + "cylinders": 8, + "horsepower": 145, + "x": 8.361171737905769 + }, + { + "name": "ford gran torino", + "milesPerGallon": 14, + "cylinders": 8, + "horsepower": 137, + "x": 7.837847425105593 + }, + { + "name": "dodge coronet custom", + "milesPerGallon": 15, + "cylinders": 8, + "horsepower": 150, + "x": 7.939600483693272 + }, + { + "name": "mercury marquis brougham", + "milesPerGallon": 12, + "cylinders": 8, + "horsepower": 198, + "x": 7.644723815901321 + }, + { + "name": "chevrolet caprice classic", + "milesPerGallon": 13, + "cylinders": 8, + "horsepower": 150, + "x": 7.973438719478234 + }, + { + "name": "ford ltd", + "milesPerGallon": 13, + "cylinders": 8, + "horsepower": 158, + "x": 7.7188754660438414 + }, + { + "name": "plymouth fury gran sedan", + "milesPerGallon": 14, + "cylinders": 8, + "horsepower": 150, + "x": 8.11850643108697 + }, + { + "name": "chrysler new yorker brougham", + "milesPerGallon": 13, + "cylinders": 8, + "horsepower": 215, + "x": 8.205134389394614 + }, + { + "name": "buick electra 225 custom", + "milesPerGallon": 12, + "cylinders": 8, + "horsepower": 225, + "x": 7.923409436249858 + }, + { + "name": "amc ambassador brougham", + "milesPerGallon": 13, + "cylinders": 8, + "horsepower": 175, + "x": 8.228936770225731 + }, + { + "name": "plymouth valiant", + "milesPerGallon": 18, + "cylinders": 6, + "horsepower": 105, + "x": 5.674149489224827 + }, + { + "name": "chevrolet nova custom", + "milesPerGallon": 16, + "cylinders": 6, + "horsepower": 100, + "x": 6.031504541773996 + }, + { + "name": "amc hornet", + "milesPerGallon": 18, + "cylinders": 6, + "horsepower": 100, + "x": 5.9503616396021055 + }, + { + "name": "ford maverick", + "milesPerGallon": 18, + "cylinders": 6, + "horsepower": 88, + "x": 5.976960416158603 + }, + { + "name": "plymouth duster", + "milesPerGallon": 23, + "cylinders": 6, + "horsepower": 95, + "x": 6.089505720521723 + }, + { + "name": "volkswagen super beetle", + "milesPerGallon": 26, + "cylinders": 4, + "horsepower": 46, + "x": 3.7303981874150773 + }, + { + "name": "chevrolet impala", + "milesPerGallon": 11, + "cylinders": 8, + "horsepower": 150, + "x": 7.976213436545324 + }, + { + "name": "ford country", + "milesPerGallon": 12, + "cylinders": 8, + "horsepower": 167, + "x": 8.268475314508438 + }, + { + "name": "plymouth custom suburb", + "milesPerGallon": 13, + "cylinders": 8, + "horsepower": 170, + "x": 8.173854895547144 + }, + { + "name": "oldsmobile vista cruiser", + "milesPerGallon": 12, + "cylinders": 8, + "horsepower": 180, + "x": 7.9615284565949125 + }, + { + "name": "amc gremlin", + "milesPerGallon": 18, + "cylinders": 6, + "horsepower": 100, + "x": 6.35906036490087 + }, + { + "name": "toyota carina", + "milesPerGallon": 20, + "cylinders": 4, + "horsepower": 88, + "x": 3.6830139107575413 + }, + { + "name": "chevrolet vega", + "milesPerGallon": 21, + "cylinders": 4, + "horsepower": 72, + "x": 3.777266668178489 + }, + { + "name": "datsun 610", + "milesPerGallon": 22, + "cylinders": 4, + "horsepower": 94, + "x": 3.8773818726423626 + }, + { + "name": "maxda rx3", + "milesPerGallon": 18, + "cylinders": 3, + "horsepower": 90, + "x": 3.0856590246125553 + }, + { + "name": "ford pinto", + "milesPerGallon": 19, + "cylinders": 4, + "horsepower": 85, + "x": 4.145398212616298 + }, + { + "name": "mercury capri v6", + "milesPerGallon": 21, + "cylinders": 6, + "horsepower": 107, + "x": 5.801479613628054 + }, + { + "name": "fiat 124 sport coupe", + "milesPerGallon": 26, + "cylinders": 4, + "horsepower": 90, + "x": 4.204130436361175 + }, + { + "name": "chevrolet monte carlo s", + "milesPerGallon": 15, + "cylinders": 8, + "horsepower": 145, + "x": 7.789089747321902 + }, + { + "name": "pontiac grand prix", + "milesPerGallon": 16, + "cylinders": 8, + "horsepower": 230, + "x": 8.368666947054 + }, + { + "name": "fiat 128", + "milesPerGallon": 29, + "cylinders": 4, + "horsepower": 49, + "x": 3.9641028087660763 + }, + { + "name": "opel manta", + "milesPerGallon": 24, + "cylinders": 4, + "horsepower": 75, + "x": 4.194627460567969 + }, + { + "name": "audi 100ls", + "milesPerGallon": 20, + "cylinders": 4, + "horsepower": 91, + "x": 3.7428576589745863 + }, + { + "name": "volvo 144ea", + "milesPerGallon": 19, + "cylinders": 4, + "horsepower": 112, + "x": 3.8261790588724116 + }, + { + "name": "dodge dart custom", + "milesPerGallon": 15, + "cylinders": 8, + "horsepower": 150, + "x": 8.261908833153957 + }, + { + "name": "saab 99le", + "milesPerGallon": 24, + "cylinders": 4, + "horsepower": 110, + "x": 3.8923861779764803 + }, + { + "name": "toyota mark ii", + "milesPerGallon": 20, + "cylinders": 6, + "horsepower": 122, + "x": 6.023305090318881 + }, + { + "name": "oldsmobile omega", + "milesPerGallon": 11, + "cylinders": 8, + "horsepower": 180, + "x": 7.916533566730453 + }, + { + "name": "plymouth duster", + "milesPerGallon": 20, + "cylinders": 6, + "horsepower": 95, + "x": 5.815183875829537 + }, + { + "name": "ford maverick", + "milesPerGallon": 21, + "cylinders": 6, + "horsepower": 0, + "x": 6.087079591635942 + }, + { + "name": "amc hornet", + "milesPerGallon": 19, + "cylinders": 6, + "horsepower": 100, + "x": 6.132976630768644 + }, + { + "name": "chevrolet nova", + "milesPerGallon": 15, + "cylinders": 6, + "horsepower": 100, + "x": 5.77587112911776 + }, + { + "name": "datsun b210", + "milesPerGallon": 31, + "cylinders": 4, + "horsepower": 67, + "x": 3.7957431353944884 + }, + { + "name": "ford pinto", + "milesPerGallon": 26, + "cylinders": 4, + "horsepower": 80, + "x": 4.231979588309825 + }, + { + "name": "toyota corolla 1200", + "milesPerGallon": 32, + "cylinders": 4, + "horsepower": 65, + "x": 3.7452757830244146 + }, + { + "name": "chevrolet vega", + "milesPerGallon": 25, + "cylinders": 4, + "horsepower": 75, + "x": 4.36199952209112 + }, + { + "name": "chevrolet chevelle malibu classic", + "milesPerGallon": 16, + "cylinders": 6, + "horsepower": 100, + "x": 6.132102235992026 + }, + { + "name": "amc matador", + "milesPerGallon": 16, + "cylinders": 6, + "horsepower": 110, + "x": 6.244358407543402 + }, + { + "name": "plymouth satellite sebring", + "milesPerGallon": 18, + "cylinders": 6, + "horsepower": 105, + "x": 5.9669018127491755 + }, + { + "name": "ford gran torino", + "milesPerGallon": 16, + "cylinders": 8, + "horsepower": 140, + "x": 7.8345110901907615 + }, + { + "name": "buick century luxus (sw)", + "milesPerGallon": 13, + "cylinders": 8, + "horsepower": 150, + "x": 8.243711758447686 + }, + { + "name": "dodge coronet custom (sw)", + "milesPerGallon": 14, + "cylinders": 8, + "horsepower": 150, + "x": 7.6391122249741805 + }, + { + "name": "ford gran torino (sw)", + "milesPerGallon": 14, + "cylinders": 8, + "horsepower": 140, + "x": 8.149220531713828 + }, + { + "name": "amc matador (sw)", + "milesPerGallon": 14, + "cylinders": 8, + "horsepower": 150, + "x": 8.257730279738169 + }, + { + "name": "audi fox", + "milesPerGallon": 29, + "cylinders": 4, + "horsepower": 83, + "x": 3.7204948906649604 + }, + { + "name": "volkswagen dasher", + "milesPerGallon": 26, + "cylinders": 4, + "horsepower": 67, + "x": 4.044604283879304 + }, + { + "name": "opel manta", + "milesPerGallon": 26, + "cylinders": 4, + "horsepower": 78, + "x": 4.1329159747108735 + }, + { + "name": "toyota corona", + "milesPerGallon": 31, + "cylinders": 4, + "horsepower": 52, + "x": 3.763628636444657 + }, + { + "name": "datsun 710", + "milesPerGallon": 32, + "cylinders": 4, + "horsepower": 61, + "x": 4.108614905428027 + }, + { + "name": "dodge colt", + "milesPerGallon": 28, + "cylinders": 4, + "horsepower": 75, + "x": 3.829343093554908 + }, + { + "name": "fiat 128", + "milesPerGallon": 24, + "cylinders": 4, + "horsepower": 75, + "x": 3.992179538347937 + }, + { + "name": "fiat 124 tc", + "milesPerGallon": 26, + "cylinders": 4, + "horsepower": 75, + "x": 4.021045930602439 + }, + { + "name": "honda civic", + "milesPerGallon": 24, + "cylinders": 4, + "horsepower": 97, + "x": 4.01260776755379 + }, + { + "name": "subaru", + "milesPerGallon": 26, + "cylinders": 4, + "horsepower": 93, + "x": 4.080818944944528 + }, + { + "name": "fiat x1.9", + "milesPerGallon": 31, + "cylinders": 4, + "horsepower": 67, + "x": 4.081015454309478 + }, + { + "name": "plymouth valiant custom", + "milesPerGallon": 19, + "cylinders": 6, + "horsepower": 95, + "x": 5.7450311922420685 + }, + { + "name": "chevrolet nova", + "milesPerGallon": 18, + "cylinders": 6, + "horsepower": 105, + "x": 5.810482491296187 + }, + { + "name": "mercury monarch", + "milesPerGallon": 15, + "cylinders": 6, + "horsepower": 72, + "x": 5.911705207459032 + }, + { + "name": "ford maverick", + "milesPerGallon": 15, + "cylinders": 6, + "horsepower": 72, + "x": 6.033276990213819 + }, + { + "name": "pontiac catalina", + "milesPerGallon": 16, + "cylinders": 8, + "horsepower": 170, + "x": 7.718068536346503 + }, + { + "name": "chevrolet bel air", + "milesPerGallon": 15, + "cylinders": 8, + "horsepower": 145, + "x": 8.317758125572004 + }, + { + "name": "plymouth grand fury", + "milesPerGallon": 16, + "cylinders": 8, + "horsepower": 150, + "x": 7.7703271590264125 + }, + { + "name": "ford ltd", + "milesPerGallon": 14, + "cylinders": 8, + "horsepower": 148, + "x": 7.786061816063091 + }, + { + "name": "buick century", + "milesPerGallon": 17, + "cylinders": 6, + "horsepower": 110, + "x": 5.687539285829092 + }, + { + "name": "chevroelt chevelle malibu", + "milesPerGallon": 16, + "cylinders": 6, + "horsepower": 105, + "x": 5.846163100863938 + }, + { + "name": "amc matador", + "milesPerGallon": 15, + "cylinders": 6, + "horsepower": 110, + "x": 6.149551566435133 + }, + { + "name": "plymouth fury", + "milesPerGallon": 18, + "cylinders": 6, + "horsepower": 95, + "x": 5.7026529649245346 + }, + { + "name": "buick skyhawk", + "milesPerGallon": 21, + "cylinders": 6, + "horsepower": 110, + "x": 6.030710322304106 + }, + { + "name": "chevrolet monza 2+2", + "milesPerGallon": 20, + "cylinders": 8, + "horsepower": 110, + "x": 8.337542628333226 + }, + { + "name": "ford mustang ii", + "milesPerGallon": 13, + "cylinders": 8, + "horsepower": 129, + "x": 7.726720573831461 + }, + { + "name": "toyota corolla", + "milesPerGallon": 29, + "cylinders": 4, + "horsepower": 75, + "x": 3.899423379967887 + }, + { + "name": "ford pinto", + "milesPerGallon": 23, + "cylinders": 4, + "horsepower": 83, + "x": 3.981411220984986 + }, + { + "name": "amc gremlin", + "milesPerGallon": 20, + "cylinders": 6, + "horsepower": 100, + "x": 6.220606678835218 + }, + { + "name": "pontiac astro", + "milesPerGallon": 23, + "cylinders": 4, + "horsepower": 78, + "x": 3.921476707741298 + }, + { + "name": "toyota corona", + "milesPerGallon": 24, + "cylinders": 4, + "horsepower": 96, + "x": 3.929493199649912 + }, + { + "name": "volkswagen dasher", + "milesPerGallon": 25, + "cylinders": 4, + "horsepower": 71, + "x": 3.967731010447716 + }, + { + "name": "datsun 710", + "milesPerGallon": 24, + "cylinders": 4, + "horsepower": 97, + "x": 3.6434570923586773 + }, + { + "name": "ford pinto", + "milesPerGallon": 18, + "cylinders": 6, + "horsepower": 97, + "x": 5.657146585274514 + }, + { + "name": "volkswagen rabbit", + "milesPerGallon": 29, + "cylinders": 4, + "horsepower": 70, + "x": 4.360660460667372 + }, + { + "name": "amc pacer", + "milesPerGallon": 19, + "cylinders": 6, + "horsepower": 90, + "x": 6.279042915974931 + }, + { + "name": "audi 100ls", + "milesPerGallon": 23, + "cylinders": 4, + "horsepower": 95, + "x": 3.729205521651694 + }, + { + "name": "peugeot 504", + "milesPerGallon": 23, + "cylinders": 4, + "horsepower": 88, + "x": 4.172579879270223 + }, + { + "name": "volvo 244dl", + "milesPerGallon": 22, + "cylinders": 4, + "horsepower": 98, + "x": 3.6460892812911494 + }, + { + "name": "saab 99le", + "milesPerGallon": 25, + "cylinders": 4, + "horsepower": 115, + "x": 4.099480817622986 + }, + { + "name": "honda civic cvcc", + "milesPerGallon": 33, + "cylinders": 4, + "horsepower": 53, + "x": 3.686699184979733 + }, + { + "name": "fiat 131", + "milesPerGallon": 28, + "cylinders": 4, + "horsepower": 86, + "x": 3.8906568823168275 + }, + { + "name": "opel 1900", + "milesPerGallon": 25, + "cylinders": 4, + "horsepower": 81, + "x": 4.163213309864342 + }, + { + "name": "capri ii", + "milesPerGallon": 25, + "cylinders": 4, + "horsepower": 92, + "x": 4.041695420795337 + }, + { + "name": "dodge colt", + "milesPerGallon": 26, + "cylinders": 4, + "horsepower": 79, + "x": 4.025099995007562 + }, + { + "name": "renault 12tl", + "milesPerGallon": 27, + "cylinders": 4, + "horsepower": 83, + "x": 3.757853046507196 + }, + { + "name": "chevrolet chevelle malibu classic", + "milesPerGallon": 17.5, + "cylinders": 8, + "horsepower": 140, + "x": 7.699522918782513 + }, + { + "name": "dodge coronet brougham", + "milesPerGallon": 16, + "cylinders": 8, + "horsepower": 150, + "x": 7.83205495307041 + }, + { + "name": "amc matador", + "milesPerGallon": 15.5, + "cylinders": 8, + "horsepower": 120, + "x": 8.048915250032099 + }, + { + "name": "ford gran torino", + "milesPerGallon": 14.5, + "cylinders": 8, + "horsepower": 152, + "x": 8.011651456551443 + }, + { + "name": "plymouth valiant", + "milesPerGallon": 22, + "cylinders": 6, + "horsepower": 100, + "x": 5.70198208409958 + }, + { + "name": "chevrolet nova", + "milesPerGallon": 22, + "cylinders": 6, + "horsepower": 105, + "x": 5.920907645277557 + }, + { + "name": "ford maverick", + "milesPerGallon": 24, + "cylinders": 6, + "horsepower": 81, + "x": 5.773924675854247 + }, + { + "name": "amc hornet", + "milesPerGallon": 22.5, + "cylinders": 6, + "horsepower": 90, + "x": 6.34431039995742 + }, + { + "name": "chevrolet chevette", + "milesPerGallon": 29, + "cylinders": 4, + "horsepower": 52, + "x": 4.277594873300891 + }, + { + "name": "chevrolet woody", + "milesPerGallon": 24.5, + "cylinders": 4, + "horsepower": 60, + "x": 3.765335591263168 + }, + { + "name": "vw rabbit", + "milesPerGallon": 29, + "cylinders": 4, + "horsepower": 70, + "x": 4.278770224425459 + }, + { + "name": "honda civic", + "milesPerGallon": 33, + "cylinders": 4, + "horsepower": 53, + "x": 4.161027157987546 + }, + { + "name": "dodge aspen se", + "milesPerGallon": 20, + "cylinders": 6, + "horsepower": 100, + "x": 6.152268187897024 + }, + { + "name": "ford granada ghia", + "milesPerGallon": 18, + "cylinders": 6, + "horsepower": 78, + "x": 5.913324809422544 + }, + { + "name": "pontiac ventura sj", + "milesPerGallon": 18.5, + "cylinders": 6, + "horsepower": 110, + "x": 5.828381858640106 + }, + { + "name": "amc pacer d/l", + "milesPerGallon": 17.5, + "cylinders": 6, + "horsepower": 95, + "x": 5.8683320093177365 + }, + { + "name": "volkswagen rabbit", + "milesPerGallon": 29.5, + "cylinders": 4, + "horsepower": 71, + "x": 3.8792962359719265 + }, + { + "name": "datsun b-210", + "milesPerGallon": 32, + "cylinders": 4, + "horsepower": 70, + "x": 3.911427860622622 + }, + { + "name": "toyota corolla", + "milesPerGallon": 28, + "cylinders": 4, + "horsepower": 75, + "x": 3.8125207839889685 + }, + { + "name": "ford pinto", + "milesPerGallon": 26.5, + "cylinders": 4, + "horsepower": 72, + "x": 3.9382401967362717 + }, + { + "name": "volvo 245", + "milesPerGallon": 20, + "cylinders": 4, + "horsepower": 102, + "x": 3.9172891932003227 + }, + { + "name": "plymouth volare premier v8", + "milesPerGallon": 13, + "cylinders": 8, + "horsepower": 150, + "x": 7.730584368976243 + }, + { + "name": "peugeot 504", + "milesPerGallon": 19, + "cylinders": 4, + "horsepower": 88, + "x": 3.6829066868121823 + }, + { + "name": "toyota mark ii", + "milesPerGallon": 19, + "cylinders": 6, + "horsepower": 108, + "x": 5.767576399045697 + }, + { + "name": "mercedes-benz 280s", + "milesPerGallon": 16.5, + "cylinders": 6, + "horsepower": 120, + "x": 5.944834766302336 + }, + { + "name": "cadillac seville", + "milesPerGallon": 16.5, + "cylinders": 8, + "horsepower": 180, + "x": 7.945298420556104 + }, + { + "name": "chevy c10", + "milesPerGallon": 13, + "cylinders": 8, + "horsepower": 145, + "x": 7.74325655312382 + }, + { + "name": "ford f108", + "milesPerGallon": 13, + "cylinders": 8, + "horsepower": 130, + "x": 7.641011022203554 + }, + { + "name": "dodge d100", + "milesPerGallon": 13, + "cylinders": 8, + "horsepower": 150, + "x": 8.205664448591063 + }, + { + "name": "honda Accelerationord cvcc", + "milesPerGallon": 31.5, + "cylinders": 4, + "horsepower": 68, + "x": 3.9260572773144036 + }, + { + "name": "buick opel isuzu deluxe", + "milesPerGallon": 30, + "cylinders": 4, + "horsepower": 80, + "x": 4.234095373803297 + }, + { + "name": "renault 5 gtl", + "milesPerGallon": 36, + "cylinders": 4, + "horsepower": 58, + "x": 3.915485542037537 + }, + { + "name": "plymouth arrow gs", + "milesPerGallon": 25.5, + "cylinders": 4, + "horsepower": 96, + "x": 3.711987497789524 + }, + { + "name": "datsun f-10 hatchback", + "milesPerGallon": 33.5, + "cylinders": 4, + "horsepower": 70, + "x": 4.275556352197315 + }, + { + "name": "chevrolet caprice classic", + "milesPerGallon": 17.5, + "cylinders": 8, + "horsepower": 145, + "x": 8.179625793921783 + }, + { + "name": "oldsmobile cutlass supreme", + "milesPerGallon": 17, + "cylinders": 8, + "horsepower": 110, + "x": 8.3516900485701 + }, + { + "name": "dodge monaco brougham", + "milesPerGallon": 15.5, + "cylinders": 8, + "horsepower": 145, + "x": 7.8297250571128885 + }, + { + "name": "mercury cougar brougham", + "milesPerGallon": 15, + "cylinders": 8, + "horsepower": 130, + "x": 7.944278879464085 + }, + { + "name": "chevrolet concours", + "milesPerGallon": 17.5, + "cylinders": 6, + "horsepower": 110, + "x": 6.150894070023309 + }, + { + "name": "buick skylark", + "milesPerGallon": 20.5, + "cylinders": 6, + "horsepower": 105, + "x": 5.723840786618133 + }, + { + "name": "plymouth volare custom", + "milesPerGallon": 19, + "cylinders": 6, + "horsepower": 100, + "x": 6.200854899011364 + }, + { + "name": "ford granada", + "milesPerGallon": 18.5, + "cylinders": 6, + "horsepower": 98, + "x": 5.767027512175655 + }, + { + "name": "pontiac grand prix lj", + "milesPerGallon": 16, + "cylinders": 8, + "horsepower": 180, + "x": 7.7585751577480035 + }, + { + "name": "chevrolet monte carlo landau", + "milesPerGallon": 15.5, + "cylinders": 8, + "horsepower": 170, + "x": 8.045977852201142 + }, + { + "name": "chrysler cordoba", + "milesPerGallon": 15.5, + "cylinders": 8, + "horsepower": 190, + "x": 8.192486708372897 + }, + { + "name": "ford thunderbird", + "milesPerGallon": 16, + "cylinders": 8, + "horsepower": 149, + "x": 8.201223481449942 + }, + { + "name": "volkswagen rabbit custom", + "milesPerGallon": 29, + "cylinders": 4, + "horsepower": 78, + "x": 4.057195298815751 + }, + { + "name": "pontiac sunbird coupe", + "milesPerGallon": 24.5, + "cylinders": 4, + "horsepower": 88, + "x": 4.185384444111024 + }, + { + "name": "toyota corolla liftback", + "milesPerGallon": 26, + "cylinders": 4, + "horsepower": 75, + "x": 3.7552968862230323 + }, + { + "name": "ford mustang ii 2+2", + "milesPerGallon": 25.5, + "cylinders": 4, + "horsepower": 89, + "x": 3.803025515743171 + }, + { + "name": "chevrolet chevette", + "milesPerGallon": 30.5, + "cylinders": 4, + "horsepower": 63, + "x": 3.7005952927648225 + }, + { + "name": "dodge colt m/m", + "milesPerGallon": 33.5, + "cylinders": 4, + "horsepower": 83, + "x": 4.250604683713029 + }, + { + "name": "subaru dl", + "milesPerGallon": 30, + "cylinders": 4, + "horsepower": 67, + "x": 4.155205977408221 + }, + { + "name": "volkswagen dasher", + "milesPerGallon": 30.5, + "cylinders": 4, + "horsepower": 78, + "x": 3.794347823856479 + }, + { + "name": "datsun 810", + "milesPerGallon": 22, + "cylinders": 6, + "horsepower": 97, + "x": 5.748505859329592 + }, + { + "name": "bmw 320i", + "milesPerGallon": 21.5, + "cylinders": 4, + "horsepower": 110, + "x": 3.691939355771659 + }, + { + "name": "mazda rx-4", + "milesPerGallon": 21.5, + "cylinders": 3, + "horsepower": 110, + "x": 2.81777818404469 + }, + { + "name": "volkswagen rabbit custom diesel", + "milesPerGallon": 43.1, + "cylinders": 4, + "horsepower": 48, + "x": 3.7220555062656944 + }, + { + "name": "ford fiesta", + "milesPerGallon": 36.1, + "cylinders": 4, + "horsepower": 66, + "x": 3.6682376054304378 + }, + { + "name": "mazda glc deluxe", + "milesPerGallon": 32.8, + "cylinders": 4, + "horsepower": 52, + "x": 4.012845248275688 + }, + { + "name": "datsun b210 gx", + "milesPerGallon": 39.4, + "cylinders": 4, + "horsepower": 70, + "x": 3.8904807400804913 + }, + { + "name": "honda civic cvcc", + "milesPerGallon": 36.1, + "cylinders": 4, + "horsepower": 60, + "x": 4.349667176249244 + }, + { + "name": "oldsmobile cutlass salon brougham", + "milesPerGallon": 19.9, + "cylinders": 8, + "horsepower": 110, + "x": 8.218646383633754 + }, + { + "name": "dodge diplomat", + "milesPerGallon": 19.4, + "cylinders": 8, + "horsepower": 140, + "x": 8.061011909911953 + }, + { + "name": "mercury monarch ghia", + "milesPerGallon": 20.2, + "cylinders": 8, + "horsepower": 139, + "x": 8.09467688137649 + }, + { + "name": "pontiac phoenix lj", + "milesPerGallon": 19.2, + "cylinders": 6, + "horsepower": 105, + "x": 5.848027241639671 + }, + { + "name": "chevrolet malibu", + "milesPerGallon": 20.5, + "cylinders": 6, + "horsepower": 95, + "x": 6.1706073883547505 + }, + { + "name": "ford fairmont (auto)", + "milesPerGallon": 20.2, + "cylinders": 6, + "horsepower": 85, + "x": 5.74555866766249 + }, + { + "name": "ford fairmont (man)", + "milesPerGallon": 25.1, + "cylinders": 4, + "horsepower": 88, + "x": 4.004711038383785 + }, + { + "name": "plymouth volare", + "milesPerGallon": 20.5, + "cylinders": 6, + "horsepower": 100, + "x": 5.874273239748711 + }, + { + "name": "amc concord", + "milesPerGallon": 19.4, + "cylinders": 6, + "horsepower": 90, + "x": 6.3572316328228835 + }, + { + "name": "buick century special", + "milesPerGallon": 20.6, + "cylinders": 6, + "horsepower": 105, + "x": 6.326290929100672 + }, + { + "name": "mercury zephyr", + "milesPerGallon": 20.8, + "cylinders": 6, + "horsepower": 85, + "x": 6.090315657803135 + }, + { + "name": "dodge aspen", + "milesPerGallon": 18.6, + "cylinders": 6, + "horsepower": 110, + "x": 6.09127717604979 + }, + { + "name": "amc concord d/l", + "milesPerGallon": 18.1, + "cylinders": 6, + "horsepower": 120, + "x": 6.178803092678216 + }, + { + "name": "chevrolet monte carlo landau", + "milesPerGallon": 19.2, + "cylinders": 8, + "horsepower": 145, + "x": 7.8831426332006025 + }, + { + "name": "buick regal sport coupe (turbo)", + "milesPerGallon": 17.7, + "cylinders": 6, + "horsepower": 165, + "x": 6.266611150726625 + }, + { + "name": "ford futura", + "milesPerGallon": 18.1, + "cylinders": 8, + "horsepower": 139, + "x": 7.939586988821181 + }, + { + "name": "dodge magnum xe", + "milesPerGallon": 17.5, + "cylinders": 8, + "horsepower": 140, + "x": 7.6749842730690325 + }, + { + "name": "chevrolet chevette", + "milesPerGallon": 30, + "cylinders": 4, + "horsepower": 68, + "x": 4.026094223323545 + }, + { + "name": "toyota corona", + "milesPerGallon": 27.5, + "cylinders": 4, + "horsepower": 95, + "x": 3.989114871371014 + }, + { + "name": "datsun 510", + "milesPerGallon": 27.2, + "cylinders": 4, + "horsepower": 97, + "x": 3.919495603121351 + }, + { + "name": "dodge omni", + "milesPerGallon": 30.9, + "cylinders": 4, + "horsepower": 75, + "x": 3.634310672481856 + }, + { + "name": "toyota celica gt liftback", + "milesPerGallon": 21.1, + "cylinders": 4, + "horsepower": 95, + "x": 4.2362951679593 + }, + { + "name": "plymouth sapporo", + "milesPerGallon": 23.2, + "cylinders": 4, + "horsepower": 105, + "x": 4.03418952324368 + }, + { + "name": "oldsmobile starfire sx", + "milesPerGallon": 23.8, + "cylinders": 4, + "horsepower": 85, + "x": 4.021497535176559 + }, + { + "name": "datsun 200-sx", + "milesPerGallon": 23.9, + "cylinders": 4, + "horsepower": 97, + "x": 3.6549753868403414 + }, + { + "name": "audi 5000", + "milesPerGallon": 20.3, + "cylinders": 5, + "horsepower": 103, + "x": 5.1890073392770635 + }, + { + "name": "volvo 264gl", + "milesPerGallon": 17, + "cylinders": 6, + "horsepower": 125, + "x": 5.981745305757347 + }, + { + "name": "saab 99gle", + "milesPerGallon": 21.6, + "cylinders": 4, + "horsepower": 115, + "x": 4.065826343090008 + }, + { + "name": "peugeot 604sl", + "milesPerGallon": 16.2, + "cylinders": 6, + "horsepower": 133, + "x": 5.810027165541005 + }, + { + "name": "volkswagen scirocco", + "milesPerGallon": 31.5, + "cylinders": 4, + "horsepower": 71, + "x": 4.0664857253021145 + }, + { + "name": "honda Accelerationord lx", + "milesPerGallon": 29.5, + "cylinders": 4, + "horsepower": 68, + "x": 4.274887214970657 + }, + { + "name": "pontiac lemans v6", + "milesPerGallon": 21.5, + "cylinders": 6, + "horsepower": 115, + "x": 6.230492727989444 + }, + { + "name": "mercury zephyr 6", + "milesPerGallon": 19.8, + "cylinders": 6, + "horsepower": 85, + "x": 5.948144807434942 + }, + { + "name": "ford fairmont 4", + "milesPerGallon": 22.3, + "cylinders": 4, + "horsepower": 88, + "x": 3.849531643650541 + }, + { + "name": "amc concord dl 6", + "milesPerGallon": 20.2, + "cylinders": 6, + "horsepower": 90, + "x": 5.904143705146815 + }, + { + "name": "dodge aspen 6", + "milesPerGallon": 20.6, + "cylinders": 6, + "horsepower": 110, + "x": 6.287468249670606 + }, + { + "name": "chevrolet caprice classic", + "milesPerGallon": 17, + "cylinders": 8, + "horsepower": 130, + "x": 8.006794146856944 + }, + { + "name": "ford ltd landau", + "milesPerGallon": 17.6, + "cylinders": 8, + "horsepower": 129, + "x": 7.915576220737707 + }, + { + "name": "mercury grand marquis", + "milesPerGallon": 16.5, + "cylinders": 8, + "horsepower": 138, + "x": 7.836955099770109 + }, + { + "name": "dodge st. regis", + "milesPerGallon": 18.2, + "cylinders": 8, + "horsepower": 135, + "x": 7.893805841233058 + }, + { + "name": "buick estate wagon (sw)", + "milesPerGallon": 16.9, + "cylinders": 8, + "horsepower": 155, + "x": 7.7080254609954215 + }, + { + "name": "ford country squire (sw)", + "milesPerGallon": 15.5, + "cylinders": 8, + "horsepower": 142, + "x": 7.765267134267947 + }, + { + "name": "chevrolet malibu classic (sw)", + "milesPerGallon": 19.2, + "cylinders": 8, + "horsepower": 125, + "x": 7.638579920680975 + }, + { + "name": "chrysler lebaron town @ country (sw)", + "milesPerGallon": 18.5, + "cylinders": 8, + "horsepower": 150, + "x": 8.145775610523001 + }, + { + "name": "vw rabbit custom", + "milesPerGallon": 31.9, + "cylinders": 4, + "horsepower": 71, + "x": 3.9398826540339784 + }, + { + "name": "maxda glc deluxe", + "milesPerGallon": 34.1, + "cylinders": 4, + "horsepower": 65, + "x": 3.6455722629575598 + }, + { + "name": "dodge colt hatchback custom", + "milesPerGallon": 35.7, + "cylinders": 4, + "horsepower": 80, + "x": 4.12193427440282 + }, + { + "name": "amc spirit dl", + "milesPerGallon": 27.4, + "cylinders": 4, + "horsepower": 80, + "x": 3.9716265958716166 + }, + { + "name": "mercedes benz 300d", + "milesPerGallon": 25.4, + "cylinders": 5, + "horsepower": 77, + "x": 5.068023081278515 + }, + { + "name": "cadillac eldorado", + "milesPerGallon": 23, + "cylinders": 8, + "horsepower": 125, + "x": 7.6675868574290735 + }, + { + "name": "peugeot 504", + "milesPerGallon": 27.2, + "cylinders": 4, + "horsepower": 71, + "x": 3.764605555949112 + }, + { + "name": "oldsmobile cutlass salon brougham", + "milesPerGallon": 23.9, + "cylinders": 8, + "horsepower": 90, + "x": 7.766308790449926 + }, + { + "name": "plymouth horizon", + "milesPerGallon": 34.2, + "cylinders": 4, + "horsepower": 70, + "x": 4.149160207292371 + }, + { + "name": "plymouth horizon tc3", + "milesPerGallon": 34.5, + "cylinders": 4, + "horsepower": 70, + "x": 4.229858902045439 + }, + { + "name": "datsun 210", + "milesPerGallon": 31.8, + "cylinders": 4, + "horsepower": 65, + "x": 4.271534379641972 + }, + { + "name": "fiat strada custom", + "milesPerGallon": 37.3, + "cylinders": 4, + "horsepower": 69, + "x": 4.035466279399953 + }, + { + "name": "buick skylark limited", + "milesPerGallon": 28.4, + "cylinders": 4, + "horsepower": 90, + "x": 3.71364184991431 + }, + { + "name": "chevrolet citation", + "milesPerGallon": 28.8, + "cylinders": 6, + "horsepower": 115, + "x": 5.899054957490579 + }, + { + "name": "oldsmobile omega brougham", + "milesPerGallon": 26.8, + "cylinders": 6, + "horsepower": 115, + "x": 5.946006433464216 + }, + { + "name": "pontiac phoenix", + "milesPerGallon": 33.5, + "cylinders": 4, + "horsepower": 90, + "x": 3.7396113356866927 + }, + { + "name": "vw rabbit", + "milesPerGallon": 41.5, + "cylinders": 4, + "horsepower": 76, + "x": 4.097550325478324 + }, + { + "name": "toyota corolla tercel", + "milesPerGallon": 38.1, + "cylinders": 4, + "horsepower": 60, + "x": 3.9054338799025206 + }, + { + "name": "chevrolet chevette", + "milesPerGallon": 32.1, + "cylinders": 4, + "horsepower": 70, + "x": 3.9370906275391677 + }, + { + "name": "datsun 310", + "milesPerGallon": 37.2, + "cylinders": 4, + "horsepower": 65, + "x": 3.6568656488791245 + }, + { + "name": "chevrolet citation", + "milesPerGallon": 28, + "cylinders": 4, + "horsepower": 90, + "x": 3.821088266512798 + }, + { + "name": "ford fairmont", + "milesPerGallon": 26.4, + "cylinders": 4, + "horsepower": 88, + "x": 3.70449435635481 + }, + { + "name": "amc concord", + "milesPerGallon": 24.3, + "cylinders": 4, + "horsepower": 90, + "x": 4.253594061102482 + }, + { + "name": "dodge aspen", + "milesPerGallon": 19.1, + "cylinders": 6, + "horsepower": 90, + "x": 6.282076136405616 + }, + { + "name": "audi 4000", + "milesPerGallon": 34.3, + "cylinders": 4, + "horsepower": 78, + "x": 4.3216508497895045 + }, + { + "name": "toyota corona liftback", + "milesPerGallon": 29.8, + "cylinders": 4, + "horsepower": 90, + "x": 3.888781518516995 + }, + { + "name": "mazda 626", + "milesPerGallon": 31.3, + "cylinders": 4, + "horsepower": 75, + "x": 3.8457499134604682 + }, + { + "name": "datsun 510 hatchback", + "milesPerGallon": 37, + "cylinders": 4, + "horsepower": 92, + "x": 4.0894687976157 + }, + { + "name": "toyota corolla", + "milesPerGallon": 32.2, + "cylinders": 4, + "horsepower": 75, + "x": 3.9309708244265096 + }, + { + "name": "mazda glc", + "milesPerGallon": 46.6, + "cylinders": 4, + "horsepower": 65, + "x": 4.254203956657513 + }, + { + "name": "dodge colt", + "milesPerGallon": 27.9, + "cylinders": 4, + "horsepower": 105, + "x": 4.294719995760485 + }, + { + "name": "datsun 210", + "milesPerGallon": 40.8, + "cylinders": 4, + "horsepower": 65, + "x": 3.6320715714960423 + }, + { + "name": "vw rabbit c (diesel)", + "milesPerGallon": 44.3, + "cylinders": 4, + "horsepower": 48, + "x": 4.26867037171047 + }, + { + "name": "vw dasher (diesel)", + "milesPerGallon": 43.4, + "cylinders": 4, + "horsepower": 48, + "x": 4.093809229966266 + }, + { + "name": "audi 5000s (diesel)", + "milesPerGallon": 36.4, + "cylinders": 5, + "horsepower": 67, + "x": 5.192007249064847 + }, + { + "name": "mercedes-benz 240d", + "milesPerGallon": 30, + "cylinders": 4, + "horsepower": 67, + "x": 3.9310267304450868 + }, + { + "name": "honda civic 1500 gl", + "milesPerGallon": 44.6, + "cylinders": 4, + "horsepower": 67, + "x": 4.203679390882783 + }, + { + "name": "renault lecar deluxe", + "milesPerGallon": 40.9, + "cylinders": 4, + "horsepower": 0, + "x": 4.071898955902105 + }, + { + "name": "subaru dl", + "milesPerGallon": 33.8, + "cylinders": 4, + "horsepower": 67, + "x": 4.174518278318266 + }, + { + "name": "vokswagen rabbit", + "milesPerGallon": 29.8, + "cylinders": 4, + "horsepower": 62, + "x": 3.8658063508922753 + }, + { + "name": "datsun 280-zx", + "milesPerGallon": 32.7, + "cylinders": 6, + "horsepower": 132, + "x": 5.859511410469771 + }, + { + "name": "mazda rx-7 gs", + "milesPerGallon": 23.7, + "cylinders": 3, + "horsepower": 100, + "x": 3.2086989971664353 + }, + { + "name": "triumph tr7 coupe", + "milesPerGallon": 35, + "cylinders": 4, + "horsepower": 88, + "x": 4.227487744729735 + }, + { + "name": "ford mustang cobra", + "milesPerGallon": 23.6, + "cylinders": 4, + "horsepower": 0, + "x": 4.068513150549568 + }, + { + "name": "honda Accelerationord", + "milesPerGallon": 32.4, + "cylinders": 4, + "horsepower": 72, + "x": 3.6676526960088136 + }, + { + "name": "plymouth reliant", + "milesPerGallon": 27.2, + "cylinders": 4, + "horsepower": 84, + "x": 4.132367927382765 + }, + { + "name": "buick skylark", + "milesPerGallon": 26.6, + "cylinders": 4, + "horsepower": 84, + "x": 3.6896256544908237 + }, + { + "name": "dodge aries wagon (sw)", + "milesPerGallon": 25.8, + "cylinders": 4, + "horsepower": 92, + "x": 4.050868913470094 + }, + { + "name": "chevrolet citation", + "milesPerGallon": 23.5, + "cylinders": 6, + "horsepower": 110, + "x": 5.785153063704189 + }, + { + "name": "plymouth reliant", + "milesPerGallon": 30, + "cylinders": 4, + "horsepower": 84, + "x": 3.815100124717885 + }, + { + "name": "toyota starlet", + "milesPerGallon": 39.1, + "cylinders": 4, + "horsepower": 58, + "x": 4.1983073095232495 + }, + { + "name": "plymouth champ", + "milesPerGallon": 39, + "cylinders": 4, + "horsepower": 64, + "x": 4.191097759552514 + }, + { + "name": "honda civic 1300", + "milesPerGallon": 35.1, + "cylinders": 4, + "horsepower": 60, + "x": 4.131654681105934 + }, + { + "name": "subaru", + "milesPerGallon": 32.3, + "cylinders": 4, + "horsepower": 67, + "x": 4.025765200961957 + }, + { + "name": "datsun 210", + "milesPerGallon": 37, + "cylinders": 4, + "horsepower": 65, + "x": 4.035308658219122 + }, + { + "name": "toyota tercel", + "milesPerGallon": 37.7, + "cylinders": 4, + "horsepower": 62, + "x": 4.095695463627345 + }, + { + "name": "mazda glc 4", + "milesPerGallon": 34.1, + "cylinders": 4, + "horsepower": 68, + "x": 4.012140452105604 + }, + { + "name": "plymouth horizon 4", + "milesPerGallon": 34.7, + "cylinders": 4, + "horsepower": 63, + "x": 3.6939202725344633 + }, + { + "name": "ford escort 4w", + "milesPerGallon": 34.4, + "cylinders": 4, + "horsepower": 65, + "x": 4.0109200831843665 + }, + { + "name": "ford escort 2h", + "milesPerGallon": 29.9, + "cylinders": 4, + "horsepower": 65, + "x": 4.17830102083104 + }, + { + "name": "volkswagen jetta", + "milesPerGallon": 33, + "cylinders": 4, + "horsepower": 74, + "x": 4.2853561819076145 + }, + { + "name": "renault 18i", + "milesPerGallon": 34.5, + "cylinders": 4, + "horsepower": 0, + "x": 4.359020127809212 + }, + { + "name": "honda prelude", + "milesPerGallon": 33.7, + "cylinders": 4, + "horsepower": 75, + "x": 4.1543248596235935 + }, + { + "name": "toyota corolla", + "milesPerGallon": 32.4, + "cylinders": 4, + "horsepower": 75, + "x": 3.769115939419314 + }, + { + "name": "datsun 200sx", + "milesPerGallon": 32.9, + "cylinders": 4, + "horsepower": 100, + "x": 4.295307133805183 + }, + { + "name": "mazda 626", + "milesPerGallon": 31.6, + "cylinders": 4, + "horsepower": 74, + "x": 3.7903396720903535 + }, + { + "name": "peugeot 505s turbo diesel", + "milesPerGallon": 28.1, + "cylinders": 4, + "horsepower": 80, + "x": 4.054656115599271 + }, + { + "name": "saab 900s", + "milesPerGallon": 0, + "cylinders": 4, + "horsepower": 110, + "x": 4.326379710931227 + }, + { + "name": "volvo diesel", + "milesPerGallon": 30.7, + "cylinders": 6, + "horsepower": 76, + "x": 6.197529382540965 + }, + { + "name": "toyota cressida", + "milesPerGallon": 25.4, + "cylinders": 6, + "horsepower": 116, + "x": 5.765034468301705 + }, + { + "name": "datsun 810 maxima", + "milesPerGallon": 24.2, + "cylinders": 6, + "horsepower": 120, + "x": 5.640796772821185 + }, + { + "name": "buick century", + "milesPerGallon": 22.4, + "cylinders": 6, + "horsepower": 110, + "x": 6.110410054807138 + }, + { + "name": "oldsmobile cutlass ls", + "milesPerGallon": 26.6, + "cylinders": 8, + "horsepower": 105, + "x": 7.644788144403992 + }, + { + "name": "ford granada gl", + "milesPerGallon": 20.2, + "cylinders": 6, + "horsepower": 88, + "x": 5.768702707154798 + }, + { + "name": "chrysler lebaron salon", + "milesPerGallon": 17.6, + "cylinders": 6, + "horsepower": 85, + "x": 6.2313844239860385 + }, + { + "name": "chevrolet cavalier", + "milesPerGallon": 28, + "cylinders": 4, + "horsepower": 88, + "x": 3.7847688007736187 + }, + { + "name": "chevrolet cavalier wagon", + "milesPerGallon": 27, + "cylinders": 4, + "horsepower": 88, + "x": 4.243022635523257 + }, + { + "name": "chevrolet cavalier 2-door", + "milesPerGallon": 34, + "cylinders": 4, + "horsepower": 88, + "x": 4.26214795455118 + }, + { + "name": "pontiac j2000 se hatchback", + "milesPerGallon": 31, + "cylinders": 4, + "horsepower": 85, + "x": 4.294681781593013 + }, + { + "name": "dodge aries se", + "milesPerGallon": 29, + "cylinders": 4, + "horsepower": 84, + "x": 4.3612227239547865 + }, + { + "name": "pontiac phoenix", + "milesPerGallon": 27, + "cylinders": 4, + "horsepower": 90, + "x": 3.987914895181706 + }, + { + "name": "ford fairmont futura", + "milesPerGallon": 24, + "cylinders": 4, + "horsepower": 92, + "x": 3.9060656314781035 + }, + { + "name": "amc concord dl", + "milesPerGallon": 23, + "cylinders": 4, + "horsepower": 0, + "x": 3.954666226885773 + }, + { + "name": "volkswagen rabbit l", + "milesPerGallon": 36, + "cylinders": 4, + "horsepower": 74, + "x": 4.30190674508643 + }, + { + "name": "mazda glc custom l", + "milesPerGallon": 37, + "cylinders": 4, + "horsepower": 68, + "x": 3.6280848611583063 + }, + { + "name": "mazda glc custom", + "milesPerGallon": 31, + "cylinders": 4, + "horsepower": 68, + "x": 3.6911419278159396 + }, + { + "name": "plymouth horizon miser", + "milesPerGallon": 38, + "cylinders": 4, + "horsepower": 63, + "x": 4.0011087888837595 + }, + { + "name": "mercury lynx l", + "milesPerGallon": 36, + "cylinders": 4, + "horsepower": 70, + "x": 4.183203830552381 + }, + { + "name": "nissan stanza xe", + "milesPerGallon": 36, + "cylinders": 4, + "horsepower": 88, + "x": 4.2272529260287275 + }, + { + "name": "honda Accelerationord", + "milesPerGallon": 36, + "cylinders": 4, + "horsepower": 75, + "x": 4.257656005997919 + }, + { + "name": "toyota corolla", + "milesPerGallon": 34, + "cylinders": 4, + "horsepower": 70, + "x": 4.275568077023029 + }, + { + "name": "honda civic", + "milesPerGallon": 38, + "cylinders": 4, + "horsepower": 67, + "x": 4.118475374376484 + }, + { + "name": "honda civic (auto)", + "milesPerGallon": 32, + "cylinders": 4, + "horsepower": 67, + "x": 3.9585950997318085 + }, + { + "name": "datsun 310 gx", + "milesPerGallon": 38, + "cylinders": 4, + "horsepower": 67, + "x": 3.8232069851508967 + }, + { + "name": "buick century limited", + "milesPerGallon": 25, + "cylinders": 6, + "horsepower": 110, + "x": 5.752982327423358 + }, + { + "name": "oldsmobile cutlass ciera (diesel)", + "milesPerGallon": 38, + "cylinders": 6, + "horsepower": 85, + "x": 6.189064501959804 + }, + { + "name": "chrysler lebaron medallion", + "milesPerGallon": 26, + "cylinders": 4, + "horsepower": 92, + "x": 4.2146513880184235 + }, + { + "name": "ford granada l", + "milesPerGallon": 22, + "cylinders": 6, + "horsepower": 112, + "x": 6.240598069909455 + }, + { + "name": "toyota celica gt", + "milesPerGallon": 32, + "cylinders": 4, + "horsepower": 96, + "x": 3.9204248039356773 + }, + { + "name": "dodge charger 2.2", + "milesPerGallon": 36, + "cylinders": 4, + "horsepower": 84, + "x": 4.150100620678576 + }, + { + "name": "chevrolet camaro", + "milesPerGallon": 27, + "cylinders": 4, + "horsepower": 90, + "x": 3.728501256342185 + }, + { + "name": "ford mustang gl", + "milesPerGallon": 27, + "cylinders": 4, + "horsepower": 86, + "x": 4.04286904218814 + }, + { + "name": "vw pickup", + "milesPerGallon": 44, + "cylinders": 4, + "horsepower": 52, + "x": 3.8382667209637664 + }, + { + "name": "dodge rampage", + "milesPerGallon": 32, + "cylinders": 4, + "horsepower": 84, + "x": 3.889031792685351 + }, + { + "name": "ford ranger", + "milesPerGallon": 28, + "cylinders": 4, + "horsepower": 79, + "x": 4.177096129854495 + }, + { + "name": "chevy s-10", + "milesPerGallon": 31, + "cylinders": 4, + "horsepower": 82, + "x": 3.698366552382896 + } + ] +} diff --git a/src/packages/components/VChart/Scatters/VChartScatter/index.ts b/src/packages/components/VChart/Scatters/VChartScatter/index.ts new file mode 100644 index 00000000..99c0f578 --- /dev/null +++ b/src/packages/components/VChart/Scatters/VChartScatter/index.ts @@ -0,0 +1,14 @@ +import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d' +import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d' + +export const VChartScatterConfig: ConfigType = { + key: 'VChartScatter', + chartKey: 'VVChartScatter', + conKey: 'VCVChartScatter', + title: 'VChart散点图', + category: ChatCategoryEnum.SCATTER, + categoryName: ChatCategoryEnumName.SCATTER, + package: PackagesCategoryEnum.VCHART, + chartFrame: ChartFrameEnum.VCHART, + image: 'vchart_scatter.png' +} diff --git a/src/packages/components/VChart/Scatters/VChartScatter/index.vue b/src/packages/components/VChart/Scatters/VChartScatter/index.vue new file mode 100644 index 00000000..c70c6676 --- /dev/null +++ b/src/packages/components/VChart/Scatters/VChartScatter/index.vue @@ -0,0 +1,22 @@ + + + diff --git a/src/packages/components/VChart/Scatters/index.ts b/src/packages/components/VChart/Scatters/index.ts new file mode 100644 index 00000000..ea7959cb --- /dev/null +++ b/src/packages/components/VChart/Scatters/index.ts @@ -0,0 +1,3 @@ +import { VChartScatterConfig } from './VChartScatter/index' + +export default [VChartScatterConfig] diff --git a/src/packages/components/VChart/WordClouds/VChartWordCloud/config.ts b/src/packages/components/VChart/WordClouds/VChartWordCloud/config.ts new file mode 100644 index 00000000..38822e7b --- /dev/null +++ b/src/packages/components/VChart/WordClouds/VChartWordCloud/config.ts @@ -0,0 +1,26 @@ +import { PublicConfigClass } from '@/packages/public' +import { VChartWordCloudConfig } from './index' +import { CreateComponentType } from '@/packages/index.d' +import { vChartOptionPrefixHandle } from '@/packages/public/vChart' +import data from './data.json' +import cloneDeep from 'lodash/cloneDeep' +import { IWordCloudOption } from '../../index.d' + +export const includes = ['legends', 'tooltip'] +export const option: IWordCloudOption & { dataset?: any } = { + // 图表配置 + type: 'wordCloud', + dataset: data, + nameField: 'name', + valueField: 'value', + seriesField: 'name', + // 业务配置(后续会被转换为图表spec) + category: VChartWordCloudConfig.category, +} + +export default class Config extends PublicConfigClass implements CreateComponentType { + public key = VChartWordCloudConfig.key + public chartConfig = cloneDeep(VChartWordCloudConfig) + // 图表配置项 + public option = vChartOptionPrefixHandle(option, includes) +} diff --git a/src/packages/components/VChart/WordClouds/VChartWordCloud/config.vue b/src/packages/components/VChart/WordClouds/VChartWordCloud/config.vue new file mode 100644 index 00000000..48a2470f --- /dev/null +++ b/src/packages/components/VChart/WordClouds/VChartWordCloud/config.vue @@ -0,0 +1,17 @@ + + + diff --git a/src/packages/components/VChart/WordClouds/VChartWordCloud/data.json b/src/packages/components/VChart/WordClouds/VChartWordCloud/data.json new file mode 100644 index 00000000..23b57b70 --- /dev/null +++ b/src/packages/components/VChart/WordClouds/VChartWordCloud/data.json @@ -0,0 +1,88 @@ +{ + "values": [ + { + "name": "数据可视化", + "value": 8000 + }, + { + "name": "GO VIEW", + "value": 6181 + }, + { + "name": "低代码", + "value": 4386 + }, + { + "name": "Vue3", + "value": 4055 + }, + { + "name": "TypeScript4", + "value": 2467 + }, + { + "name": "Vite2", + "value": 2244 + }, + { + "name": "NaiveUI", + "value": 1898 + }, + { + "name": "ECharts5", + "value": 1484 + }, + { + "name": "VChart", + "value": 600 + }, + { + "name": "Axios", + "value": 1112 + }, + { + "name": "Pinia2", + "value": 965 + }, + { + "name": "PlopJS", + "value": 847 + }, + { + "name": "sfc", + "value": 582 + }, + { + "name": "SCSS", + "value": 555 + }, + { + "name": "pnpm", + "value": 550 + }, + { + "name": "eslint", + "value": 462 + }, + { + "name": "json", + "value": 366 + }, + { + "name": "图表", + "value": 360 + }, + { + "name": "地图", + "value": 282 + }, + { + "name": "时钟", + "value": 273 + }, + { + "name": "标题", + "value": 265 + } + ] +} diff --git a/src/packages/components/VChart/WordClouds/VChartWordCloud/index.ts b/src/packages/components/VChart/WordClouds/VChartWordCloud/index.ts new file mode 100644 index 00000000..15fde742 --- /dev/null +++ b/src/packages/components/VChart/WordClouds/VChartWordCloud/index.ts @@ -0,0 +1,14 @@ +import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d' +import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d' + +export const VChartWordCloudConfig: ConfigType = { + key: 'VChartWordCloud', + chartKey: 'VVChartWordCloud', + conKey: 'VCVChartWordCloud', + title: 'VChart词云图', + category: ChatCategoryEnum.WORDCLOUD, + categoryName: ChatCategoryEnumName.WORDCLOUD, + package: PackagesCategoryEnum.VCHART, + chartFrame: ChartFrameEnum.VCHART, + image: 'vchart_word_cloud.png' +} diff --git a/src/packages/components/VChart/WordClouds/VChartWordCloud/index.vue b/src/packages/components/VChart/WordClouds/VChartWordCloud/index.vue new file mode 100644 index 00000000..c70c6676 --- /dev/null +++ b/src/packages/components/VChart/WordClouds/VChartWordCloud/index.vue @@ -0,0 +1,22 @@ + + + diff --git a/src/packages/components/VChart/WordClouds/index.ts b/src/packages/components/VChart/WordClouds/index.ts new file mode 100644 index 00000000..acf8ea8b --- /dev/null +++ b/src/packages/components/VChart/WordClouds/index.ts @@ -0,0 +1,3 @@ +import { VChartWordCloudConfig } from './VChartWordCloud/index' + +export default [VChartWordCloudConfig] diff --git a/src/packages/components/VChart/index.d.ts b/src/packages/components/VChart/index.d.ts index d81841ef..4bff51fe 100644 --- a/src/packages/components/VChart/index.d.ts +++ b/src/packages/components/VChart/index.d.ts @@ -1,13 +1,25 @@ -import { IBarChartSpec } from '@visactor/vchart' +import { IBarChartSpec, ILineChartSpec, IAreaChartSpec, IPieChartSpec, IFunnelChartSpec, IWordCloudChartSpec } from '@visactor/vchart' import { ICartesianAxisCommonSpec } from '@visactor/vchart/esm/component/axis' export enum ChatCategoryEnum { BAR = 'Bars', + PIE = 'Pies', + LINE = 'Lines', + AREA = 'Areas', + FUNNEL = 'Funnels', + WORDCLOUD = 'WordClouds', + SCATTER = 'Scatters', } export enum ChatCategoryEnumName { BAR = '柱状图', + PIE = '饼图', + LINE = '折线图', + AREA = '面积图', + FUNNEL = '漏斗图', + WORDCLOUD = '词云图', + SCATTER = '散点图', } export interface IBarOption extends Omit { @@ -21,6 +33,54 @@ export interface IBarOption extends Omit { } & ICartesianAxisCommonSpec } +export interface ILineOption extends Omit { + category: ChatCategoryEnum.LINE + type: 'line' + xAxis?: { + name: string + } & ICartesianAxisCommonSpec + yAxis?: { + name: string + } & ICartesianAxisCommonSpec +} + +export interface IAreaOption extends Omit { + category: ChatCategoryEnum.AREA + type: 'area' + xAxis?: { + name: string + } & ICartesianAxisCommonSpec + yAxis?: { + name: string + } & ICartesianAxisCommonSpec +} + +export interface IPieOption extends IPieChartSpec { + category: ChatCategoryEnum.PIE + type: 'pie' +} + +export interface IFunnelOption extends IFunnelChartSpec { + category: ChatCategoryEnum.FUNNEL + type: 'funnel' +} + +export interface IWordCloudOption extends IWordCloudChartSpec { + category: ChatCategoryEnum.WORDCLOUD + type: 'wordCloud' +} + +export interface IScatterOption extends Omit { + category: ChatCategoryEnum.SCATTER + type: 'scatter' + xAxis?: { + name: string + } & ICartesianAxisCommonSpec + yAxis?: { + name: string + } & ICartesianAxisCommonSpec +} + // todo // export type IOption = IBarOption | ILineOption .... -export type IOption = IBarOption +export type IOption = IBarOption | IPieOption | ILineOption | IAreaOption | IFunnelOption | IScatterOption diff --git a/src/packages/components/VChart/index.ts b/src/packages/components/VChart/index.ts index cdc19c62..05fb97ca 100644 --- a/src/packages/components/VChart/index.ts +++ b/src/packages/components/VChart/index.ts @@ -1,3 +1,9 @@ import Bars from './Bars' +import Pies from './Pies' +import Lines from './Lines' +import Areas from './Areas' +import Funnels from './Funnels' +import WordClouds from './WordClouds' +import Scatters from './Scatters' -export const VChartList = [...Bars] +export const VChartList = [...Bars, ...Pies, ...Lines, ...Areas, ...Funnels, ...WordClouds, ...Scatters]