stories/feat.bigdata.stories.js (1,420 lines of code) (raw):

import React, { useState, useEffect } from 'react'; import { storiesOf } from '@storybook/react'; import { Wcontainer, Wline, Wbar, Wpie, Wscatter, Util } from '@alicloud/cloud-charts'; const { fillMissingTimestamps } = Util; function generateData(number) { const random = (seed) => { return '0.' + Math.sin(seed).toString().substr(6); }; const res = [ { name: '平均值', data: [], }, { name: '范围', data: [], }, ]; const now = Date.now(); for (let i = 0; i < number; i++) { const t = now - (3000 - i) * 1000; const value = +random(t); res[0].data.push([t, value]); let value2 = value - 0.4 < 0 ? null : value - 0.4 // 模拟断点 if (value - 0.4 > 0) { res[1].data.push([t, value2, value + 0.4]); } } return res; } const stories = storiesOf('bigdata', module); const lineData = generateData(400); const testData = [ { "name": "范围", "data": [ [ 1743494408703, 0.2796927428839999, 1.079692742884 ], [ 1743494409703, 0.550265064587, 1.350265064587 ], [ 1743494410703, 0.29218368511679993, 1.0921836851168 ], [ 1743494411703, 0.09464996046039997, 0.8946499604604 ], [ 1743494413703, 0.11990990199124996, 0.91990990199125 ], [ 1743494414703, 0.42369683926299995, 1.2236968392629999 ], [ 1743494415703, 0.012416988047999955, 0.812416988048 ], [ 1743494420703, 0.0941788739105, 0.8941788739105001 ], [ 1743494422703, 0.17598425913100002, 0.9759842591310001 ], [ 1743494423703, 0.18236268659370003, 0.9823626865937001 ], [ 1743494424703, 0.060573850743099955, 0.8605738507431 ], [ 1743494425703, 0.0123876282266, 0.8123876282266 ], [ 1743494427703, 0.525740577742, 1.3257405777420002 ], [ 1743494429703, 0.38965350210069993, 1.1896535021007 ], [ 1743494430703, 0.09364036699095996, 0.8936403669909601 ], [ 1743494431703, 0.5030203606636999, 1.3030203606636999 ], [ 1743494432703, 0.5078520486229999, 1.3078520486229999 ], [ 1743494434703, 0.21391265584599994, 1.013912655846 ], [ 1743494435703, 0.208258639526, 1.008258639526 ], [ 1743494439703, 0.022856257518659995, 0.82285625751866 ], [ 1743494440703, 0.43040094863699996, 1.230400948637 ], [ 1743494441703, 0.211802048638, 1.0118020486380002 ], [ 1743494442703, 0.3235965408365, 1.1235965408365 ], [ 1743494444703, 0.21557961884029997, 1.0155796188403001 ], [ 1743494448703, 0.497721076603, 1.297721076603 ], [ 1743494449703, 0.08570391629933999, 0.8857039162993401 ], [ 1743494451703, 0.08300981979459998, 0.8830098197946 ], [ 1743494456703, 0.16046685216509993, 0.9604668521651 ], [ 1743494458703, 0.02897472779889998, 0.8289747277989 ], [ 1743494459703, 0.4748256493537, 1.2748256493537 ], [ 1743494461703, 0.42243872306999997, 1.22243872307 ], [ 1743494464703, 0.28718691583409994, 1.0871869158341 ], [ 1743494465703, 0.31482135828095503, 1.1148213582809552 ], [ 1743494466703, 0.49957493188899993, 1.299574931889 ], [ 1743494471703, 0.09879765159709997, 0.8987976515971 ], [ 1743494473703, 0.06578189004199997, 0.865781890042 ], [ 1743494476703, 0.27382996850419994, 1.0738299685041999 ], [ 1743494478703, 0.03074891123689999, 0.8307489112369 ], [ 1743494479703, 0.2448940596, 1.0448940596 ], [ 1743494480703, 0.19092237703299997, 0.990922377033 ], [ 1743494482703, 0.24971396605359997, 1.0497139660536 ], [ 1743494483703, 0.32557534791239995, 1.1255753479124 ], [ 1743494484703, 0.5303397412751499, 1.33033974127515 ], [ 1743494485703, 0.53893531541, 1.33893531541 ], [ 1743494486703, 0.48423842549499996, 1.284238425495 ], [ 1743494487703, 0.11238672396999994, 0.91238672397 ], [ 1743494488703, 0.58025092119335, 1.38025092119335 ], [ 1743494489703, 0.21623512205359996, 1.0162351220536001 ], [ 1743494492703, 0.03000813956599996, 0.830008139566 ], [ 1743494493703, 0.02421577775099998, 0.824215777751 ], [ 1743494494703, 0.056602928585099965, 0.8566029285851 ], [ 1743494496703, 0.21486194860489993, 1.0148619486049 ], [ 1743494498703, 0.441140821133, 1.241140821133 ], [ 1743494501703, 0.5010275519301, 1.3010275519301 ], [ 1743494502703, 0.3395951376023, 1.1395951376023001 ], [ 1743494503703, 0.04140916428959995, 0.8414091642896 ], [ 1743494504703, 0.3991250448285, 1.1991250448285 ], [ 1743494505703, 0.463042738002, 1.263042738002 ], [ 1743494506703, 0.505962693376, 1.305962693376 ], [ 1743494508703, 0.06698565578139998, 0.8669856557814 ], [ 1743494509703, 0.4535909440154, 1.2535909440154 ], [ 1743494510703, 0.12011439752590003, 0.9201143975259001 ], [ 1743494513703, 0.42041363540949994, 1.2204136354094999 ], [ 1743494515703, 0.5145572758929999, 1.314557275893 ], [ 1743494519703, 0.5233034715939999, 1.323303471594 ], [ 1743494520703, 0.08093057169206996, 0.88093057169207 ], [ 1743494522703, 0.2885505137569, 1.0885505137569 ], [ 1743494524703, 0.15442304598400003, 0.9544230459840001 ], [ 1743494525703, 0.174120108371, 0.974120108371 ], [ 1743494527703, 0.006080398807700005, 0.8060803988077001 ], [ 1743494532703, 0.488579178152, 1.2885791781520002 ], [ 1743494533703, 0.59732344119772, 1.39732344119772 ], [ 1743494534703, 0.0632034950184, 0.8632034950184 ], [ 1743494535703, 0.02592699360339995, 0.8259269936033999 ], [ 1743494536703, 0.28795137924107395, 1.087951379241074 ], [ 1743494539703, 0.297840663955, 1.097840663955 ], [ 1743494540703, 0.3668556624597, 1.1668556624597 ], [ 1743494543703, 0.5763637287533, 1.3763637287533 ], [ 1743494544703, 0.568294172633, 1.368294172633 ], [ 1743494545703, 0.303932746816, 1.103932746816 ], [ 1743494546703, 0.53326760839016, 1.33326760839016 ], [ 1743494547703, 0.12665080629640002, 0.9266508062964001 ], [ 1743494548703, 0.0288484370539, 0.8288484370539 ], [ 1743494549703, 0.1963394893182, 0.9963394893182 ], [ 1743494551703, 0.502289184542, 1.302289184542 ], [ 1743494552703, 0.257581386905, 1.057581386905 ], [ 1743494553703, 0.3783663098758, 1.1783663098758002 ], [ 1743494554703, 0.014683375844399993, 0.8146833758444001 ], [ 1743494556703, 0.4512134054529999, 1.251213405453 ], [ 1743494557703, 0.59259235559, 1.3925923555900002 ], [ 1743494558703, 0.32198060016499996, 1.1219806001650001 ], [ 1743494559703, 0.19130283501169998, 0.9913028350117 ], [ 1743494560703, 0.5482708942978, 1.3482708942978001 ], [ 1743494562703, 0.30825077092819997, 1.1082507709282 ], [ 1743494564703, 0.558246926916, 1.358246926916 ], [ 1743494566703, 0.5270677549232999, 1.3270677549232999 ], [ 1743494567703, 0.38267506605509993, 1.1826750660551 ], [ 1743494568703, 0.19825551136139996, 0.9982555113614 ], [ 1743494569703, 0.127414269495, 0.927414269495 ], [ 1743494570703, 0.39003750494299994, 1.190037504943 ], [ 1743494571703, 0.30287026067699996, 1.102870260677 ], [ 1743494573703, 0.14015933256879998, 0.9401593325688 ], [ 1743494574703, 0.5506339782508, 1.3506339782508001 ], [ 1743494576703, 0.37164114842099993, 1.171641148421 ], [ 1743494577703, 0.507077245808, 1.307077245808 ], [ 1743494579703, 0.34645091953630003, 1.1464509195363002 ], [ 1743494580703, 0.11480822064779994, 0.9148082206478 ], [ 1743494581703, 0.21008419854677995, 1.0100841985467799 ], [ 1743494583703, 0.29118499681800003, 1.091184996818 ], [ 1743494584703, 0.36806846561999995, 1.16806846562 ], [ 1743494587703, 0.05210297499659999, 0.8521029749966 ], [ 1743494589703, 0.4975174855219999, 1.297517485522 ], [ 1743494590703, 0.272286679203, 1.0722866792030001 ], [ 1743494591703, 0.07221425209728999, 0.87221425209729 ], [ 1743494592703, 0.4207848920121, 1.2207848920121 ], [ 1743494593703, 0.46193528125329997, 1.2619352812533 ], [ 1743494595703, 0.29392467368999997, 1.0939246736900001 ], [ 1743494596703, 0.267573535168, 1.067573535168 ], [ 1743494599703, 0.39820470161769994, 1.1982047016177 ], [ 1743494602703, 0.125018569084, 0.925018569084 ], [ 1743494603703, 0.300329829766, 1.100329829766 ], [ 1743494604703, 0.50443656798793, 1.30443656798793 ], [ 1743494605703, 0.3884522077578, 1.1884522077578001 ], [ 1743494607703, 0.260256757341525, 1.060256757341525 ], [ 1743494608703, 0.553967013269, 1.353967013269 ], [ 1743494612703, 0.0061325753484000045, 0.8061325753484001 ], [ 1743494613703, 0.31954652842915, 1.11954652842915 ], [ 1743494614703, 0.1371331035465, 0.9371331035465 ], [ 1743494616703, 0.524936832424, 1.324936832424 ], [ 1743494617703, 0.3088192367922, 1.1088192367922 ], [ 1743494619703, 0.29833116866519993, 1.0983311686652 ], [ 1743494620703, 0.33762848158659997, 1.1376284815866 ], [ 1743494621703, 0.23690041415599994, 1.0369004141559999 ], [ 1743494622703, 0.485299196268, 1.285299196268 ], [ 1743494624703, 0.4804569270922999, 1.2804569270922999 ], [ 1743494626703, 0.3108472287423599, 1.1108472287423599 ], [ 1743494627703, 0.15871693926099995, 0.958716939261 ], [ 1743494628703, 0.337474839973, 1.1374748399730001 ], [ 1743494629703, 0.3275315608, 1.1275315608 ], [ 1743494632703, 0.5751362828891999, 1.3751362828892 ], [ 1743494634703, 0.470308731824, 1.270308731824 ], [ 1743494637703, 0.2173693930149, 1.0173693930149001 ], [ 1743494638703, 0.5158935753876, 1.3158935753876 ], [ 1743494639703, 0.40827617255359994, 1.2082761725536 ], [ 1743494640703, 0.582864008841, 1.382864008841 ], [ 1743494642703, 0.4940581250107, 1.2940581250107002 ], [ 1743494643703, 0.26709328450394, 1.06709328450394 ], [ 1743494645703, 0.03568971748259997, 0.8356897174826 ], [ 1743494646703, 0.34257581856499997, 1.1425758185650001 ], [ 1743494648703, 0.21287440731599994, 1.012874407316 ], [ 1743494650703, 0.595357427855, 1.395357427855 ], [ 1743494652703, 0.29298047346244993, 1.09298047346245 ], [ 1743494654703, 0.29432474395999997, 1.0943247439600001 ], [ 1743494655703, 0.16856202849939994, 0.9685620284994 ], [ 1743494656703, 0.08955267096029995, 0.8895526709603 ], [ 1743494657703, 0.0035798865197999574, 0.8035798865198001 ], [ 1743494658703, 0.19777152544550003, 0.9977715254455001 ], [ 1743494662703, 0.05933719129956999, 0.85933719129957 ], [ 1743494663703, 0.20223129675380003, 1.0022312967538 ], [ 1743494666703, 0.15625389654099997, 0.956253896541 ], [ 1743494667703, 0.010725005848999991, 0.8107250058490001 ], [ 1743494670703, 0.08456957385969999, 0.8845695738597 ], [ 1743494672703, 0.44989600699839993, 1.2498960069984 ], [ 1743494673703, 0.261702870152, 1.0617028701520002 ], [ 1743494675703, 0.40417469242493, 1.20417469242493 ], [ 1743494677703, 0.4119945213159, 1.2119945213159 ], [ 1743494678703, 0.23195658223244597, 1.031956582232446 ], [ 1743494679703, 0.136146775585, 0.936146775585 ], [ 1743494680703, 0.537517667324, 1.3375176673240001 ], [ 1743494681703, 0.10996266909579999, 0.9099626690958 ], [ 1743494682703, 0.3043972823419, 1.1043972823419002 ], [ 1743494683703, 0.15502584532879993, 0.9550258453288 ], [ 1743494685703, 0.518909482625, 1.318909482625 ], [ 1743494686703, 0.486972828099, 1.286972828099 ], [ 1743494687703, 0.517501673516, 1.317501673516 ], [ 1743494688703, 0.07384076905763998, 0.87384076905764 ], [ 1743494690703, 0.5393286826324, 1.3393286826324 ], [ 1743494691703, 0.4524299222972, 1.2524299222972002 ], [ 1743494692703, 0.26148856508099994, 1.061488565081 ], [ 1743494693703, 0.140898056208, 0.940898056208 ], [ 1743494695703, 0.5558367183117999, 1.3558367183117999 ], [ 1743494696703, 0.2865876732317, 1.0865876732317 ], [ 1743494700703, 0.130856762691, 0.930856762691 ], [ 1743494701703, 0.37301144984629997, 1.1730114498463 ], [ 1743494702703, 0.10587643487529996, 0.9058764348753 ], [ 1743494703703, 0.4094504190936, 1.2094504190936002 ], [ 1743494704703, 0.29570618277079996, 1.0957061827708001 ], [ 1743494707703, 0.5344398038961999, 1.3344398038962 ], [ 1743494713703, 0.5108561111947, 1.3108561111947 ], [ 1743494716703, 0.4967404874382, 1.2967404874382 ], [ 1743494718703, 0.16421548539099995, 0.964215485391 ], [ 1743494722703, 0.3369546693602, 1.1369546693602 ], [ 1743494723703, 0.36901829225677996, 1.16901829225678 ], [ 1743494724703, 0.2601130584429999, 1.060113058443 ], [ 1743494727703, 0.17908529777429993, 0.9790852977743 ], [ 1743494728703, 0.1936070655055, 0.9936070655055 ], [ 1743494729703, 0.3219735174075, 1.1219735174075 ], [ 1743494730703, 0.58042205731, 1.3804220573100001 ], [ 1743494733703, 0.042081774314679965, 0.84208177431468 ], [ 1743494738703, 0.404165410876, 1.204165410876 ], [ 1743494739703, 0.5417908149389999, 1.3417908149389999 ], [ 1743494740703, 0.41193636639699993, 1.211936366397 ], [ 1743494742703, 0.4481399976821, 1.2481399976821002 ], [ 1743494743703, 0.14032162774930002, 0.9403216277493001 ], [ 1743494744703, 0.03990731490299998, 0.8399073149030001 ], [ 1743494745703, 0.16694999470799998, 0.966949994708 ], [ 1743494746703, 0.29632337571531, 1.09632337571531 ], [ 1743494748703, 0.05956236899699996, 0.859562368997 ], [ 1743494749703, 0.20326996557414, 1.0032699655741402 ], [ 1743494750703, 0.41996946684399994, 1.219969466844 ], [ 1743494752703, 0.389805090741, 1.189805090741 ], [ 1743494754703, 0.26795158908039995, 1.0679515890803999 ], [ 1743494755703, 0.47592957701639993, 1.2759295770164 ], [ 1743494758703, 0.283335857396, 1.083335857396 ], [ 1743494760703, 0.4771203376958, 1.2771203376958 ], [ 1743494762703, 0.5385588084523, 1.3385588084523001 ], [ 1743494764703, 0.470043308831, 1.2700433088310001 ], [ 1743494765703, 0.292745377462, 1.0927453774620002 ], [ 1743494768703, 0.03891191665219995, 0.8389119166522 ], [ 1743494773703, 0.3313532414815, 1.1313532414815 ], [ 1743494774703, 0.21756517058769997, 1.0175651705877 ], [ 1743494776703, 0.591964780214, 1.391964780214 ], [ 1743494777703, 0.28626853520099993, 1.086268535201 ], [ 1743494778703, 0.31938134319196, 1.11938134319196 ], [ 1743494779703, 0.5114113859439999, 1.311411385944 ], [ 1743494783703, 0.359007669763, 1.159007669763 ], [ 1743494784703, 0.355190008759, 1.155190008759 ], [ 1743494786703, 0.32550399390609996, 1.1255039939061 ], [ 1743494789703, 0.04670871724599995, 0.8467087172459999 ], [ 1743494792703, 0.0010229389524999966, 0.8010229389525001 ], [ 1743494794703, 0.43841297419913994, 1.2384129741991399 ], [ 1743494795703, 0.576108206148, 1.376108206148 ], [ 1743494796703, 0.22949929364099997, 1.029499293641 ], [ 1743494797703, 0.3360960119417, 1.1360960119417 ], [ 1743494798703, 0.24904209821099998, 1.049042098211 ], [ 1743494799703, 0.3473018442289, 1.1473018442289 ], [ 1743494800703, 0.4248861723492, 1.2248861723492 ], [ 1743494801703, 0.19775899711939993, 0.9977589971194 ], [ 1743494804703, 0.020230545299250002, 0.82023054529925 ] ] } ] stories.add('线图(time)', () => ( <Wcontainer className="demos"> <Wline height="300" config={{ xAxis: { type: 'time', mask: 'HH:mm:ss', }, // symbol: true, // spline: true, // area: { // geomStyle(x, y, type, extra) { // if (type === '平均值') { // return { // opacity: 0, // fill: 'transparent', // }; // } // return {}; // }, // }, // geomStyle(x, y, type, extra) { // if (type === '范围') { // return { // opacity: 0, // fill: 'transparent', // stroke: 'transparent', // }; // } // return {}; // }, slider: true, animate: { update: false, }, }} // data={testData} data={fillMissingTimestamps(testData, 0)} // force={true} /> </Wcontainer> )); stories.add('线图(cat)', () => ( <Wcontainer className="demos"> <Wline height="300" config={{ xAxis: { type: 'cat', }, // legend: { // foldable: true, // }, symbol: true, // spline: true, area: true, }} data={lineData} // force={true} /> </Wcontainer> )); const barData = generateData(300); stories.add('柱状图', () => ( <Wcontainer className="demos"> <Wbar height="300" config={{ xAxis: { type: 'timeCat', mask: 'HH:mm:ss', }, // legend: { // foldable: true, // }, // slider: true, // animate: { // // enter: false, // update: false, // // leave: false, // }, // columnWidthRatio: 1, }} data={barData} // force={{ // bigdata: true, // }} /> </Wcontainer> )); const pieData = [ { name: '饼图测试数据', data: [ ['a', 40.5], ['b', 27.9], ['c', 24.1], ['d', 15.5], ['e', 7.1], ['f', 5.6], ['g', 3.2], ['h', 2.3], ['i', 1.5], ['j', 0.3], ['k', 0.2], ], }, ]; stories.add('饼图', () => ( <div style={{ display: 'flex', flexWrap: 'wrap' }}> <Wpie height="300" config={{ autoFormat: true, }} data={pieData} /> <Wpie height="300" config={{}} data={pieData} /> </div> )); const scatterData = generateData(2000); stories.add('散点图', () => ( <Wcontainer className="demos"> <Wscatter height="300" config={{ xAxis: { type: 'time', mask: 'HH:mm:ss', }, }} data={scatterData} /> </Wcontainer> )); stories.add('数据从无到有', () => { const [d, setD] = useState([]); useEffect(() => { const timer = setTimeout(() => { setD(lineData); }, 2000); return () => clearTimeout(timer); }, []); return ( <Wcontainer className="demos"> <Wline height="300" config={{ area: true, }} data={d} /> </Wcontainer> ); }); stories.add('从大数据变普通数据(线图)', () => { const [d, setD] = useState(lineData); useEffect(() => { const timer = setTimeout(() => { const newData = generateData(10); setD(newData); }, 2000); return () => clearTimeout(timer); }, []); return ( <Wcontainer className="demos"> <Wline height="300" config={{ area: true, xAxis: { type: 'cat', }, }} data={d} /> </Wcontainer> ); }); const simplePieData = [ { name: '饼图测试数据', data: [ ['a', 40.5], ['e', 7.1], ['b', 27.9], ['c', 24.1], ], }, ]; stories.add('从大数据变普通数据(饼图)', () => { const [d, setD] = useState(pieData); useEffect(() => { const timer = setTimeout(() => { setD(simplePieData); }, 2000); return () => clearTimeout(timer); }, []); return ( <Wcontainer className="demos"> <Wpie height="300" config={{ autoFormat: true, }} data={d} /> </Wcontainer> ); }); stories.add('更改配置项', () => { const [format, setFormat] = useState(false); useEffect(() => { const timer = setTimeout(() => { setFormat(true); }, 2000); return () => clearTimeout(timer); }, []); return ( <Wcontainer className="demos"> <Wpie height="300" config={{ autoFormat: format, }} data={pieData} /> </Wcontainer> ); });