{"ScriptPreparationCode":"// setup\r\n\r\nvar colorList = [\r\n\t\u0022#006385\u0022, \u0022#F06E75\u0022, \u0022#90ed7d\u0022, \u0022#f7a35c\u0022, \u0022#8085e9\u0022,\r\n \u0022#f15c80\u0022, \u0022#e4d354\u0022, \u0022#2b908f\u0022, \u0022#f45b5b\u0022, \u0022#91e8e1\u0022,\r\n \u0022#5DA5DA\u0022, \u0022#F06E75\u0022, \u0022#F15854\u0022, \u0022#B2912F\u0022, \u0022#B276B2\u0022,\r\n \u0022#DECF3F\u0022, \u0022#FAA43A\u0022, \u0022#4D4D4D\u0022, \u0022#F17CB0\u0022, \u0022#60BD68\u0022\r\n];\r\n\r\nvar createData = function( colorIndex, npoints ) {\r\n var data = {\r\n x: [],\r\n y: [],\r\n color: [],\r\n symbol: [],\r\n size: []\r\n };\r\n \r\n for (var i = 0, l = npoints; i \u003C l; i\u002B\u002B) {\r\n data.y.push( Math.random() * 5000 );\r\n data.x.push(i);\r\n data.color.push( colorList[ colorIndex ] );\r\n data.size.push( 2 );\r\n data.symbol.push(\u0027x\u0027);\r\n };\r\n \r\n return data;\r\n};\r\n\r\nvar createTrace = function( traceIndex, npoints, useMulticolor ) {\r\n var data = createData( traceIndex, npoints );\r\n \r\n var trace = {\r\n type: \u0027scattergl\u0027,\r\n mode: \u0027markers\u0027,\r\n marker: { \r\n symbol: \u0027circle\u0027,\r\n size: useMulticolor ? data.size : 1,\r\n color: useMulticolor ? data.color : \u0027#00BBBB\u0027\r\n },\r\n x: data.x,\r\n y: data.y \r\n };\r\n \r\n return trace;\r\n};\r\n\r\nvar plotDivs = [];\r\n\r\nvar createPlot = function( divId, npoints, useMulticolor, chartCount, seriesCount, doRedraw ) {\r\n \r\n var traces = [];\r\n for (var i = 0, l = seriesCount; i \u003C l; i\u002B\u002B) {\r\n traces.push( createTrace( i, npoints, useMulticolor ) );\r\n };\r\n \r\n var plotDiv = document.getElementById(divId);\r\n Plotly.plot( \r\n plotDiv, \r\n traces, \r\n { \r\n margin: { t: 40, b:50, l:75, r:30 } \r\n } \r\n );\r\n \r\n //plotDivs.push( plotDiv );\r\n};","TestCases":[{"Name":"100*5*1","Code":"var npoints = 100;\r\nvar seriesCount = 5;\r\nvar chartCount = 1;\r\nvar useMulticolor = true;\r\nvar doRedraw = false;\r\n\r\nvar t0 = performance.now();\r\nfor (var i = 0, l = chartCount; i \u003C l; i\u002B\u002B) {\r\n var chartDomId = \u0022testChart\u0022 \u002B i;\r\n createPlot( \u0022testChart\u0022 \u002B i, npoints, useMulticolor, chartCount, seriesCount, doRedraw );\r\n};\r\nvar t1 = performance.now();\r\nconsole.log( npoints \u002B \u0022*\u0022 \u002B seriesCount \u002B \u0022*\u0022 \u002B chartCount \u002B \u0022(\u0022 \u002B( npoints*seriesCount ) \u002B \u0022 points): \u0022 \u002B (t1 - t0) \u002B \u0022ms.\u0022);\r\n","IsDeferred":false},{"Name":"1000*5*1","Code":"var npoints = 1000;\r\nvar seriesCount = 5;\r\nvar chartCount = 1;\r\nvar useMulticolor = true;\r\nvar doRedraw = false;\r\n\r\nvar t0 = performance.now();\r\nfor (var i = 0, l = chartCount; i \u003C l; i\u002B\u002B) {\r\n var chartDomId = \u0022testChart\u0022 \u002B i;\r\n createPlot( \u0022testChart\u0022 \u002B i, npoints, useMulticolor, chartCount, seriesCount, doRedraw );\r\n};\r\nvar t1 = performance.now();\r\nconsole.log( npoints \u002B \u0022*\u0022 \u002B seriesCount \u002B \u0022*\u0022 \u002B chartCount \u002B \u0022(\u0022 \u002B( npoints*seriesCount ) \u002B \u0022 points): \u0022 \u002B (t1 - t0) \u002B \u0022ms.\u0022);\r\n","IsDeferred":false}]}