{"size":{"Width":695,"Height":401},"appearance":{"background":null,"padding":14,"font":{"family":"Courier New","size":10.0,"bold":false,"italic":false,"underline":false,"strikeout":false,"color":"rgb(0,72,168)"},"border":{"on":true,"size":0.0,"style":"solid","color":"#666"},"text":{"wrap":false,"hAlign":"left","vAlign":"top"}},"outputType":"WIDGET","widgetState":null,"outputs":{"console":"<pre class='debug-source'>># VERSION 1.1.7\n</pre>\n<pre class='debug-source'>>library(flipChart)\n</pre>\n<pre class='debug-source'>># Processing all the selections from the 'Inputs' and 'Charts' tab.\n</pre>\n<pre class='debug-source'>>pd <- PrepareData(formChartType, QFilter, QPopulationWeight, input.data.table = get0("formTable"), input.data.raw = if (!exists("formX")) NULL else list(X = get0("formX"), Y = get0("formY"), Z1 = get0("formZ"), Z2 = get0("formZ2"), labels = get0("formScatterLabels")), input.data.pasted = if (length(get0("formPastedData")) == 0) NULL else list(get0("formPastedData"), !get0("formNotDataFrame", ifnotfound = TRUE), get0("formPastedColumnNames"), get0("formPastedRowNames")), first.aggregate = get0("formFirstAggregate", ifnotfound = FALSE), group.by.last = get0("formGroupByLastColumn", ifnotfound = FALSE), tidy = get0("formTidy", ifnotfound = FALSE), tidy.labels = get0("formTidyLabels", ifnotfound = FALSE), transpose = get0("formTranspose"), row.names.to.remove = get0("formIgnoreRows"), column.names.to.remove = get0("formIgnoreColumns"), hide.empty.rows.and.columns = get0("formHideEmpty", ifnotfound = FALSE), as.percentages = get0("formAsPercentages", ifnotfound = FALSE), show.labels = !get0("formNames", ifnotfound=TRUE), date.format = get0("formDateFormat", ifnotfound = "Automatic"), scatter.mult.yvals = get0("formScatterMultYvals", ifnotfound = FALSE))\n</pre>\n<pre class='debug-source'>>pc <- PrepareColors(pd$data, formChartType, scatter.colors.column = pd$scatter.variable.indices["colors"], palette = get0("formPalette"), palette.custom.color = get0("formCustomColor"), palette.custom.gradient.start = get0("formCustomGradientStart"), palette.custom.gradient.end = get0("formCustomGradientEnd"), palette.custom.palette = get0("formCustomPalette"), fit.palette = get0("formFitPalette"), fit.palette.custom.color = get0("formFitCustomColor"), fit.palette.custom.gradient.start = get0("formFitCustomGradientStart"), fit.palette.custom.gradient.end = get0("formFitCustomGradientEnd"), fit.palette.custom.palette = get0("formFitCustomPalette"), subslice.palette = get0("formSubslicePalette"), subslice.palette.custom.color = get0("formSubsliceCustomColor"), subslice.palette.custom.gradient.start = get0("formSubsliceCustomGradientStart"), subslice.palette.custom.gradient.end = get0("formSubsliceCustomGradientEnd"), subslice.palette.custom.palette = get0("formSubsliceCustomPalette")) \n</pre>\n<pre class='debug-source'>>pn <- PrepareNumbers(categories.format.list = list(get0("formCategoriesNumberType"), get0("formCategoriesDateType"), get0("formCategoriesNumberCustom"), get0("formCategoriesSeparateThousands"), get0("formCategoriesDecimals")), values.format.list = list(get0("formValuesNumberType"), get0("formValuesDateType"), get0("formValuesNumberCustom"), get0("formValuesSeparateThousands"), get0("formValuesDecimals")), hover.format.list = list(get0("formHoverNumberType"), get0("formHoverDateType"), get0("formHoverNumberCustom"), get0("formHoverSeparateThousands"), get0("formHoverDecimals")), data.labels.format.list = list(get0("formDataLabelNumberType"), get0("formDataLabelDateType"), get0("formDataLabelCustom"), get0("formDataLabelSeparateThousands"), get0("formDataLabelDecimals")), !is.null(attr(pd$data, "statistic")) && grepl("%", attr(pd$data, "statistic"), fixed = TRUE))\n</pre>\n<pre class='debug-source'>>\n</pre>\n<pre class='debug-source'>># Creating the chart.\n</pre>\n<pre class='debug-source'>>chart.6 <- if(formChartType== "Table") pd$data else CChart(chart.type = formChartType,\n x = pd$data,\n weights = pd$weights,\n small.multiples = get0("formSmallMultiples", ifnotfound=FALSE), \n nrows = get0("formSmallMultNRows"),\n x.order = get0("formSmallMultXOrder"),\n average.show = get0("formSmallMultAverage", ifnotfound = FALSE),\n average.color = get0("formSmallMultAverageColor"),\n share.axes = get0("formSmallMultShareAxes", ifnotfound = TRUE),\n paneltitle.show = get0("formSmallMultTitle", ifnotfound = TRUE),\n paneltitle.font.family = get0("formSmallMultTitleFontFamily"),\n paneltitle.font.color = get0("formSmallMultTitleFontColor"),\n paneltitle.font.size = get0("formSmallMultTitleFontSize"),\n paneltitle.wrap = get0("formSmallMultTitleWrap"),\n paneltitle.wrap.nchar = get0("formSmallMultTitleWrapNchar"),\n pad.left = get0("formSmallMultPadLeft", ifnotfound=0),\n pad.right = get0("formSmallMultPadRight", ifnotfound=0),\n pad.top = get0("formSmallMultPadTop"),\n pad.bottom = get0("formSmallMultPadBottom"),\n max.label.length = 0,\n #Scatter plot inputs.\n scatter.max.labels = get0("formScatterMaxLab", ifnotfound=20),\n scatter.labels.as.hovertext= if (exists("formScatterLabelType")) formScatterLabelType!="On chart" else TRUE,\n scatter.colors.as.categorical = if (exists("formScatterColorType")) formScatterColorType=="Categories" else TRUE,\n scatter.sizes.as.diameter = if (exists("formScatterSizeType")) formScatterSizeType=="Diameter" else FALSE,\n scatter.x.column = pd$scatter.variable.indices["x"],\n scatter.y.column = pd$scatter.variable.indices["y"],\n scatter.sizes.column = pd$scatter.variable.indices["sizes"],\n scatter.colors.column = pd$scatter.variable.indices["colors"],\n trend.lines = get0("formTrendLines", ifnotfound=FALSE),\n logos = get0("formLogos"),\n logo.size = get0("formLogoSize"),\n # Chart: DATA SERIES\n colors = pc$series.colors,\n pie.subslice.colors = pc$subslice.colors,\n #Chart: FIT LINE\n fit.type = get0("formFit", ifnotfound="None"),\n fit.ignore.last = get0("formFitIgnoreLast"),\n fit.line.type = get0("formFitLineType"),\n fit.line.colors = if (isTRUE(get0("formSmallMultiples"))) NULL else pc$fit.line.colors,\n fit.line.width = get0("formFitLineWidth", ifnotfound=1),\n # Chart: DATA LABELS\n data.label.show = get0("formDataLabelShow", ifnotfound = FALSE),\n data.label.format = pn$data.labels.number.format,\n data.label.font.size = get0("formDataLabelFontSize", ifnotfound = 10),\n data.label.font.family = get0("formDataLabelFontFamily", ifnotfound = get0("formFont")),\n data.label.font.color = get0("formDataLabelFontColor"),\n data.label.prefix = get0("formPrefix", ifnotfound=""),\n data.label.suffix = get0("formSuffix", ifnotfound=""),\n data.label.position = get0("formDataLabelPosition", ifnotfound="top middle"),\n data.label.align.horizontal = get0("formDataLabelHorizAlign", ifnotfound="Default"),\n # Chart: FONT\n global.font.family = get0("formFont"),\n global.font.color = get0("formFontColor"),\n #Chart: GRIDLINES\n grid.show = get0("formShowGrid", ifnotfound=TRUE),\n # Chart: LEGEND\n legend.show = get0("formLegendShow", ifnotfound=TRUE),\n legend.title = get0("formLegendTitle"),\n legend.font.family = get0("formLegendFontFamily"),\n legend.font.color = get0("formLegendFontColor"),\n legend.font.size = get0("formLegendFontSize"),\n legend.x.position = get0("formLegendXPos", ifnotfound=1.02),\n legend.y.position = get0("formLegendYPos", ifnotfound=1.0),\n legend.width = get0("formLegendWidth", ifnotfound=250),\n # Chart: TITLE\n title = get0("formTitle", ifnotfound=""),\n title.font.family = get0("formTitleFontFamily"),\n title.font.color = get0("formTitleFontColor"),\n title.font.size = get0("formTitleFontSize"),\n subtitle = get0("formSubtitle", ifnotfound=""),\n subtitle.font.family = get0("formSubtitleFontFamily"),\n subtitle.font.color = get0("formSubtitleFontColor"),\n subtitle.font.size = get0("formSubtitleFontSize"),\n footer = get0("formFooter", ifnotfound=""),\n footer.font.family = get0("formFooterFontFamily"),\n footer.font.color = get0("formFooterFontColor"),\n footer.font.size = get0("formFooterFontSize"),\n footer.wrap = get0("formFooterWrap", ifnotfound=FALSE),\n footer.wrap.nchar = get0("formFooterWrapNchar"),\n #Chart: CATEGORIES_AXIS\n categories.axis.show = get0("formCategoriesAxisShow", ifnotfound=TRUE),\n categories.tick.show = get0("formCategoriesAxisShow", ifnotfound=TRUE),\n categories.tick.format = pn$categories.number.format,\n categories.tick.prefix = paste0("", get0("formCategoriesPrefix"), get0("formCategoriesCurrency")), # currency is just another prefix\n categories.tick.suffix = get0("formCategoriesSuffix", ifnotfound=""),\n categories.tick.interval = get0("formCategoriesTickInterval", ifnotfound=0),\n categories.tick.units = get0("formCategoriesTickUnits"),\n categories.title = paste0("", if (sum(nchar(get0("formCategoriesTitle", ifnotfound = " "))) > 0) get0("formCategoriesTitle", ifnotfound = " ") else pd$categories.title),\n categories.title.font.family = get0("formCategoriesTitleFontFamily"),\n categories.title.font.color = get0("formCategoriesTitleFontColor"),\n categories.title.font.size = get0("formCategoriesTitleFontSize", ifnotfound = 0), \n categories.tick.font.family = get0("formCategoriesTickFontFamily"),\n categories.tick.font.color = get0("formCategoriesTickFontColor"),\n categories.tick.font.size = get0("formCategoriesTickFontSize", ifnotfound=10),\n categories.tick.angle = if (!exists("formCategoriesTickAngle")) NULL else switch(get0("formCategoriesTickAngle"), Automatic=NULL, Horizontal=0, Vertical=90, Diagonal=45),\n categories.tick.label.wrap = get0("formLabelWrap", ifnotfound=FALSE),\n categories.tick.label.wrap.nchar = get0("formLabelWrapNchar", ifnotfound=100),\n categories.tick.align.horizontal = get0("formCategoriesTickHorizAlign", ifnotfound = "Default"),\n #Chart: VALUES_AXIS\n values.axis.show = get0("formValuesAxisShow"),\n values.tick.show = get0("formValuesAxisShow", ifnotfound=TRUE),\n values.tick.format = pn$values.number.format,\n values.tick.prefix = paste0("", get0("formValuesPrefix"), get0("formValuesCurrency")), # currency is just another prefix\n values.tick.suffix = get0("formValuesSuffix", ifnotfound=""),\n values.title = paste0("", if (sum(nchar(get0("formValuesTitle", ifnotfound=" "))) > 0) get0("formValuesTitle", ifnotfound = " ") else pd$values.title),\n values.title.font.family = get0("formValuesTitleFontFamily"),\n values.title.font.color = get0("formValuesTitleFontColor"),\n values.title.font.size = get0("formValuesTitleFontSize", ifnotfound = 0),\n values.bounds.minimum = if (sum(nchar(get0("formValuesMin"))) == 0) NULL else formValuesMin, \n values.bounds.maximum = if (sum(nchar(get0("formValuesMax"))) == 0) NULL else formValuesMax, \n values.number.ticks = get0("formValuesNumberTicks"),\n values.tick.font.size = get0("formValuesTickFontSize", ifnotfound=10),\n values.tick.font.family = get0("formValuesTickFontFamily"),\n values.tick.font.color = get0("formValuesTickFontColor"),\n # Chart: HOVER\n values.hovertext.format = pn$hover.number.format,\n # Chart: MARGINS\n margin.top = get0("formMarginTop"),\n margin.left = get0("formMarginLeft"),\n margin.bottom = get0("formMarginBottom"),\n margin.right = get0("formMarginRight"),\n # Chart: APPEARANCE\n type = if(get0("formStackSeries", ifnotfound=FALSE)) "Stacked" else (if(formChartType == "Donut") "Donut" else formChartType),\n adjust = get0("formBandwidth"),\n automatic.lower.density = get0("formAutomaticLower"),\n pie.inner.radius = get0("formPieRadius"),\n pie.border.color = get0("formBorderColor"),\n density.color = get0("formDensityColor"),\n vertical = get0("formVertical"),\n show.mean = get0("formShowMean"),\n show.median = get0("formShowMedian"),\n show.quartiles = get0("formShowQuartiles"),\n show.range = get0("formShowRange"),\n show.values = get0("formShowValues", ifnotfound = FALSE),\n histogram.cumulative = get0("formHistogramCumulative"),\n histogram.counts = get0("formHistogramCounts"),\n maximum.bins = get0("formMaximumBins"),\n box.points = get0("formBoxPoints"),\n mean.color = get0("formMeanColor"),\n median.color = get0("formMedianColor"),\n quartile.color = get0("formQuartilesColor"),\n range.color = get0("formRangeColor"),\n values.color = get0("formValuesColor"),\n window.start = get0("formWindowStart"),\n range.bars = get0("formRangeBars"),\n line.thickness = get0("formLineThickness"),\n opacity = get0("formFillOpacity"),\n # BarPictograph parameters\n image = get0("formIcon"),\n custom.image = get0("formCustomIcon"),\n base.image = get0("formBaseImage", ifnotfound = ""), \n hide.base.image = get0("formHideBase", ifnotfound = FALSE),\n base.icon.color = get0("formBaseColor", ifnotfound = ""),\n scale = if (exists("formIconScale")) as.numeric(formIconScale), \n total.icons = if (exists("formTotalIcons")) as.numeric(formTotalIcons),\n icon.ncol = if (exists("formIconNCol")) as.numeric(formIconNCol),\n fix.icon.nrow = get0("formFixNRows", ifnotfound = TRUE),\n fill.direction = get0("formFillDirection"),\n label.color.asIcon = get0("formLabelColorAsIcon", ifnotfound = FALSE),\n categories.tick.align = get0("formCategoriesTickAlign"),\n pad.row = get0("formIconPadding", ifnotfound = 0),\n graphic.width.inch = QOutputSizeWidth,\n graphic.height.inch = QOutputSizeHeight,\n # GeographicMap parameters\n mapping.package = get0("formMapPackage"),\n high.resolution = get0("formHighRes", ifnotfound = TRUE),\n treat.NA.as.0 = get0("formNAasZero", ifnotfound = FALSE),\n color.NA = get0("formNAColor"), \n ocean.color = get0("formOceanColor"),\n # Heat parameters\n sort.rows = get0("formSortRows"),\n sort.columns = get0("formSortColumns"),\n standardization = get0("formStandardization"),\n left.columns = get0("formLeftColumns"),\n left.column.headings = get0("formLeftColumnHeadings"),\n right.columns = get0("formRightColumns"),\n right.column.headings = get0("formRightColumnHeadings"),\n # General arguments\n warn.if.no.match = FALSE)\n</pre>\n<pre class='debug-message'>Loading required package: flipStandardCharts\n</pre>\r\n<div class=\"debug-summarystatistics\">\r\n<table>\r\n<tr><th>Total time:</th><td>3.30s</td></tr>\r\n<tr><th>Time on R server:</th><td title=\"rApacheServe 3.26s (pre 0.01s, post 0.00s) httpget_code() setup for eval 0.00s session$eval 3.18s (pre 0.00s, post 0.19s) unexplained 0.08s apparmor forking (pre 0.00s, post 0.00s)\">3.26s</td></tr>\r\n<tr><th>Time evaluating code:</th><td>2.92s</td></tr>\r\n<tr><th>Bytes sent:</th><td>18,070</td></tr>\r\n<tr><th>Bytes received:</th><td>76,341</td></tr>\r\n</table>\r\n</div>","message":"Loading required package: flipStandardCharts\n","htmlwidgets":"<div id=\"htmlwidget_container\">\n <div id=\"htmlwidget-c55c610b6d1e\" style=\"width:100%;height:400px;\" class=\"plotly html-widget\"></div>\n</div>\n<script type=\"application/json\" data-for=\"htmlwidget-c55c610b6d1e\">{\"x\":{\"data\":[{\"x\":[4.76648243997289e-17,0.80032679259013,0.457547120602894,-0.457547120602894,-0.89032679259013,4.76648243997289e-17],\"y\":[0.778425656,0.240546756561467,-0.629759584561467,-0.629759584561467,0.240546756561467,0.778425656],\"name\":\"Outer\",\"showlegend\":false,\"type\":\"scatter\",\"mode\":\"markers\",\"opacity\":0,\"hoverinfo\":[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"],\"marker\":{\"fillcolor\":\"rgba(31,119,180,1)\",\"color\":\"rgba(31,119,180,1)\",\"line\":{\"color\":\"transparent\"}},\"xaxis\":\"x\",\"yaxis\":\"y\",\"frame\":null},{\"x\":[4.76648243997289e-17,0.382640814596521,0.14737472799546,-0.21249379384025,-0.427004966655139,4.76648243997289e-17],\"y\":[0.778425656,0.124327537245013,-0.202843911147308,-0.292472616054048,0.13874232405553,0.778425656],\"name\":\"Aldi\",\"type\":\"scatter\",\"mode\":\"lines\",\"fill\":\"toself\",\"fillcolor\":\"rgba(228,26,28,0)\",\"legendgroup\":\"Aldi\",\"showlegend\":true,\"hoverinfo\":[\"skip\",\"skip\",\"skip\",\"skip\",\"skip\",\"skip\"],\"line\":{\"fillcolor\":\"rgba(255,127,14,1)\",\"color\":\"rgba(228,26,28,1)\",\"width\":2},\"xaxis\":\"x\",\"yaxis\":\"y\",\"frame\":null},{\"x\":[2.69572180232111e-17,0.40693047545603,0.272666603682746,-0.25611831918678,-0.516006440516421,2.69572180232111e-17],\"y\":[0.440244779833333,0.132219726473086,-0.375293383625211,-0.352516624030149,0.167660655906819,0.440244779833333],\"name\":\"Average\",\"type\":\"scatter\",\"mode\":\"lines\",\"fill\":\"toself\",\"fillcolor\":\"rgba(153,153,153,0.2)\",\"legendgroup\":\"Average\",\"showlegend\":true,\"hoverinfo\":[\"skip\",\"skip\",\"skip\",\"skip\",\"skip\",\"skip\"],\"line\":{\"fillcolor\":\"rgba(44,160,44,1)\",\"color\":\"rgba(153,153,153,1)\",\"width\":0},\"xaxis\":\"x\",\"yaxis\":\"y\",\"frame\":null},{\"x\":[2.69572180232111e-17,0.40693047545603,0.272666603682746,-0.25611831918678,-0.516006440516421],\"y\":[0.440244779833333,0.132219726473086,-0.375293383625211,-0.352516624030149,0.167660655906819],\"type\":\"scatter\",\"mode\":\"markers\",\"name\":\"Average\",\"legendgroup\":\"Average\",\"opacity\":0,\"showlegend\":false,\"text\":[\"Average: Price: 0.4\",\"Average: Access: 0.4\",\"Average: Range: 0.5\",\"Average: Fresh: 0.4\",\"Average: Quality: 0.5\"],\"hoverinfo\":[\"all+text\",\"all+text\",\"all+text\",\"all+text\",\"all+text\"],\"marker\":{\"fillcolor\":\"rgba(214,39,40,1)\",\"color\":\"rgba(153,153,153,1)\",\"size\":5,\"line\":{\"color\":\"transparent\"}},\"xaxis\":\"x\",\"yaxis\":\"y\",\"frame\":null},{\"x\":[4.76648243997289e-17,0.382640814596521,0.14737472799546,-0.21249379384025,-0.427004966655139],\"y\":[0.778425656,0.124327537245013,-0.202843911147308,-0.292472616054048,0.13874232405553],\"type\":\"scatter\",\"mode\":\"markers\",\"name\":\"Aldi\",\"legendgroup\":\"Aldi\",\"opacity\":0,\"showlegend\":false,\"text\":[\"Aldi: Price: 0.8\",\"Aldi: Access: 0.4\",\"Aldi: Range: 0.3\",\"Aldi: Fresh: 0.4\",\"Aldi: Quality: 0.4\"],\"hoverinfo\":[\"all+text\",\"all+text\",\"all+text\",\"all+text\",\"all+text\"],\"marker\":{\"fillcolor\":\"rgba(148,103,189,1)\",\"color\":\"rgba(228,26,28,1)\",\"size\":5,\"line\":{\"color\":\"transparent\"}},\"xaxis\":\"x\",\"yaxis\":\"y\",\"frame\":null},{\"x\":[0.0580533235298261,0.440694138126347,0.205428051525286,-0.270547117370076,-0.485058290184965],\"y\":[0.8562682216,0.202170102845013,-0.280686476747308,-0.370315181654048,0.21658488965553],\"type\":\"scatter\",\"mode\":\"text\",\"legendgroup\":\"Aldi\",\"showlegend\":false,\"hoverinfo\":[\"skip\",\"skip\",\"skip\",\"skip\",\"skip\"],\"text\":[\"Price: 78%\",\"Access: 40%\",\"Range: 25%\",\"Fresh: 36%\",\"Quality: 45%\"],\"textfont\":{\"fillcolor\":\"rgba(140,86,75,1)\",\"color\":\"#2C2C2C\",\"family\":\"Arial\",\"size\":10},\"xaxis\":\"x\",\"yaxis\":\"y\",\"frame\":null},{\"x\":[4.76648243997289e-17,0.80032679259013,0.457547120602894,-0.457547120602894,-0.89032679259013,4.76648243997289e-17],\"y\":[0.778425656,0.240546756561467,-0.629759584561467,-0.629759584561467,0.240546756561467,0.778425656],\"name\":\"Outer\",\"showlegend\":false,\"type\":\"scatter\",\"mode\":\"markers\",\"opacity\":0,\"hoverinfo\":[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"],\"marker\":{\"fillcolor\":\"rgba(31,119,180,1)\",\"color\":\"rgba(227,119,194,1)\",\"line\":{\"color\":\"transparent\"}},\"xaxis\":\"x2\",\"yaxis\":\"y\",\"frame\":null},{\"x\":[2.79033448193776e-17,0.144464280787684,0.223209589217743,-0.148806393007757,-0.445431532587202,2.79033448193776e-17],\"y\":[0.455696203,0.0469392902300396,-0.307221643075099,-0.204814428986405,0.144729478260792,0.455696203],\"name\":\"Costco\",\"type\":\"scatter\",\"mode\":\"lines\",\"fill\":\"toself\",\"fillcolor\":\"rgba(55,126,184,0)\",\"legendgroup\":\"Costco\",\"showlegend\":true,\"hoverinfo\":[\"skip\",\"skip\",\"skip\",\"skip\",\"skip\",\"skip\"],\"line\":{\"fillcolor\":\"rgba(255,127,14,1)\",\"color\":\"rgba(55,126,184,1)\",\"width\":2},\"xaxis\":\"x2\",\"yaxis\":\"y\",\"frame\":null},{\"x\":[2.69572180232111e-17,0.40693047545603,0.272666603682746,-0.25611831918678,-0.516006440516421,2.69572180232111e-17],\"y\":[0.440244779833333,0.132219726473086,-0.375293383625211,-0.352516624030149,0.167660655906819,0.440244779833333],\"name\":\"Average\",\"type\":\"scatter\",\"mode\":\"lines\",\"fill\":\"toself\",\"fillcolor\":\"rgba(153,153,153,0.2)\",\"legendgroup\":\"Average\",\"showlegend\":true,\"hoverinfo\":[\"skip\",\"skip\",\"skip\",\"skip\",\"skip\",\"skip\"],\"line\":{\"fillcolor\":\"rgba(44,160,44,1)\",\"color\":\"rgba(153,153,153,1)\",\"width\":0},\"xaxis\":\"x2\",\"yaxis\":\"y\",\"frame\":null},{\"x\":[2.69572180232111e-17,0.40693047545603,0.272666603682746,-0.25611831918678,-0.516006440516421],\"y\":[0.440244779833333,0.132219726473086,-0.375293383625211,-0.352516624030149,0.167660655906819],\"type\":\"scatter\",\"mode\":\"markers\",\"name\":\"Average\",\"legendgroup\":\"Average\",\"opacity\":0,\"showlegend\":false,\"text\":[\"Average: Price: 0.4\",\"Average: Access: 0.4\",\"Average: Range: 0.5\",\"Average: Fresh: 0.4\",\"Average: Quality: 0.5\"],\"hoverinfo\":[\"all+text\",\"all+text\",\"all+text\",\"all+text\",\"all+text\"],\"marker\":{\"fillcolor\":\"rgba(214,39,40,1)\",\"color\":\"rgba(153,153,153,1)\",\"size\":5,\"line\":{\"color\":\"transparent\"}},\"xaxis\":\"x2\",\"yaxis\":\"y\",\"frame\":null},{\"x\":[2.79033448193776e-17,0.144464280787684,0.223209589217743,-0.148806393007757,-0.445431532587202],\"y\":[0.455696203,0.0469392902300396,-0.307221643075099,-0.204814428986405,0.144729478260792],\"type\":\"scatter\",\"mode\":\"markers\",\"name\":\"Costco\",\"legendgroup\":\"Costco\",\"opacity\":0,\"showlegend\":false,\"text\":[\"Costco: Price: 0.5\",\"Costco: Access: 0.2\",\"Costco: Range: 0.4\",\"Costco: Fresh: 0.3\",\"Costco: Quality: 0.5\"],\"hoverinfo\":[\"all+text\",\"all+text\",\"all+text\",\"all+text\",\"all+text\"],\"marker\":{\"fillcolor\":\"rgba(148,103,189,1)\",\"color\":\"rgba(55,126,184,1)\",\"size\":5,\"line\":{\"color\":\"transparent\"}},\"xaxis\":\"x2\",\"yaxis\":\"y\",\"frame\":null},{\"x\":[0.0500817622608872,0.194546043048571,0.27329135147863,-0.198888155268644,-0.49551329484809],\"y\":[0.51740229595,0.10864538318004,-0.368927736025099,-0.266520521936405,0.206435571210792],\"type\":\"scatter\",\"mode\":\"text\",\"legendgroup\":\"Costco\",\"showlegend\":false,\"hoverinfo\":[\"skip\",\"skip\",\"skip\",\"skip\",\"skip\"],\"text\":[\"Price: 46%\",\"Access: 15%\",\"Range: 38%\",\"Fresh: 25%\",\"Quality: 47%\"],\"textfont\":{\"fillcolor\":\"rgba(140,86,75,1)\",\"color\":\"#2C2C2C\",\"family\":\"Arial\",\"size\":10},\"xaxis\":\"x2\",\"yaxis\":\"y\",\"frame\":null},{\"x\":[4.76648243997289e-17,0.80032679259013,0.457547120602894,-0.457547120602894,-0.89032679259013,4.76648243997289e-17],\"y\":[0.778425656,0.240546756561467,-0.629759584561467,-0.629759584561467,0.240546756561467,0.778425656],\"name\":\"Outer\",\"showlegend\":false,\"type\":\"scatter\",\"mode\":\"markers\",\"opacity\":0,\"hoverinfo\":[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"],\"marker\":{\"fillcolor\":\"rgba(31,119,180,1)\",\"color\":\"rgba(44,160,44,1)\",\"line\":{\"color\":\"transparent\"}},\"xaxis\":\"x3\",\"yaxis\":\"y\",\"frame\":null},{\"x\":[2.99358106526278e-17,0.600222334622824,0.401000160877802,-0.350058772737644,-0.676306855926436,2.99358106526278e-17],\"y\":[0.488888889,0.195024058637854,-0.551929371538238,-0.481814565898421,0.21974541818785,0.488888889],\"name\":\"Coles\",\"type\":\"scatter\",\"mode\":\"lines\",\"fill\":\"toself\",\"fillcolor\":\"rgba(77,175,74,0)\",\"legendgroup\":\"Coles\",\"showlegend\":true,\"hoverinfo\":[\"skip\",\"skip\",\"skip\",\"skip\",\"skip\",\"skip\"],\"line\":{\"fillcolor\":\"rgba(255,127,14,1)\",\"color\":\"rgba(77,175,74,1)\",\"width\":2},\"xaxis\":\"x3\",\"yaxis\":\"y\",\"frame\":null},{\"x\":[2.69572180232111e-17,0.40693047545603,0.272666603682746,-0.25611831918678,-0.516006440516421,2.69572180232111e-17],\"y\":[0.440244779833333,0.132219726473086,-0.375293383625211,-0.352516624030149,0.167660655906819,0.440244779833333],\"name\":\"Average\",\"type\":\"scatter\",\"mode\":\"lines\",\"fill\":\"toself\",\"fillcolor\":\"rgba(153,153,153,0.2)\",\"legendgroup\":\"Average\",\"showlegend\":true,\"hoverinfo\":[\"skip\",\"skip\",\"skip\",\"skip\",\"skip\",\"skip\"],\"line\":{\"fillcolor\":\"rgba(44,160,44,1)\",\"color\":\"rgba(153,153,153,1)\",\"width\":0},\"xaxis\":\"x3\",\"yaxis\":\"y\",\"frame\":null},{\"x\":[2.69572180232111e-17,0.40693047545603,0.272666603682746,-0.25611831918678,-0.516006440516421],\"y\":[0.440244779833333,0.132219726473086,-0.375293383625211,-0.352516624030149,0.167660655906819],\"type\":\"scatter\",\"mode\":\"markers\",\"name\":\"Average\",\"legendgroup\":\"Average\",\"opacity\":0,\"showlegend\":false,\"text\":[\"Average: Price: 0.4\",\"Average: Access: 0.4\",\"Average: Range: 0.5\",\"Average: Fresh: 0.4\",\"Average: Quality: 0.5\"],\"hoverinfo\":[\"all+text\",\"all+text\",\"all+text\",\"all+text\",\"all+text\"],\"marker\":{\"fillcolor\":\"rgba(214,39,40,1)\",\"color\":\"rgba(153,153,153,1)\",\"size\":5,\"line\":{\"color\":\"transparent\"}},\"xaxis\":\"x3\",\"yaxis\":\"y\",\"frame\":null},{\"x\":[2.99358106526278e-17,0.600222334622824,0.401000160877802,-0.350058772737644,-0.676306855926436],\"y\":[0.488888889,0.195024058637854,-0.551929371538238,-0.481814565898421,0.21974541818785],\"type\":\"scatter\",\"mode\":\"markers\",\"name\":\"Coles\",\"legendgroup\":\"Coles\",\"opacity\":0,\"showlegend\":false,\"text\":[\"Coles: Price: 0.5\",\"Coles: Access: 0.6\",\"Coles: Range: 0.7\",\"Coles: Fresh: 0.6\",\"Coles: Quality: 0.7\"],\"hoverinfo\":[\"all+text\",\"all+text\",\"all+text\",\"all+text\",\"all+text\"],\"marker\":{\"fillcolor\":\"rgba(148,103,189,1)\",\"color\":\"rgba(77,175,74,1)\",\"size\":5,\"line\":{\"color\":\"transparent\"}},\"xaxis\":\"x3\",\"yaxis\":\"y\",\"frame\":null},{\"x\":[0.0689323995311412,0.669154734153965,0.469932560408943,-0.418991172268785,-0.745239255457578],\"y\":[0.55225461625,0.258389785887854,-0.615295098788238,-0.545180293148421,0.28311114543785],\"type\":\"scatter\",\"mode\":\"text\",\"legendgroup\":\"Coles\",\"showlegend\":false,\"hoverinfo\":[\"skip\",\"skip\",\"skip\",\"skip\",\"skip\"],\"text\":[\"Price: 49%\",\"Access: 63%\",\"Range: 68%\",\"Fresh: 60%\",\"Quality: 71%\"],\"textfont\":{\"fillcolor\":\"rgba(140,86,75,1)\",\"color\":\"#2C2C2C\",\"family\":\"Arial\",\"size\":10},\"xaxis\":\"x3\",\"yaxis\":\"y\",\"frame\":null},{\"x\":[4.76648243997289e-17,0.80032679259013,0.457547120602894,-0.457547120602894,-0.89032679259013,4.76648243997289e-17],\"y\":[0.778425656,0.240546756561467,-0.629759584561467,-0.629759584561467,0.240546756561467,0.778425656],\"name\":\"Outer\",\"showlegend\":false,\"type\":\"scatter\",\"mode\":\"markers\",\"opacity\":0,\"hoverinfo\":[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"],\"marker\":{\"fillcolor\":\"rgba(31,119,180,1)\",\"color\":\"rgba(188,189,34,1)\",\"line\":{\"color\":\"transparent\"}},\"xaxis\":\"x\",\"yaxis\":\"y2\",\"frame\":null},{\"x\":[2.46305367462082e-17,0.577045526708822,0.41343097549195,-0.379088465953171,-0.653984929889575,2.46305367462082e-17],\"y\":[0.402247191,0.187493457250788,-0.569038920029881,-0.521770510797097,0.212492584760619,0.402247191],\"name\":\"Woolworths\",\"type\":\"scatter\",\"mode\":\"lines\",\"fill\":\"toself\",\"fillcolor\":\"rgba(152,78,163,0)\",\"legendgroup\":\"Woolworths\",\"showlegend\":true,\"hoverinfo\":[\"skip\",\"skip\",\"skip\",\"skip\",\"skip\",\"skip\"],\"line\":{\"fillcolor\":\"rgba(255,127,14,1)\",\"color\":\"rgba(152,78,163,1)\",\"width\":2},\"xaxis\":\"x\",\"yaxis\":\"y2\",\"frame\":null},{\"x\":[2.69572180232111e-17,0.40693047545603,0.272666603682746,-0.25611831918678,-0.516006440516421,2.69572180232111e-17],\"y\":[0.440244779833333,0.132219726473086,-0.375293383625211,-0.352516624030149,0.167660655906819,0.440244779833333],\"name\":\"Average\",\"type\":\"scatter\",\"mode\":\"lines\",\"fill\":\"toself\",\"fillcolor\":\"rgba(153,153,153,0.2)\",\"legendgroup\":\"Average\",\"showlegend\":true,\"hoverinfo\":[\"skip\",\"skip\",\"skip\",\"skip\",\"skip\",\"skip\"],\"line\":{\"fillcolor\":\"rgba(44,160,44,1)\",\"color\":\"rgba(153,153,153,1)\",\"width\":0},\"xaxis\":\"x\",\"yaxis\":\"y2\",\"frame\":null},{\"x\":[2.69572180232111e-17,0.40693047545603,0.272666603682746,-0.25611831918678,-0.516006440516421],\"y\":[0.440244779833333,0.132219726473086,-0.375293383625211,-0.352516624030149,0.167660655906819],\"type\":\"scatter\",\"mode\":\"markers\",\"name\":\"Average\",\"legendgroup\":\"Average\",\"opacity\":0,\"showlegend\":false,\"text\":[\"Average: Price: 0.4\",\"Average: Access: 0.4\",\"Average: Range: 0.5\",\"Average: Fresh: 0.4\",\"Average: Quality: 0.5\"],\"hoverinfo\":[\"all+text\",\"all+text\",\"all+text\",\"all+text\",\"all+text\"],\"marker\":{\"fillcolor\":\"rgba(214,39,40,1)\",\"color\":\"rgba(153,153,153,1)\",\"size\":5,\"line\":{\"color\":\"transparent\"}},\"xaxis\":\"x\",\"yaxis\":\"y2\",\"frame\":null},{\"x\":[2.46305367462082e-17,0.577045526708822,0.41343097549195,-0.379088465953171,-0.653984929889575],\"y\":[0.402247191,0.187493457250788,-0.569038920029881,-0.521770510797097,0.212492584760619],\"type\":\"scatter\",\"mode\":\"markers\",\"name\":\"Woolworths\",\"legendgroup\":\"Woolworths\",\"opacity\":0,\"showlegend\":false,\"text\":[\"Woolworths: Price: 0.4\",\"Woolworths: Access: 0.6\",\"Woolworths: Range: 0.7\",\"Woolworths: Fresh: 0.6\",\"Woolworths: Quality: 0.7\"],\"hoverinfo\":[\"all+text\",\"all+text\",\"all+text\",\"all+text\",\"all+text\"],\"marker\":{\"fillcolor\":\"rgba(148,103,189,1)\",\"color\":\"rgba(152,78,163,1)\",\"size\":5,\"line\":{\"color\":\"transparent\"}},\"xaxis\":\"x\",\"yaxis\":\"y2\",\"frame\":null},{\"x\":[0.0677735591354411,0.644819085844263,0.481204534627391,-0.446862025088612,-0.721758489025016],\"y\":[0.46128083335,0.246527099600788,-0.628072562379881,-0.580804153147097,0.271526227110619],\"type\":\"scatter\",\"mode\":\"text\",\"legendgroup\":\"Woolworths\",\"showlegend\":false,\"hoverinfo\":[\"skip\",\"skip\",\"skip\",\"skip\",\"skip\"],\"text\":[\"Price: 40%\",\"Access: 61%\",\"Range: 70%\",\"Fresh: 64%\",\"Quality: 69%\"],\"textfont\":{\"fillcolor\":\"rgba(140,86,75,1)\",\"color\":\"#2C2C2C\",\"family\":\"Arial\",\"size\":10},\"xaxis\":\"x\",\"yaxis\":\"y2\",\"frame\":null},{\"x\":[4.76648243997289e-17,0.80032679259013,0.457547120602894,-0.457547120602894,-0.89032679259013,4.76648243997289e-17],\"y\":[0.778425656,0.240546756561467,-0.629759584561467,-0.629759584561467,0.240546756561467,0.778425656],\"name\":\"Outer\",\"showlegend\":false,\"type\":\"scatter\",\"mode\":\"markers\",\"opacity\":0,\"hoverinfo\":[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"],\"marker\":{\"fillcolor\":\"rgba(31,119,180,1)\",\"color\":\"rgba(148,103,189,1)\",\"line\":{\"color\":\"transparent\"}},\"xaxis\":\"x2\",\"yaxis\":\"y2\",\"frame\":null},{\"x\":[1.74949542910286e-17,0.349367700077028,0.275899199995673,-0.239912347694545,-0.485232916826487,1.74949542910286e-17],\"y\":[0.285714286,0.113516446982617,-0.379742670746504,-0.330211017864565,0.157661731937469,0.285714286],\"name\":\"Foodland\",\"type\":\"scatter\",\"mode\":\"lines\",\"fill\":\"toself\",\"fillcolor\":\"rgba(255,127,0,0)\",\"legendgroup\":\"Foodland\",\"showlegend\":true,\"hoverinfo\":[\"skip\",\"skip\",\"skip\",\"skip\",\"skip\",\"skip\"],\"line\":{\"fillcolor\":\"rgba(255,127,14,1)\",\"color\":\"rgba(255,127,0,1)\",\"width\":2},\"xaxis\":\"x2\",\"yaxis\":\"y2\",\"frame\":null},{\"x\":[2.69572180232111e-17,0.40693047545603,0.272666603682746,-0.25611831918678,-0.516006440516421,2.69572180232111e-17],\"y\":[0.440244779833333,0.132219726473086,-0.375293383625211,-0.352516624030149,0.167660655906819,0.440244779833333],\"name\":\"Average\",\"type\":\"scatter\",\"mode\":\"lines\",\"fill\":\"toself\",\"fillcolor\":\"rgba(153,153,153,0.2)\",\"legendgroup\":\"Average\",\"showlegend\":true,\"hoverinfo\":[\"skip\",\"skip\",\"skip\",\"skip\",\"skip\",\"skip\"],\"line\":{\"fillcolor\":\"rgba(44,160,44,1)\",\"color\":\"rgba(153,153,153,1)\",\"width\":0},\"xaxis\":\"x2\",\"yaxis\":\"y2\",\"frame\":null},{\"x\":[2.69572180232111e-17,0.40693047545603,0.272666603682746,-0.25611831918678,-0.516006440516421],\"y\":[0.440244779833333,0.132219726473086,-0.375293383625211,-0.352516624030149,0.167660655906819],\"type\":\"scatter\",\"mode\":\"markers\",\"name\":\"Average\",\"legendgroup\":\"Average\",\"opacity\":0,\"showlegend\":false,\"text\":[\"Average: Price: 0.4\",\"Average: Access: 0.4\",\"Average: Range: 0.5\",\"Average: Fresh: 0.4\",\"Average: Quality: 0.5\"],\"hoverinfo\":[\"all+text\",\"all+text\",\"all+text\",\"all+text\",\"all+text\"],\"marker\":{\"fillcolor\":\"rgba(214,39,40,1)\",\"color\":\"rgba(153,153,153,1)\",\"size\":5,\"line\":{\"color\":\"transparent\"}},\"xaxis\":\"x2\",\"yaxis\":\"y2\",\"frame\":null},{\"x\":[1.74949542910286e-17,0.349367700077028,0.275899199995673,-0.239912347694545,-0.485232916826487],\"y\":[0.285714286,0.113516446982617,-0.379742670746504,-0.330211017864565,0.157661731937469],\"type\":\"scatter\",\"mode\":\"markers\",\"name\":\"Foodland\",\"legendgroup\":\"Foodland\",\"opacity\":0,\"showlegend\":false,\"text\":[\"Foodland: Price: 0.3\",\"Foodland: Access: 0.4\",\"Foodland: Range: 0.5\",\"Foodland: Fresh: 0.4\",\"Foodland: Quality: 0.5\"],\"hoverinfo\":[\"all+text\",\"all+text\",\"all+text\",\"all+text\",\"all+text\"],\"marker\":{\"fillcolor\":\"rgba(148,103,189,1)\",\"color\":\"rgba(255,127,0,1)\",\"size\":5,\"line\":{\"color\":\"transparent\"}},\"xaxis\":\"x2\",\"yaxis\":\"y2\",\"frame\":null},{\"x\":[0.0563896678038514,0.40575736788088,0.332288867799524,-0.296302015498396,-0.541622584630338],\"y\":[0.3389212831,0.166723444082617,-0.432949667846504,-0.383418014964565,0.210868729037469],\"type\":\"scatter\",\"mode\":\"text\",\"legendgroup\":\"Foodland\",\"showlegend\":false,\"hoverinfo\":[\"skip\",\"skip\",\"skip\",\"skip\",\"skip\"],\"text\":[\"Price: 29%\",\"Access: 37%\",\"Range: 47%\",\"Fresh: 41%\",\"Quality: 51%\"],\"textfont\":{\"fillcolor\":\"rgba(140,86,75,1)\",\"color\":\"#2C2C2C\",\"family\":\"Arial\",\"size\":10},\"xaxis\":\"x2\",\"yaxis\":\"y2\",\"frame\":null},{\"x\":[4.76648243997289e-17,0.80032679259013,0.457547120602894,-0.457547120602894,-0.89032679259013,4.76648243997289e-17],\"y\":[0.778425656,0.240546756561467,-0.629759584561467,-0.629759584561467,0.240546756561467,0.778425656],\"name\":\"Outer\",\"showlegend\":false,\"type\":\"scatter\",\"mode\":\"markers\",\"opacity\":0,\"hoverinfo\":[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"],\"marker\":{\"fillcolor\":\"rgba(31,119,180,1)\",\"color\":\"rgba(31,119,180,1)\",\"line\":{\"color\":\"transparent\"}},\"xaxis\":\"x3\",\"yaxis\":\"y2\",\"frame\":null},{\"x\":[1.41138372302958e-17,0.387842195943304,0.175084968517849,-0.206350141887312,-0.408077441213683,1.41138372302958e-17],\"y\":[0.230496454,0.126017568492202,-0.240983785214232,-0.284016604580358,0.132592398238652,0.230496454],\"name\":\"IGA\",\"type\":\"scatter\",\"mode\":\"lines\",\"fill\":\"toself\",\"fillcolor\":\"rgba(255,255,51,0)\",\"legendgroup\":\"IGA\",\"showlegend\":true,\"hoverinfo\":[\"skip\",\"skip\",\"skip\",\"skip\",\"skip\",\"skip\"],\"line\":{\"fillcolor\":\"rgba(255,127,14,1)\",\"color\":\"rgba(255,255,51,1)\",\"width\":2},\"xaxis\":\"x3\",\"yaxis\":\"y2\",\"frame\":null},{\"x\":[2.69572180232111e-17,0.40693047545603,0.272666603682746,-0.25611831918678,-0.516006440516421,2.69572180232111e-17],\"y\":[0.440244779833333,0.132219726473086,-0.375293383625211,-0.352516624030149,0.167660655906819,0.440244779833333],\"name\":\"Average\",\"type\":\"scatter\",\"mode\":\"lines\",\"fill\":\"toself\",\"fillcolor\":\"rgba(153,153,153,0.2)\",\"legendgroup\":\"Average\",\"showlegend\":true,\"hoverinfo\":[\"skip\",\"skip\",\"skip\",\"skip\",\"skip\",\"skip\"],\"line\":{\"fillcolor\":\"rgba(44,160,44,1)\",\"color\":\"rgba(153,153,153,1)\",\"width\":0},\"xaxis\":\"x3\",\"yaxis\":\"y2\",\"frame\":null},{\"x\":[2.69572180232111e-17,0.40693047545603,0.272666603682746,-0.25611831918678,-0.516006440516421],\"y\":[0.440244779833333,0.132219726473086,-0.375293383625211,-0.352516624030149,0.167660655906819],\"type\":\"scatter\",\"mode\":\"markers\",\"name\":\"Average\",\"legendgroup\":\"Average\",\"opacity\":0,\"showlegend\":false,\"text\":[\"Average: Price: 0.4\",\"Average: Access: 0.4\",\"Average: Range: 0.5\",\"Average: Fresh: 0.4\",\"Average: Quality: 0.5\"],\"hoverinfo\":[\"all+text\",\"all+text\",\"all+text\",\"all+text\",\"all+text\"],\"marker\":{\"fillcolor\":\"rgba(214,39,40,1)\",\"color\":\"rgba(153,153,153,1)\",\"size\":5,\"line\":{\"color\":\"transparent\"}},\"xaxis\":\"x3\",\"yaxis\":\"y2\",\"frame\":null},{\"x\":[1.41138372302958e-17,0.387842195943304,0.175084968517849,-0.206350141887312,-0.408077441213683],\"y\":[0.230496454,0.126017568492202,-0.240983785214232,-0.284016604580358,0.132592398238652],\"type\":\"scatter\",\"mode\":\"markers\",\"name\":\"IGA\",\"legendgroup\":\"IGA\",\"opacity\":0,\"showlegend\":false,\"text\":[\"IGA: Price: 0.2\",\"IGA: Access: 0.4\",\"IGA: Range: 0.3\",\"IGA: Fresh: 0.4\",\"IGA: Quality: 0.4\"],\"hoverinfo\":[\"all+text\",\"all+text\",\"all+text\",\"all+text\",\"all+text\"],\"marker\":{\"fillcolor\":\"rgba(148,103,189,1)\",\"color\":\"rgba(255,255,51,1)\",\"size\":5,\"line\":{\"color\":\"transparent\"}},\"xaxis\":\"x3\",\"yaxis\":\"y2\",\"frame\":null},{\"x\":[0.0583133925971652,0.446155588540469,0.233398361115015,-0.264663534484477,-0.466390833810848],\"y\":[0.2809425595,0.176463673992202,-0.291429890714232,-0.334462710080358,0.183038503738652],\"type\":\"scatter\",\"mode\":\"text\",\"legendgroup\":\"IGA\",\"showlegend\":false,\"hoverinfo\":[\"skip\",\"skip\",\"skip\",\"skip\",\"skip\"],\"text\":[\"Price: 23%\",\"Access: 41%\",\"Range: 30%\",\"Fresh: 35%\",\"Quality: 43%\"],\"textfont\":{\"fillcolor\":\"rgba(140,86,75,1)\",\"color\":\"#2C2C2C\",\"family\":\"Arial\",\"size\":10},\"xaxis\":\"x3\",\"yaxis\":\"y2\",\"frame\":null}],\"layout\":{\"xaxis\":{\"domain\":[0,0.333333333333333],\"title\":\"\",\"showgrid\":false,\"zeroline\":false,\"showticklabels\":false,\"categoryorder\":\"array\",\"categoryarray\":[\"Woolworths\",\"Average\"],\"anchor\":\"y2\"},\"xaxis2\":{\"domain\":[0.333333333333333,0.666666666666667],\"title\":\"\",\"showgrid\":false,\"zeroline\":false,\"showticklabels\":false,\"categoryorder\":\"array\",\"categoryarray\":[\"Foodland\",\"Average\"],\"anchor\":\"y2\"},\"xaxis3\":{\"domain\":[0.666666666666667,1],\"title\":\"\",\"showgrid\":false,\"zeroline\":false,\"showticklabels\":false,\"categoryorder\":\"array\",\"categoryarray\":[\"IGA\",\"Average\"],\"anchor\":\"y2\"},\"yaxis2\":{\"domain\":[0.0700000000000001,0.43],\"title\":\"\",\"showgrid\":false,\"zeroline\":false,\"showticklabels\":false,\"anchor\":\"x\"},\"yaxis\":{\"domain\":[0.57,0.93],\"title\":\"\",\"showgrid\":false,\"zeroline\":false,\"showticklabels\":false,\"anchor\":\"x\"},\"margin\":{\"b\":0,\"l\":0,\"t\":36,\"r\":0,\"inner\":0},\"title\":\" \",\"titlefont\":{\"family\":\"Arial\",\"size\":16,\"color\":\"#2C2C2C\"},\"plot_bgcolor\":\"rgba(255,255,255,0)\",\"paper_bgcolor\":\"rgba(255,255,255,0)\",\"hovermode\":\"closest\",\"legend\":{\"bgcolor\":\"rgba(255,255,255,0)\",\"bordercolor\":\"#2C2C2C\",\"borderwidth\":0,\"orientation\":\"v\",\"font\":{\"family\":[],\"size\":[],\"color\":[]},\"xanchor\":\"left\",\"yanchor\":\"auto\",\"y\":1,\"x\":1.02,\"traceorder\":\"normal\"},\"showlegend\":false,\"annotations\":[{\"text\":\"Aldi\",\"x\":0.166666666666667,\"y\":1,\"showarrow\":false,\"xanchor\":\"center\",\"yanchor\":\"top\",\"font\":{\"family\":\"Arial\",\"color\":\"#2C2C2C\",\"size\":14},\"xref\":\"paper\",\"yref\":\"paper\"},{\"text\":\"Costco\",\"x\":0.5,\"y\":1,\"showarrow\":false,\"xanchor\":\"center\",\"yanchor\":\"top\",\"font\":{\"family\":\"Arial\",\"color\":\"#2C2C2C\",\"size\":14},\"xref\":\"paper\",\"yref\":\"paper\"},{\"text\":\"Coles\",\"x\":0.833333333333333,\"y\":1,\"showarrow\":false,\"xanchor\":\"center\",\"yanchor\":\"top\",\"font\":{\"family\":\"Arial\",\"color\":\"#2C2C2C\",\"size\":14},\"xref\":\"paper\",\"yref\":\"paper\"},{\"text\":\"Woolworths\",\"x\":0.166666666666667,\"y\":0.5,\"showarrow\":false,\"xanchor\":\"center\",\"yanchor\":\"top\",\"font\":{\"family\":\"Arial\",\"color\":\"#2C2C2C\",\"size\":14},\"xref\":\"paper\",\"yref\":\"paper\"},{\"text\":\"Foodland\",\"x\":0.5,\"y\":0.5,\"showarrow\":false,\"xanchor\":\"center\",\"yanchor\":\"top\",\"font\":{\"family\":\"Arial\",\"color\":\"#2C2C2C\",\"size\":14},\"xref\":\"paper\",\"yref\":\"paper\"},{\"text\":\"IGA\",\"x\":0.833333333333333,\"y\":0.5,\"showarrow\":false,\"xanchor\":\"center\",\"yanchor\":\"top\",\"font\":{\"family\":\"Arial\",\"color\":\"#2C2C2C\",\"size\":14},\"xref\":\"paper\",\"yref\":\"paper\"}]},\"attrs\":{\"c55c43bef370\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[4.76648243997289e-17,0.80032679259013,0.457547120602894,-0.457547120602894,-0.89032679259013,4.76648243997289e-17],\"y\":[0.778425656,0.240546756561467,-0.629759584561467,-0.629759584561467,0.240546756561467,0.778425656],\"name\":\"Outer\",\"showlegend\":false,\"type\":\"scatter\",\"mode\":\"markers\",\"opacity\":0,\"hoverinfo\":\"none\"},\"c55c43bef370.1\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[4.76648243997289e-17,0.382640814596521,0.14737472799546,-0.21249379384025,-0.427004966655139,4.76648243997289e-17],\"y\":[0.778425656,0.124327537245013,-0.202843911147308,-0.292472616054048,0.13874232405553,0.778425656],\"name\":\"Aldi\",\"type\":\"scatter\",\"mode\":\"lines\",\"fill\":\"toself\",\"fillcolor\":\"rgba(228,26,28,0)\",\"legendgroup\":\"Aldi\",\"showlegend\":true,\"hoverinfo\":\"skip\",\"line\":{\"width\":2,\"color\":\"rgba(228,26,28,1)\"}},\"c55c43bef370.2\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[2.69572180232111e-17,0.40693047545603,0.272666603682746,-0.25611831918678,-0.516006440516421,2.69572180232111e-17],\"y\":[0.440244779833333,0.132219726473086,-0.375293383625211,-0.352516624030149,0.167660655906819,0.440244779833333],\"name\":\"Average\",\"type\":\"scatter\",\"mode\":\"lines\",\"fill\":\"toself\",\"fillcolor\":\"rgba(153,153,153,0.2)\",\"legendgroup\":\"Average\",\"showlegend\":true,\"hoverinfo\":\"skip\",\"line\":{\"width\":0,\"color\":\"rgba(153,153,153,1)\"}},\"c55c43bef370.3\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[2.69572180232111e-17,0.40693047545603,0.272666603682746,-0.25611831918678,-0.516006440516421],\"y\":[0.440244779833333,0.132219726473086,-0.375293383625211,-0.352516624030149,0.167660655906819],\"type\":\"scatter\",\"mode\":\"markers\",\"name\":\"Average\",\"legendgroup\":\"Average\",\"opacity\":0,\"showlegend\":false,\"text\":[\"Average: Price: 0.4\",\"Average: Access: 0.4\",\"Average: Range: 0.5\",\"Average: Fresh: 0.4\",\"Average: Quality: 0.5\"],\"hoverinfo\":\"all+text\",\"marker\":{\"size\":5,\"color\":\"rgba(153,153,153,1)\"}},\"c55c43bef370.4\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[4.76648243997289e-17,0.382640814596521,0.14737472799546,-0.21249379384025,-0.427004966655139],\"y\":[0.778425656,0.124327537245013,-0.202843911147308,-0.292472616054048,0.13874232405553],\"type\":\"scatter\",\"mode\":\"markers\",\"name\":\"Aldi\",\"legendgroup\":\"Aldi\",\"opacity\":0,\"showlegend\":false,\"text\":[\"Aldi: Price: 0.8\",\"Aldi: Access: 0.4\",\"Aldi: Range: 0.3\",\"Aldi: Fresh: 0.4\",\"Aldi: Quality: 0.4\"],\"hoverinfo\":\"all+text\",\"marker\":{\"size\":5,\"color\":\"rgba(228,26,28,1)\"}},\"c55c43bef370.5\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[0.0580533235298261,0.440694138126347,0.205428051525286,-0.270547117370076,-0.485058290184965],\"y\":[0.8562682216,0.202170102845013,-0.280686476747308,-0.370315181654048,0.21658488965553],\"type\":\"scatter\",\"mode\":\"text\",\"legendgroup\":\"Aldi\",\"showlegend\":false,\"hoverinfo\":\"skip\",\"text\":[\"Price: 78%\",\"Access: 40%\",\"Range: 25%\",\"Fresh: 36%\",\"Quality: 45%\"],\"textfont\":{\"family\":\"Arial\",\"size\":10,\"color\":\"#2C2C2C\"}},\"c55c61baa4eb\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[4.76648243997289e-17,0.80032679259013,0.457547120602894,-0.457547120602894,-0.89032679259013,4.76648243997289e-17],\"y\":[0.778425656,0.240546756561467,-0.629759584561467,-0.629759584561467,0.240546756561467,0.778425656],\"name\":\"Outer\",\"showlegend\":false,\"type\":\"scatter\",\"mode\":\"markers\",\"opacity\":0,\"hoverinfo\":\"none\"},\"c55c61baa4eb.1\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[2.79033448193776e-17,0.144464280787684,0.223209589217743,-0.148806393007757,-0.445431532587202,2.79033448193776e-17],\"y\":[0.455696203,0.0469392902300396,-0.307221643075099,-0.204814428986405,0.144729478260792,0.455696203],\"name\":\"Costco\",\"type\":\"scatter\",\"mode\":\"lines\",\"fill\":\"toself\",\"fillcolor\":\"rgba(55,126,184,0)\",\"legendgroup\":\"Costco\",\"showlegend\":true,\"hoverinfo\":\"skip\",\"line\":{\"width\":2,\"color\":\"rgba(55,126,184,1)\"}},\"c55c61baa4eb.2\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[2.69572180232111e-17,0.40693047545603,0.272666603682746,-0.25611831918678,-0.516006440516421,2.69572180232111e-17],\"y\":[0.440244779833333,0.132219726473086,-0.375293383625211,-0.352516624030149,0.167660655906819,0.440244779833333],\"name\":\"Average\",\"type\":\"scatter\",\"mode\":\"lines\",\"fill\":\"toself\",\"fillcolor\":\"rgba(153,153,153,0.2)\",\"legendgroup\":\"Average\",\"showlegend\":true,\"hoverinfo\":\"skip\",\"line\":{\"width\":0,\"color\":\"rgba(153,153,153,1)\"}},\"c55c61baa4eb.3\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[2.69572180232111e-17,0.40693047545603,0.272666603682746,-0.25611831918678,-0.516006440516421],\"y\":[0.440244779833333,0.132219726473086,-0.375293383625211,-0.352516624030149,0.167660655906819],\"type\":\"scatter\",\"mode\":\"markers\",\"name\":\"Average\",\"legendgroup\":\"Average\",\"opacity\":0,\"showlegend\":false,\"text\":[\"Average: Price: 0.4\",\"Average: Access: 0.4\",\"Average: Range: 0.5\",\"Average: Fresh: 0.4\",\"Average: Quality: 0.5\"],\"hoverinfo\":\"all+text\",\"marker\":{\"size\":5,\"color\":\"rgba(153,153,153,1)\"}},\"c55c61baa4eb.4\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[2.79033448193776e-17,0.144464280787684,0.223209589217743,-0.148806393007757,-0.445431532587202],\"y\":[0.455696203,0.0469392902300396,-0.307221643075099,-0.204814428986405,0.144729478260792],\"type\":\"scatter\",\"mode\":\"markers\",\"name\":\"Costco\",\"legendgroup\":\"Costco\",\"opacity\":0,\"showlegend\":false,\"text\":[\"Costco: Price: 0.5\",\"Costco: Access: 0.2\",\"Costco: Range: 0.4\",\"Costco: Fresh: 0.3\",\"Costco: Quality: 0.5\"],\"hoverinfo\":\"all+text\",\"marker\":{\"size\":5,\"color\":\"rgba(55,126,184,1)\"}},\"c55c61baa4eb.5\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[0.0500817622608872,0.194546043048571,0.27329135147863,-0.198888155268644,-0.49551329484809],\"y\":[0.51740229595,0.10864538318004,-0.368927736025099,-0.266520521936405,0.206435571210792],\"type\":\"scatter\",\"mode\":\"text\",\"legendgroup\":\"Costco\",\"showlegend\":false,\"hoverinfo\":\"skip\",\"text\":[\"Price: 46%\",\"Access: 15%\",\"Range: 38%\",\"Fresh: 25%\",\"Quality: 47%\"],\"textfont\":{\"family\":\"Arial\",\"size\":10,\"color\":\"#2C2C2C\"}},\"c55c3a85b7d4\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[4.76648243997289e-17,0.80032679259013,0.457547120602894,-0.457547120602894,-0.89032679259013,4.76648243997289e-17],\"y\":[0.778425656,0.240546756561467,-0.629759584561467,-0.629759584561467,0.240546756561467,0.778425656],\"name\":\"Outer\",\"showlegend\":false,\"type\":\"scatter\",\"mode\":\"markers\",\"opacity\":0,\"hoverinfo\":\"none\"},\"c55c3a85b7d4.1\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[2.99358106526278e-17,0.600222334622824,0.401000160877802,-0.350058772737644,-0.676306855926436,2.99358106526278e-17],\"y\":[0.488888889,0.195024058637854,-0.551929371538238,-0.481814565898421,0.21974541818785,0.488888889],\"name\":\"Coles\",\"type\":\"scatter\",\"mode\":\"lines\",\"fill\":\"toself\",\"fillcolor\":\"rgba(77,175,74,0)\",\"legendgroup\":\"Coles\",\"showlegend\":true,\"hoverinfo\":\"skip\",\"line\":{\"width\":2,\"color\":\"rgba(77,175,74,1)\"}},\"c55c3a85b7d4.2\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[2.69572180232111e-17,0.40693047545603,0.272666603682746,-0.25611831918678,-0.516006440516421,2.69572180232111e-17],\"y\":[0.440244779833333,0.132219726473086,-0.375293383625211,-0.352516624030149,0.167660655906819,0.440244779833333],\"name\":\"Average\",\"type\":\"scatter\",\"mode\":\"lines\",\"fill\":\"toself\",\"fillcolor\":\"rgba(153,153,153,0.2)\",\"legendgroup\":\"Average\",\"showlegend\":true,\"hoverinfo\":\"skip\",\"line\":{\"width\":0,\"color\":\"rgba(153,153,153,1)\"}},\"c55c3a85b7d4.3\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[2.69572180232111e-17,0.40693047545603,0.272666603682746,-0.25611831918678,-0.516006440516421],\"y\":[0.440244779833333,0.132219726473086,-0.375293383625211,-0.352516624030149,0.167660655906819],\"type\":\"scatter\",\"mode\":\"markers\",\"name\":\"Average\",\"legendgroup\":\"Average\",\"opacity\":0,\"showlegend\":false,\"text\":[\"Average: Price: 0.4\",\"Average: Access: 0.4\",\"Average: Range: 0.5\",\"Average: Fresh: 0.4\",\"Average: Quality: 0.5\"],\"hoverinfo\":\"all+text\",\"marker\":{\"size\":5,\"color\":\"rgba(153,153,153,1)\"}},\"c55c3a85b7d4.4\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[2.99358106526278e-17,0.600222334622824,0.401000160877802,-0.350058772737644,-0.676306855926436],\"y\":[0.488888889,0.195024058637854,-0.551929371538238,-0.481814565898421,0.21974541818785],\"type\":\"scatter\",\"mode\":\"markers\",\"name\":\"Coles\",\"legendgroup\":\"Coles\",\"opacity\":0,\"showlegend\":false,\"text\":[\"Coles: Price: 0.5\",\"Coles: Access: 0.6\",\"Coles: Range: 0.7\",\"Coles: Fresh: 0.6\",\"Coles: Quality: 0.7\"],\"hoverinfo\":\"all+text\",\"marker\":{\"size\":5,\"color\":\"rgba(77,175,74,1)\"}},\"c55c3a85b7d4.5\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[0.0689323995311412,0.669154734153965,0.469932560408943,-0.418991172268785,-0.745239255457578],\"y\":[0.55225461625,0.258389785887854,-0.615295098788238,-0.545180293148421,0.28311114543785],\"type\":\"scatter\",\"mode\":\"text\",\"legendgroup\":\"Coles\",\"showlegend\":false,\"hoverinfo\":\"skip\",\"text\":[\"Price: 49%\",\"Access: 63%\",\"Range: 68%\",\"Fresh: 60%\",\"Quality: 71%\"],\"textfont\":{\"family\":\"Arial\",\"size\":10,\"color\":\"#2C2C2C\"}},\"c55c1dbdcf1d\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[4.76648243997289e-17,0.80032679259013,0.457547120602894,-0.457547120602894,-0.89032679259013,4.76648243997289e-17],\"y\":[0.778425656,0.240546756561467,-0.629759584561467,-0.629759584561467,0.240546756561467,0.778425656],\"name\":\"Outer\",\"showlegend\":false,\"type\":\"scatter\",\"mode\":\"markers\",\"opacity\":0,\"hoverinfo\":\"none\"},\"c55c1dbdcf1d.1\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[2.46305367462082e-17,0.577045526708822,0.41343097549195,-0.379088465953171,-0.653984929889575,2.46305367462082e-17],\"y\":[0.402247191,0.187493457250788,-0.569038920029881,-0.521770510797097,0.212492584760619,0.402247191],\"name\":\"Woolworths\",\"type\":\"scatter\",\"mode\":\"lines\",\"fill\":\"toself\",\"fillcolor\":\"rgba(152,78,163,0)\",\"legendgroup\":\"Woolworths\",\"showlegend\":true,\"hoverinfo\":\"skip\",\"line\":{\"width\":2,\"color\":\"rgba(152,78,163,1)\"}},\"c55c1dbdcf1d.2\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[2.69572180232111e-17,0.40693047545603,0.272666603682746,-0.25611831918678,-0.516006440516421,2.69572180232111e-17],\"y\":[0.440244779833333,0.132219726473086,-0.375293383625211,-0.352516624030149,0.167660655906819,0.440244779833333],\"name\":\"Average\",\"type\":\"scatter\",\"mode\":\"lines\",\"fill\":\"toself\",\"fillcolor\":\"rgba(153,153,153,0.2)\",\"legendgroup\":\"Average\",\"showlegend\":true,\"hoverinfo\":\"skip\",\"line\":{\"width\":0,\"color\":\"rgba(153,153,153,1)\"}},\"c55c1dbdcf1d.3\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[2.69572180232111e-17,0.40693047545603,0.272666603682746,-0.25611831918678,-0.516006440516421],\"y\":[0.440244779833333,0.132219726473086,-0.375293383625211,-0.352516624030149,0.167660655906819],\"type\":\"scatter\",\"mode\":\"markers\",\"name\":\"Average\",\"legendgroup\":\"Average\",\"opacity\":0,\"showlegend\":false,\"text\":[\"Average: Price: 0.4\",\"Average: Access: 0.4\",\"Average: Range: 0.5\",\"Average: Fresh: 0.4\",\"Average: Quality: 0.5\"],\"hoverinfo\":\"all+text\",\"marker\":{\"size\":5,\"color\":\"rgba(153,153,153,1)\"}},\"c55c1dbdcf1d.4\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[2.46305367462082e-17,0.577045526708822,0.41343097549195,-0.379088465953171,-0.653984929889575],\"y\":[0.402247191,0.187493457250788,-0.569038920029881,-0.521770510797097,0.212492584760619],\"type\":\"scatter\",\"mode\":\"markers\",\"name\":\"Woolworths\",\"legendgroup\":\"Woolworths\",\"opacity\":0,\"showlegend\":false,\"text\":[\"Woolworths: Price: 0.4\",\"Woolworths: Access: 0.6\",\"Woolworths: Range: 0.7\",\"Woolworths: Fresh: 0.6\",\"Woolworths: Quality: 0.7\"],\"hoverinfo\":\"all+text\",\"marker\":{\"size\":5,\"color\":\"rgba(152,78,163,1)\"}},\"c55c1dbdcf1d.5\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[0.0677735591354411,0.644819085844263,0.481204534627391,-0.446862025088612,-0.721758489025016],\"y\":[0.46128083335,0.246527099600788,-0.628072562379881,-0.580804153147097,0.271526227110619],\"type\":\"scatter\",\"mode\":\"text\",\"legendgroup\":\"Woolworths\",\"showlegend\":false,\"hoverinfo\":\"skip\",\"text\":[\"Price: 40%\",\"Access: 61%\",\"Range: 70%\",\"Fresh: 64%\",\"Quality: 69%\"],\"textfont\":{\"family\":\"Arial\",\"size\":10,\"color\":\"#2C2C2C\"}},\"c55c1bbc2e0b\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[4.76648243997289e-17,0.80032679259013,0.457547120602894,-0.457547120602894,-0.89032679259013,4.76648243997289e-17],\"y\":[0.778425656,0.240546756561467,-0.629759584561467,-0.629759584561467,0.240546756561467,0.778425656],\"name\":\"Outer\",\"showlegend\":false,\"type\":\"scatter\",\"mode\":\"markers\",\"opacity\":0,\"hoverinfo\":\"none\"},\"c55c1bbc2e0b.1\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[1.74949542910286e-17,0.349367700077028,0.275899199995673,-0.239912347694545,-0.485232916826487,1.74949542910286e-17],\"y\":[0.285714286,0.113516446982617,-0.379742670746504,-0.330211017864565,0.157661731937469,0.285714286],\"name\":\"Foodland\",\"type\":\"scatter\",\"mode\":\"lines\",\"fill\":\"toself\",\"fillcolor\":\"rgba(255,127,0,0)\",\"legendgroup\":\"Foodland\",\"showlegend\":true,\"hoverinfo\":\"skip\",\"line\":{\"width\":2,\"color\":\"rgba(255,127,0,1)\"}},\"c55c1bbc2e0b.2\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[2.69572180232111e-17,0.40693047545603,0.272666603682746,-0.25611831918678,-0.516006440516421,2.69572180232111e-17],\"y\":[0.440244779833333,0.132219726473086,-0.375293383625211,-0.352516624030149,0.167660655906819,0.440244779833333],\"name\":\"Average\",\"type\":\"scatter\",\"mode\":\"lines\",\"fill\":\"toself\",\"fillcolor\":\"rgba(153,153,153,0.2)\",\"legendgroup\":\"Average\",\"showlegend\":true,\"hoverinfo\":\"skip\",\"line\":{\"width\":0,\"color\":\"rgba(153,153,153,1)\"}},\"c55c1bbc2e0b.3\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[2.69572180232111e-17,0.40693047545603,0.272666603682746,-0.25611831918678,-0.516006440516421],\"y\":[0.440244779833333,0.132219726473086,-0.375293383625211,-0.352516624030149,0.167660655906819],\"type\":\"scatter\",\"mode\":\"markers\",\"name\":\"Average\",\"legendgroup\":\"Average\",\"opacity\":0,\"showlegend\":false,\"text\":[\"Average: Price: 0.4\",\"Average: Access: 0.4\",\"Average: Range: 0.5\",\"Average: Fresh: 0.4\",\"Average: Quality: 0.5\"],\"hoverinfo\":\"all+text\",\"marker\":{\"size\":5,\"color\":\"rgba(153,153,153,1)\"}},\"c55c1bbc2e0b.4\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[1.74949542910286e-17,0.349367700077028,0.275899199995673,-0.239912347694545,-0.485232916826487],\"y\":[0.285714286,0.113516446982617,-0.379742670746504,-0.330211017864565,0.157661731937469],\"type\":\"scatter\",\"mode\":\"markers\",\"name\":\"Foodland\",\"legendgroup\":\"Foodland\",\"opacity\":0,\"showlegend\":false,\"text\":[\"Foodland: Price: 0.3\",\"Foodland: Access: 0.4\",\"Foodland: Range: 0.5\",\"Foodland: Fresh: 0.4\",\"Foodland: Quality: 0.5\"],\"hoverinfo\":\"all+text\",\"marker\":{\"size\":5,\"color\":\"rgba(255,127,0,1)\"}},\"c55c1bbc2e0b.5\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[0.0563896678038514,0.40575736788088,0.332288867799524,-0.296302015498396,-0.541622584630338],\"y\":[0.3389212831,0.166723444082617,-0.432949667846504,-0.383418014964565,0.210868729037469],\"type\":\"scatter\",\"mode\":\"text\",\"legendgroup\":\"Foodland\",\"showlegend\":false,\"hoverinfo\":\"skip\",\"text\":[\"Price: 29%\",\"Access: 37%\",\"Range: 47%\",\"Fresh: 41%\",\"Quality: 51%\"],\"textfont\":{\"family\":\"Arial\",\"size\":10,\"color\":\"#2C2C2C\"}},\"c55c60760b94\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[4.76648243997289e-17,0.80032679259013,0.457547120602894,-0.457547120602894,-0.89032679259013,4.76648243997289e-17],\"y\":[0.778425656,0.240546756561467,-0.629759584561467,-0.629759584561467,0.240546756561467,0.778425656],\"name\":\"Outer\",\"showlegend\":false,\"type\":\"scatter\",\"mode\":\"markers\",\"opacity\":0,\"hoverinfo\":\"none\"},\"c55c60760b94.1\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[1.41138372302958e-17,0.387842195943304,0.175084968517849,-0.206350141887312,-0.408077441213683,1.41138372302958e-17],\"y\":[0.230496454,0.126017568492202,-0.240983785214232,-0.284016604580358,0.132592398238652,0.230496454],\"name\":\"IGA\",\"type\":\"scatter\",\"mode\":\"lines\",\"fill\":\"toself\",\"fillcolor\":\"rgba(255,255,51,0)\",\"legendgroup\":\"IGA\",\"showlegend\":true,\"hoverinfo\":\"skip\",\"line\":{\"width\":2,\"color\":\"rgba(255,255,51,1)\"}},\"c55c60760b94.2\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[2.69572180232111e-17,0.40693047545603,0.272666603682746,-0.25611831918678,-0.516006440516421,2.69572180232111e-17],\"y\":[0.440244779833333,0.132219726473086,-0.375293383625211,-0.352516624030149,0.167660655906819,0.440244779833333],\"name\":\"Average\",\"type\":\"scatter\",\"mode\":\"lines\",\"fill\":\"toself\",\"fillcolor\":\"rgba(153,153,153,0.2)\",\"legendgroup\":\"Average\",\"showlegend\":true,\"hoverinfo\":\"skip\",\"line\":{\"width\":0,\"color\":\"rgba(153,153,153,1)\"}},\"c55c60760b94.3\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[2.69572180232111e-17,0.40693047545603,0.272666603682746,-0.25611831918678,-0.516006440516421],\"y\":[0.440244779833333,0.132219726473086,-0.375293383625211,-0.352516624030149,0.167660655906819],\"type\":\"scatter\",\"mode\":\"markers\",\"name\":\"Average\",\"legendgroup\":\"Average\",\"opacity\":0,\"showlegend\":false,\"text\":[\"Average: Price: 0.4\",\"Average: Access: 0.4\",\"Average: Range: 0.5\",\"Average: Fresh: 0.4\",\"Average: Quality: 0.5\"],\"hoverinfo\":\"all+text\",\"marker\":{\"size\":5,\"color\":\"rgba(153,153,153,1)\"}},\"c55c60760b94.4\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[1.41138372302958e-17,0.387842195943304,0.175084968517849,-0.206350141887312,-0.408077441213683],\"y\":[0.230496454,0.126017568492202,-0.240983785214232,-0.284016604580358,0.132592398238652],\"type\":\"scatter\",\"mode\":\"markers\",\"name\":\"IGA\",\"legendgroup\":\"IGA\",\"opacity\":0,\"showlegend\":false,\"text\":[\"IGA: Price: 0.2\",\"IGA: Access: 0.4\",\"IGA: Range: 0.3\",\"IGA: Fresh: 0.4\",\"IGA: Quality: 0.4\"],\"hoverinfo\":\"all+text\",\"marker\":{\"size\":5,\"color\":\"rgba(255,255,51,1)\"}},\"c55c60760b94.5\":{\"alpha\":1,\"sizes\":[10,100],\"x\":[0.0583133925971652,0.446155588540469,0.233398361115015,-0.264663534484477,-0.466390833810848],\"y\":[0.2809425595,0.176463673992202,-0.291429890714232,-0.334462710080358,0.183038503738652],\"type\":\"scatter\",\"mode\":\"text\",\"legendgroup\":\"IGA\",\"showlegend\":false,\"hoverinfo\":\"skip\",\"text\":[\"Price: 23%\",\"Access: 41%\",\"Range: 30%\",\"Fresh: 35%\",\"Quality: 43%\"],\"textfont\":{\"family\":\"Arial\",\"size\":10,\"color\":\"#2C2C2C\"}}},\"source\":\"A\",\"config\":{\"modeBarButtonsToAdd\":[{\"name\":\"Collaborate\",\"icon\":{\"width\":1000,\"ascent\":500,\"descent\":-50,\"path\":\"M487 375c7-10 9-23 5-36l-79-259c-3-12-11-23-22-31-11-8-22-12-35-12l-263 0c-15 0-29 5-43 15-13 10-23 23-28 37-5 13-5 25-1 37 0 0 0 3 1 7 1 5 1 8 1 11 0 2 0 4-1 6 0 3-1 5-1 6 1 2 2 4 3 6 1 2 2 4 4 6 2 3 4 5 5 7 5 7 9 16 13 26 4 10 7 19 9 26 0 2 0 5 0 9-1 4-1 6 0 8 0 2 2 5 4 8 3 3 5 5 5 7 4 6 8 15 12 26 4 11 7 19 7 26 1 1 0 4 0 9-1 4-1 7 0 8 1 2 3 5 6 8 4 4 6 6 6 7 4 5 8 13 13 24 4 11 7 20 7 28 1 1 0 4 0 7-1 3-1 6-1 7 0 2 1 4 3 6 1 1 3 4 5 6 2 3 3 5 5 6 1 2 3 5 4 9 2 3 3 7 5 10 1 3 2 6 4 10 2 4 4 7 6 9 2 3 4 5 7 7 3 2 7 3 11 3 3 0 8 0 13-1l0-1c7 2 12 2 14 2l218 0c14 0 25-5 32-16 8-10 10-23 6-37l-79-259c-7-22-13-37-20-43-7-7-19-10-37-10l-248 0c-5 0-9-2-11-5-2-3-2-7 0-12 4-13 18-20 41-20l264 0c5 0 10 2 16 5 5 3 8 6 10 11l85 282c2 5 2 10 2 17 7-3 13-7 17-13z m-304 0c-1-3-1-5 0-7 1-1 3-2 6-2l174 0c2 0 4 1 7 2 2 2 4 4 5 7l6 18c0 3 0 5-1 7-1 1-3 2-6 2l-173 0c-3 0-5-1-8-2-2-2-4-4-4-7z m-24-73c-1-3-1-5 0-7 2-2 3-2 6-2l174 0c2 0 5 0 7 2 3 2 4 4 5 7l6 18c1 2 0 5-1 6-1 2-3 3-5 3l-174 0c-3 0-5-1-7-3-3-1-4-4-5-6z\"},\"click\":\"function(gd) { \\n // is this being viewed in RStudio?\\n if (location.search == '?viewer_pane=1') {\\n alert('To learn about plotly for collaboration, visit:\\\\n https://cpsievert.github.io/plotly_book/plot-ly-for-collaboration.html');\\n } else {\\n window.open('https://cpsievert.github.io/plotly_book/plot-ly-for-collaboration.html', '_blank');\\n }\\n }\"}],\"cloud\":false,\"displayModeBar\":false},\"highlight\":{\"on\":\"plotly_click\",\"persistent\":false,\"dynamic\":false,\"selectize\":false,\"opacityDim\":0.2,\"selected\":{\"opacity\":1}},\"subplot\":true,\"base_url\":\"https://plot.ly\"},\"evals\":[\"config.modeBarButtonsToAdd.0.click\"],\"jsHooks\":{\"render\":[{\"code\":\"function(el, x) { var ctConfig = crosstalk.var('plotlyCrosstalkOpts').set({\\\"on\\\":\\\"plotly_click\\\",\\\"persistent\\\":false,\\\"dynamic\\\":false,\\\"selectize\\\":false,\\\"opacityDim\\\":0.2,\\\"selected\\\":{\\\"opacity\\\":1}}); }\",\"data\":null}]}}</script>\n<script type=\"application/htmlwidget-sizing\" data-for=\"htmlwidget-c55c610b6d1e\">{\"viewer\":{\"width\":\"100%\",\"height\":400,\"padding\":15,\"fill\":true},\"browser\":{\"width\":\"100%\",\"height\":400,\"padding\":40,\"fill\":true}}</script>","htmlwidget-head":"{\"stylesheets\":[\"https://rserverhtmlwidgetasset.azureedge.net/crosstalk-b25ccf47e9892cf2654d5ded8a45d9b7.css\",\"https://rserverhtmlwidgetasset.azureedge.net/plotly-htmlwidgets-ef6d87e1454c6f9f50a1a5a3e8b42646.css\"],\"javascript\":[\"https://rserverhtmlwidgetasset.azureedge.net/htmlwidgets-cd5c5716917807e1b69e2493221698b2.js\",\"https://rserverhtmlwidgetasset.azureedge.net/plotly-4ab51328a91fb22cf606710cfee204c9.js\",\"https://rserverhtmlwidgetasset.azureedge.net/typedarray.min-830ee97537deb99885d830da3312e14d.js\",\"https://rserverhtmlwidgetasset.azureedge.net/jquery.min-91a24ea414e8c447d647cecab86866c2.js\",\"https://rserverhtmlwidgetasset.azureedge.net/crosstalk.min-b1936a0f8f135773de79f3a54af76d20.js\",\"https://rserverhtmlwidgetasset.azureedge.net/plotly-latest.min-325c88418cec885e677571e996ab3377.js\"],\"attachments\":[],\"widget-cannot-re-render\":false}","warning":""},"secondsTaken":3.3009011,"updated":"2018-05-15T00:50:45.5693264Z","lastUpdatedMessage":null,"executedCode":"# VERSION 1.1.7\nlibrary(flipChart)\n# Processing all the selections from the 'Inputs' and 'Charts' tab.\npd <- PrepareData(formChartType, QFilter, QPopulationWeight, input.data.table = get0(\"formTable\"), input.data.raw = if (!exists(\"formX\")) NULL else list(X = get0(\"formX\"), Y = get0(\"formY\"), Z1 = get0(\"formZ\"), Z2 = get0(\"formZ2\"), labels = get0(\"formScatterLabels\")), input.data.pasted = if (length(get0(\"formPastedData\")) == 0) NULL else list(get0(\"formPastedData\"), !get0(\"formNotDataFrame\", ifnotfound = TRUE), get0(\"formPastedColumnNames\"), get0(\"formPastedRowNames\")), first.aggregate = get0(\"formFirstAggregate\", ifnotfound = FALSE), group.by.last = get0(\"formGroupByLastColumn\", ifnotfound = FALSE), tidy = get0(\"formTidy\", ifnotfound = FALSE), tidy.labels = get0(\"formTidyLabels\", ifnotfound = FALSE), transpose = get0(\"formTranspose\"), row.names.to.remove = get0(\"formIgnoreRows\"), column.names.to.remove = get0(\"formIgnoreColumns\"), hide.empty.rows.and.columns = get0(\"formHideEmpty\", ifnotfound = FALSE), as.percentages = get0(\"formAsPercentages\", ifnotfound = FALSE), show.labels = !get0(\"formNames\", ifnotfound=TRUE), date.format = get0(\"formDateFormat\", ifnotfound = \"Automatic\"), scatter.mult.yvals = get0(\"formScatterMultYvals\", ifnotfound = FALSE))\npc <- PrepareColors(pd$data, formChartType, scatter.colors.column = pd$scatter.variable.indices[\"colors\"], palette = get0(\"formPalette\"), palette.custom.color = get0(\"formCustomColor\"), palette.custom.gradient.start = get0(\"formCustomGradientStart\"), palette.custom.gradient.end = get0(\"formCustomGradientEnd\"), palette.custom.palette = get0(\"formCustomPalette\"), fit.palette = get0(\"formFitPalette\"), fit.palette.custom.color = get0(\"formFitCustomColor\"), fit.palette.custom.gradient.start = get0(\"formFitCustomGradientStart\"), fit.palette.custom.gradient.end = get0(\"formFitCustomGradientEnd\"), fit.palette.custom.palette = get0(\"formFitCustomPalette\"), subslice.palette = get0(\"formSubslicePalette\"), subslice.palette.custom.color = get0(\"formSubsliceCustomColor\"), subslice.palette.custom.gradient.start = get0(\"formSubsliceCustomGradientStart\"), subslice.palette.custom.gradient.end = get0(\"formSubsliceCustomGradientEnd\"), subslice.palette.custom.palette = get0(\"formSubsliceCustomPalette\")) \npn <- PrepareNumbers(categories.format.list = list(get0(\"formCategoriesNumberType\"), get0(\"formCategoriesDateType\"), get0(\"formCategoriesNumberCustom\"), get0(\"formCategoriesSeparateThousands\"), get0(\"formCategoriesDecimals\")), values.format.list = list(get0(\"formValuesNumberType\"), get0(\"formValuesDateType\"), get0(\"formValuesNumberCustom\"), get0(\"formValuesSeparateThousands\"), get0(\"formValuesDecimals\")), hover.format.list = list(get0(\"formHoverNumberType\"), get0(\"formHoverDateType\"), get0(\"formHoverNumberCustom\"), get0(\"formHoverSeparateThousands\"), get0(\"formHoverDecimals\")), data.labels.format.list = list(get0(\"formDataLabelNumberType\"), get0(\"formDataLabelDateType\"), get0(\"formDataLabelCustom\"), get0(\"formDataLabelSeparateThousands\"), get0(\"formDataLabelDecimals\")), !is.null(attr(pd$data, \"statistic\")) && grepl(\"%\", attr(pd$data, \"statistic\"), fixed = TRUE))\n\n# Creating the chart.\nchart.6 <- if(formChartType== \"Table\") pd$data else CChart(chart.type = formChartType,\n x = pd$data,\n weights = pd$weights,\n small.multiples = get0(\"formSmallMultiples\", ifnotfound=FALSE), \n nrows = get0(\"formSmallMultNRows\"),\n x.order = get0(\"formSmallMultXOrder\"),\n average.show = get0(\"formSmallMultAverage\", ifnotfound = FALSE),\n average.color = get0(\"formSmallMultAverageColor\"),\n share.axes = get0(\"formSmallMultShareAxes\", ifnotfound = TRUE),\n paneltitle.show = get0(\"formSmallMultTitle\", ifnotfound = TRUE),\n paneltitle.font.family = get0(\"formSmallMultTitleFontFamily\"),\n paneltitle.font.color = get0(\"formSmallMultTitleFontColor\"),\n paneltitle.font.size = get0(\"formSmallMultTitleFontSize\"),\n paneltitle.wrap = get0(\"formSmallMultTitleWrap\"),\n paneltitle.wrap.nchar = get0(\"formSmallMultTitleWrapNchar\"),\n pad.left = get0(\"formSmallMultPadLeft\", ifnotfound=0),\n pad.right = get0(\"formSmallMultPadRight\", ifnotfound=0),\n pad.top = get0(\"formSmallMultPadTop\"),\n pad.bottom = get0(\"formSmallMultPadBottom\"),\n max.label.length = 0,\n #Scatter plot inputs.\n scatter.max.labels = get0(\"formScatterMaxLab\", ifnotfound=20),\n scatter.labels.as.hovertext= if (exists(\"formScatterLabelType\")) formScatterLabelType!=\"On chart\" else TRUE,\n scatter.colors.as.categorical = if (exists(\"formScatterColorType\")) formScatterColorType==\"Categories\" else TRUE,\n scatter.sizes.as.diameter = if (exists(\"formScatterSizeType\")) formScatterSizeType==\"Diameter\" else FALSE,\n scatter.x.column = pd$scatter.variable.indices[\"x\"],\n scatter.y.column = pd$scatter.variable.indices[\"y\"],\n scatter.sizes.column = pd$scatter.variable.indices[\"sizes\"],\n scatter.colors.column = pd$scatter.variable.indices[\"colors\"],\n trend.lines = get0(\"formTrendLines\", ifnotfound=FALSE),\n logos = get0(\"formLogos\"),\n logo.size = get0(\"formLogoSize\"),\n # Chart: DATA SERIES\n colors = pc$series.colors,\n pie.subslice.colors = pc$subslice.colors,\n #Chart: FIT LINE\n fit.type = get0(\"formFit\", ifnotfound=\"None\"),\n fit.ignore.last = get0(\"formFitIgnoreLast\"),\n fit.line.type = get0(\"formFitLineType\"),\n fit.line.colors = if (isTRUE(get0(\"formSmallMultiples\"))) NULL else pc$fit.line.colors,\n fit.line.width = get0(\"formFitLineWidth\", ifnotfound=1),\n # Chart: DATA LABELS\n data.label.show = get0(\"formDataLabelShow\", ifnotfound = FALSE),\n data.label.format = pn$data.labels.number.format,\n data.label.font.size = get0(\"formDataLabelFontSize\", ifnotfound = 10),\n data.label.font.family = get0(\"formDataLabelFontFamily\", ifnotfound = get0(\"formFont\")),\n data.label.font.color = get0(\"formDataLabelFontColor\"),\n data.label.prefix = get0(\"formPrefix\", ifnotfound=\"\"),\n data.label.suffix = get0(\"formSuffix\", ifnotfound=\"\"),\n data.label.position = get0(\"formDataLabelPosition\", ifnotfound=\"top middle\"),\n data.label.align.horizontal = get0(\"formDataLabelHorizAlign\", ifnotfound=\"Default\"),\n # Chart: FONT\n global.font.family = get0(\"formFont\"),\n global.font.color = get0(\"formFontColor\"),\n #Chart: GRIDLINES\n grid.show = get0(\"formShowGrid\", ifnotfound=TRUE),\n # Chart: LEGEND\n legend.show = get0(\"formLegendShow\", ifnotfound=TRUE),\n legend.title = get0(\"formLegendTitle\"),\n legend.font.family = get0(\"formLegendFontFamily\"),\n legend.font.color = get0(\"formLegendFontColor\"),\n legend.font.size = get0(\"formLegendFontSize\"),\n legend.x.position = get0(\"formLegendXPos\", ifnotfound=1.02),\n legend.y.position = get0(\"formLegendYPos\", ifnotfound=1.0),\n legend.width = get0(\"formLegendWidth\", ifnotfound=250),\n # Chart: TITLE\n title = get0(\"formTitle\", ifnotfound=\"\"),\n title.font.family = get0(\"formTitleFontFamily\"),\n title.font.color = get0(\"formTitleFontColor\"),\n title.font.size = get0(\"formTitleFontSize\"),\n subtitle = get0(\"formSubtitle\", ifnotfound=\"\"),\n subtitle.font.family = get0(\"formSubtitleFontFamily\"),\n subtitle.font.color = get0(\"formSubtitleFontColor\"),\n subtitle.font.size = get0(\"formSubtitleFontSize\"),\n footer = get0(\"formFooter\", ifnotfound=\"\"),\n footer.font.family = get0(\"formFooterFontFamily\"),\n footer.font.color = get0(\"formFooterFontColor\"),\n footer.font.size = get0(\"formFooterFontSize\"),\n footer.wrap = get0(\"formFooterWrap\", ifnotfound=FALSE),\n footer.wrap.nchar = get0(\"formFooterWrapNchar\"),\n #Chart: CATEGORIES_AXIS\n categories.axis.show = get0(\"formCategoriesAxisShow\", ifnotfound=TRUE),\n categories.tick.show = get0(\"formCategoriesAxisShow\", ifnotfound=TRUE),\n categories.tick.format = pn$categories.number.format,\n categories.tick.prefix = paste0(\"\", get0(\"formCategoriesPrefix\"), get0(\"formCategoriesCurrency\")), # currency is just another prefix\n categories.tick.suffix = get0(\"formCategoriesSuffix\", ifnotfound=\"\"),\n categories.tick.interval = get0(\"formCategoriesTickInterval\", ifnotfound=0),\n categories.tick.units = get0(\"formCategoriesTickUnits\"),\n categories.title = paste0(\"\", if (sum(nchar(get0(\"formCategoriesTitle\", ifnotfound = \" \"))) > 0) get0(\"formCategoriesTitle\", ifnotfound = \" \") else pd$categories.title),\n categories.title.font.family = get0(\"formCategoriesTitleFontFamily\"),\n categories.title.font.color = get0(\"formCategoriesTitleFontColor\"),\n categories.title.font.size = get0(\"formCategoriesTitleFontSize\", ifnotfound = 0), \n categories.tick.font.family = get0(\"formCategoriesTickFontFamily\"),\n categories.tick.font.color = get0(\"formCategoriesTickFontColor\"),\n categories.tick.font.size = get0(\"formCategoriesTickFontSize\", ifnotfound=10),\n categories.tick.angle = if (!exists(\"formCategoriesTickAngle\")) NULL else switch(get0(\"formCategoriesTickAngle\"), Automatic=NULL, Horizontal=0, Vertical=90, Diagonal=45),\n categories.tick.label.wrap = get0(\"formLabelWrap\", ifnotfound=FALSE),\n categories.tick.label.wrap.nchar = get0(\"formLabelWrapNchar\", ifnotfound=100),\n categories.tick.align.horizontal = get0(\"formCategoriesTickHorizAlign\", ifnotfound = \"Default\"),\n #Chart: VALUES_AXIS\n values.axis.show = get0(\"formValuesAxisShow\"),\n values.tick.show = get0(\"formValuesAxisShow\", ifnotfound=TRUE),\n values.tick.format = pn$values.number.format,\n values.tick.prefix = paste0(\"\", get0(\"formValuesPrefix\"), get0(\"formValuesCurrency\")), # currency is just another prefix\n values.tick.suffix = get0(\"formValuesSuffix\", ifnotfound=\"\"),\n values.title = paste0(\"\", if (sum(nchar(get0(\"formValuesTitle\", ifnotfound=\" \"))) > 0) get0(\"formValuesTitle\", ifnotfound = \" \") else pd$values.title),\n values.title.font.family = get0(\"formValuesTitleFontFamily\"),\n values.title.font.color = get0(\"formValuesTitleFontColor\"),\n values.title.font.size = get0(\"formValuesTitleFontSize\", ifnotfound = 0),\n values.bounds.minimum = if (sum(nchar(get0(\"formValuesMin\"))) == 0) NULL else formValuesMin, \n values.bounds.maximum = if (sum(nchar(get0(\"formValuesMax\"))) == 0) NULL else formValuesMax, \n values.number.ticks = get0(\"formValuesNumberTicks\"),\n values.tick.font.size = get0(\"formValuesTickFontSize\", ifnotfound=10),\n values.tick.font.family = get0(\"formValuesTickFontFamily\"),\n values.tick.font.color = get0(\"formValuesTickFontColor\"),\n # Chart: HOVER\n values.hovertext.format = pn$hover.number.format,\n # Chart: MARGINS\n margin.top = get0(\"formMarginTop\"),\n margin.left = get0(\"formMarginLeft\"),\n margin.bottom = get0(\"formMarginBottom\"),\n margin.right = get0(\"formMarginRight\"),\n # Chart: APPEARANCE\n type = if(get0(\"formStackSeries\", ifnotfound=FALSE)) \"Stacked\" else (if(formChartType == \"Donut\") \"Donut\" else formChartType),\n adjust = get0(\"formBandwidth\"),\n automatic.lower.density = get0(\"formAutomaticLower\"),\n pie.inner.radius = get0(\"formPieRadius\"),\n pie.border.color = get0(\"formBorderColor\"),\n density.color = get0(\"formDensityColor\"),\n vertical = get0(\"formVertical\"),\n show.mean = get0(\"formShowMean\"),\n show.median = get0(\"formShowMedian\"),\n show.quartiles = get0(\"formShowQuartiles\"),\n show.range = get0(\"formShowRange\"),\n show.values = get0(\"formShowValues\", ifnotfound = FALSE),\n histogram.cumulative = get0(\"formHistogramCumulative\"),\n histogram.counts = get0(\"formHistogramCounts\"),\n maximum.bins = get0(\"formMaximumBins\"),\n box.points = get0(\"formBoxPoints\"),\n mean.color = get0(\"formMeanColor\"),\n median.color = get0(\"formMedianColor\"),\n quartile.color = get0(\"formQuartilesColor\"),\n range.color = get0(\"formRangeColor\"),\n values.color = get0(\"formValuesColor\"),\n window.start = get0(\"formWindowStart\"),\n range.bars = get0(\"formRangeBars\"),\n line.thickness = get0(\"formLineThickness\"),\n opacity = get0(\"formFillOpacity\"),\n # BarPictograph parameters\n image = get0(\"formIcon\"),\n custom.image = get0(\"formCustomIcon\"),\n base.image = get0(\"formBaseImage\", ifnotfound = \"\"), \n hide.base.image = get0(\"formHideBase\", ifnotfound = FALSE),\n base.icon.color = get0(\"formBaseColor\", ifnotfound = \"\"),\n scale = if (exists(\"formIconScale\")) as.numeric(formIconScale), \n total.icons = if (exists(\"formTotalIcons\")) as.numeric(formTotalIcons),\n icon.ncol = if (exists(\"formIconNCol\")) as.numeric(formIconNCol),\n fix.icon.nrow = get0(\"formFixNRows\", ifnotfound = TRUE),\n fill.direction = get0(\"formFillDirection\"),\n label.color.asIcon = get0(\"formLabelColorAsIcon\", ifnotfound = FALSE),\n categories.tick.align = get0(\"formCategoriesTickAlign\"),\n pad.row = get0(\"formIconPadding\", ifnotfound = 0),\n graphic.width.inch = QOutputSizeWidth,\n graphic.height.inch = QOutputSizeHeight,\n # GeographicMap parameters\n mapping.package = get0(\"formMapPackage\"),\n high.resolution = get0(\"formHighRes\", ifnotfound = TRUE),\n treat.NA.as.0 = get0(\"formNAasZero\", ifnotfound = FALSE),\n color.NA = get0(\"formNAColor\"), \n ocean.color = get0(\"formOceanColor\"),\n # Heat parameters\n sort.rows = get0(\"formSortRows\"),\n sort.columns = get0(\"formSortColumns\"),\n standardization = get0(\"formStandardization\"),\n left.columns = get0(\"formLeftColumns\"),\n left.column.headings = get0(\"formLeftColumnHeadings\"),\n right.columns = get0(\"formRightColumns\"),\n right.column.headings = get0(\"formRightColumnHeadings\"),\n # General arguments\n warn.if.no.match = FALSE)","lastSavedCode":"# VERSION 1.1.7\nlibrary(flipChart)\n# Processing all the selections from the 'Inputs' and 'Charts' tab.\npd <- PrepareData(formChartType, QFilter, QPopulationWeight, input.data.table = get0(\"formTable\"), input.data.raw = if (!exists(\"formX\")) NULL else list(X = get0(\"formX\"), Y = get0(\"formY\"), Z1 = get0(\"formZ\"), Z2 = get0(\"formZ2\"), labels = get0(\"formScatterLabels\")), input.data.pasted = if (length(get0(\"formPastedData\")) == 0) NULL else list(get0(\"formPastedData\"), !get0(\"formNotDataFrame\", ifnotfound = TRUE), get0(\"formPastedColumnNames\"), get0(\"formPastedRowNames\")), first.aggregate = get0(\"formFirstAggregate\", ifnotfound = FALSE), group.by.last = get0(\"formGroupByLastColumn\", ifnotfound = FALSE), tidy = get0(\"formTidy\", ifnotfound = FALSE), tidy.labels = get0(\"formTidyLabels\", ifnotfound = FALSE), transpose = get0(\"formTranspose\"), row.names.to.remove = get0(\"formIgnoreRows\"), column.names.to.remove = get0(\"formIgnoreColumns\"), hide.empty.rows.and.columns = get0(\"formHideEmpty\", ifnotfound = FALSE), as.percentages = get0(\"formAsPercentages\", ifnotfound = FALSE), show.labels = !get0(\"formNames\", ifnotfound=TRUE), date.format = get0(\"formDateFormat\", ifnotfound = \"Automatic\"), scatter.mult.yvals = get0(\"formScatterMultYvals\", ifnotfound = FALSE))\npc <- PrepareColors(pd$data, formChartType, scatter.colors.column = pd$scatter.variable.indices[\"colors\"], palette = get0(\"formPalette\"), palette.custom.color = get0(\"formCustomColor\"), palette.custom.gradient.start = get0(\"formCustomGradientStart\"), palette.custom.gradient.end = get0(\"formCustomGradientEnd\"), palette.custom.palette = get0(\"formCustomPalette\"), fit.palette = get0(\"formFitPalette\"), fit.palette.custom.color = get0(\"formFitCustomColor\"), fit.palette.custom.gradient.start = get0(\"formFitCustomGradientStart\"), fit.palette.custom.gradient.end = get0(\"formFitCustomGradientEnd\"), fit.palette.custom.palette = get0(\"formFitCustomPalette\"), subslice.palette = get0(\"formSubslicePalette\"), subslice.palette.custom.color = get0(\"formSubsliceCustomColor\"), subslice.palette.custom.gradient.start = get0(\"formSubsliceCustomGradientStart\"), subslice.palette.custom.gradient.end = get0(\"formSubsliceCustomGradientEnd\"), subslice.palette.custom.palette = get0(\"formSubsliceCustomPalette\")) \npn <- PrepareNumbers(categories.format.list = list(get0(\"formCategoriesNumberType\"), get0(\"formCategoriesDateType\"), get0(\"formCategoriesNumberCustom\"), get0(\"formCategoriesSeparateThousands\"), get0(\"formCategoriesDecimals\")), values.format.list = list(get0(\"formValuesNumberType\"), get0(\"formValuesDateType\"), get0(\"formValuesNumberCustom\"), get0(\"formValuesSeparateThousands\"), get0(\"formValuesDecimals\")), hover.format.list = list(get0(\"formHoverNumberType\"), get0(\"formHoverDateType\"), get0(\"formHoverNumberCustom\"), get0(\"formHoverSeparateThousands\"), get0(\"formHoverDecimals\")), data.labels.format.list = list(get0(\"formDataLabelNumberType\"), get0(\"formDataLabelDateType\"), get0(\"formDataLabelCustom\"), get0(\"formDataLabelSeparateThousands\"), get0(\"formDataLabelDecimals\")), !is.null(attr(pd$data, \"statistic\")) && grepl(\"%\", attr(pd$data, \"statistic\"), fixed = TRUE))\n\n# Creating the chart.\nchart.6 <- if(formChartType== \"Table\") pd$data else CChart(chart.type = formChartType,\n x = pd$data,\n weights = pd$weights,\n small.multiples = get0(\"formSmallMultiples\", ifnotfound=FALSE), \n nrows = get0(\"formSmallMultNRows\"),\n x.order = get0(\"formSmallMultXOrder\"),\n average.show = get0(\"formSmallMultAverage\", ifnotfound = FALSE),\n average.color = get0(\"formSmallMultAverageColor\"),\n share.axes = get0(\"formSmallMultShareAxes\", ifnotfound = TRUE),\n paneltitle.show = get0(\"formSmallMultTitle\", ifnotfound = TRUE),\n paneltitle.font.family = get0(\"formSmallMultTitleFontFamily\"),\n paneltitle.font.color = get0(\"formSmallMultTitleFontColor\"),\n paneltitle.font.size = get0(\"formSmallMultTitleFontSize\"),\n paneltitle.wrap = get0(\"formSmallMultTitleWrap\"),\n paneltitle.wrap.nchar = get0(\"formSmallMultTitleWrapNchar\"),\n pad.left = get0(\"formSmallMultPadLeft\", ifnotfound=0),\n pad.right = get0(\"formSmallMultPadRight\", ifnotfound=0),\n pad.top = get0(\"formSmallMultPadTop\"),\n pad.bottom = get0(\"formSmallMultPadBottom\"),\n max.label.length = 0,\n #Scatter plot inputs.\n scatter.max.labels = get0(\"formScatterMaxLab\", ifnotfound=20),\n scatter.labels.as.hovertext= if (exists(\"formScatterLabelType\")) formScatterLabelType!=\"On chart\" else TRUE,\n scatter.colors.as.categorical = if (exists(\"formScatterColorType\")) formScatterColorType==\"Categories\" else TRUE,\n scatter.sizes.as.diameter = if (exists(\"formScatterSizeType\")) formScatterSizeType==\"Diameter\" else FALSE,\n scatter.x.column = pd$scatter.variable.indices[\"x\"],\n scatter.y.column = pd$scatter.variable.indices[\"y\"],\n scatter.sizes.column = pd$scatter.variable.indices[\"sizes\"],\n scatter.colors.column = pd$scatter.variable.indices[\"colors\"],\n trend.lines = get0(\"formTrendLines\", ifnotfound=FALSE),\n logos = get0(\"formLogos\"),\n logo.size = get0(\"formLogoSize\"),\n # Chart: DATA SERIES\n colors = pc$series.colors,\n pie.subslice.colors = pc$subslice.colors,\n #Chart: FIT LINE\n fit.type = get0(\"formFit\", ifnotfound=\"None\"),\n fit.ignore.last = get0(\"formFitIgnoreLast\"),\n fit.line.type = get0(\"formFitLineType\"),\n fit.line.colors = if (isTRUE(get0(\"formSmallMultiples\"))) NULL else pc$fit.line.colors,\n fit.line.width = get0(\"formFitLineWidth\", ifnotfound=1),\n # Chart: DATA LABELS\n data.label.show = get0(\"formDataLabelShow\", ifnotfound = FALSE),\n data.label.format = pn$data.labels.number.format,\n data.label.font.size = get0(\"formDataLabelFontSize\", ifnotfound = 10),\n data.label.font.family = get0(\"formDataLabelFontFamily\", ifnotfound = get0(\"formFont\")),\n data.label.font.color = get0(\"formDataLabelFontColor\"),\n data.label.prefix = get0(\"formPrefix\", ifnotfound=\"\"),\n data.label.suffix = get0(\"formSuffix\", ifnotfound=\"\"),\n data.label.position = get0(\"formDataLabelPosition\", ifnotfound=\"top middle\"),\n data.label.align.horizontal = get0(\"formDataLabelHorizAlign\", ifnotfound=\"Default\"),\n # Chart: FONT\n global.font.family = get0(\"formFont\"),\n global.font.color = get0(\"formFontColor\"),\n #Chart: GRIDLINES\n grid.show = get0(\"formShowGrid\", ifnotfound=TRUE),\n # Chart: LEGEND\n legend.show = get0(\"formLegendShow\", ifnotfound=TRUE),\n legend.title = get0(\"formLegendTitle\"),\n legend.font.family = get0(\"formLegendFontFamily\"),\n legend.font.color = get0(\"formLegendFontColor\"),\n legend.font.size = get0(\"formLegendFontSize\"),\n legend.x.position = get0(\"formLegendXPos\", ifnotfound=1.02),\n legend.y.position = get0(\"formLegendYPos\", ifnotfound=1.0),\n legend.width = get0(\"formLegendWidth\", ifnotfound=250),\n # Chart: TITLE\n title = get0(\"formTitle\", ifnotfound=\"\"),\n title.font.family = get0(\"formTitleFontFamily\"),\n title.font.color = get0(\"formTitleFontColor\"),\n title.font.size = get0(\"formTitleFontSize\"),\n subtitle = get0(\"formSubtitle\", ifnotfound=\"\"),\n subtitle.font.family = get0(\"formSubtitleFontFamily\"),\n subtitle.font.color = get0(\"formSubtitleFontColor\"),\n subtitle.font.size = get0(\"formSubtitleFontSize\"),\n footer = get0(\"formFooter\", ifnotfound=\"\"),\n footer.font.family = get0(\"formFooterFontFamily\"),\n footer.font.color = get0(\"formFooterFontColor\"),\n footer.font.size = get0(\"formFooterFontSize\"),\n footer.wrap = get0(\"formFooterWrap\", ifnotfound=FALSE),\n footer.wrap.nchar = get0(\"formFooterWrapNchar\"),\n #Chart: CATEGORIES_AXIS\n categories.axis.show = get0(\"formCategoriesAxisShow\", ifnotfound=TRUE),\n categories.tick.show = get0(\"formCategoriesAxisShow\", ifnotfound=TRUE),\n categories.tick.format = pn$categories.number.format,\n categories.tick.prefix = paste0(\"\", get0(\"formCategoriesPrefix\"), get0(\"formCategoriesCurrency\")), # currency is just another prefix\n categories.tick.suffix = get0(\"formCategoriesSuffix\", ifnotfound=\"\"),\n categories.tick.interval = get0(\"formCategoriesTickInterval\", ifnotfound=0),\n categories.tick.units = get0(\"formCategoriesTickUnits\"),\n categories.title = paste0(\"\", if (sum(nchar(get0(\"formCategoriesTitle\", ifnotfound = \" \"))) > 0) get0(\"formCategoriesTitle\", ifnotfound = \" \") else pd$categories.title),\n categories.title.font.family = get0(\"formCategoriesTitleFontFamily\"),\n categories.title.font.color = get0(\"formCategoriesTitleFontColor\"),\n categories.title.font.size = get0(\"formCategoriesTitleFontSize\", ifnotfound = 0), \n categories.tick.font.family = get0(\"formCategoriesTickFontFamily\"),\n categories.tick.font.color = get0(\"formCategoriesTickFontColor\"),\n categories.tick.font.size = get0(\"formCategoriesTickFontSize\", ifnotfound=10),\n categories.tick.angle = if (!exists(\"formCategoriesTickAngle\")) NULL else switch(get0(\"formCategoriesTickAngle\"), Automatic=NULL, Horizontal=0, Vertical=90, Diagonal=45),\n categories.tick.label.wrap = get0(\"formLabelWrap\", ifnotfound=FALSE),\n categories.tick.label.wrap.nchar = get0(\"formLabelWrapNchar\", ifnotfound=100),\n categories.tick.align.horizontal = get0(\"formCategoriesTickHorizAlign\", ifnotfound = \"Default\"),\n #Chart: VALUES_AXIS\n values.axis.show = get0(\"formValuesAxisShow\"),\n values.tick.show = get0(\"formValuesAxisShow\", ifnotfound=TRUE),\n values.tick.format = pn$values.number.format,\n values.tick.prefix = paste0(\"\", get0(\"formValuesPrefix\"), get0(\"formValuesCurrency\")), # currency is just another prefix\n values.tick.suffix = get0(\"formValuesSuffix\", ifnotfound=\"\"),\n values.title = paste0(\"\", if (sum(nchar(get0(\"formValuesTitle\", ifnotfound=\" \"))) > 0) get0(\"formValuesTitle\", ifnotfound = \" \") else pd$values.title),\n values.title.font.family = get0(\"formValuesTitleFontFamily\"),\n values.title.font.color = get0(\"formValuesTitleFontColor\"),\n values.title.font.size = get0(\"formValuesTitleFontSize\", ifnotfound = 0),\n values.bounds.minimum = if (sum(nchar(get0(\"formValuesMin\"))) == 0) NULL else formValuesMin, \n values.bounds.maximum = if (sum(nchar(get0(\"formValuesMax\"))) == 0) NULL else formValuesMax, \n values.number.ticks = get0(\"formValuesNumberTicks\"),\n values.tick.font.size = get0(\"formValuesTickFontSize\", ifnotfound=10),\n values.tick.font.family = get0(\"formValuesTickFontFamily\"),\n values.tick.font.color = get0(\"formValuesTickFontColor\"),\n # Chart: HOVER\n values.hovertext.format = pn$hover.number.format,\n # Chart: MARGINS\n margin.top = get0(\"formMarginTop\"),\n margin.left = get0(\"formMarginLeft\"),\n margin.bottom = get0(\"formMarginBottom\"),\n margin.right = get0(\"formMarginRight\"),\n # Chart: APPEARANCE\n type = if(get0(\"formStackSeries\", ifnotfound=FALSE)) \"Stacked\" else (if(formChartType == \"Donut\") \"Donut\" else formChartType),\n adjust = get0(\"formBandwidth\"),\n automatic.lower.density = get0(\"formAutomaticLower\"),\n pie.inner.radius = get0(\"formPieRadius\"),\n pie.border.color = get0(\"formBorderColor\"),\n density.color = get0(\"formDensityColor\"),\n vertical = get0(\"formVertical\"),\n show.mean = get0(\"formShowMean\"),\n show.median = get0(\"formShowMedian\"),\n show.quartiles = get0(\"formShowQuartiles\"),\n show.range = get0(\"formShowRange\"),\n show.values = get0(\"formShowValues\", ifnotfound = FALSE),\n histogram.cumulative = get0(\"formHistogramCumulative\"),\n histogram.counts = get0(\"formHistogramCounts\"),\n maximum.bins = get0(\"formMaximumBins\"),\n box.points = get0(\"formBoxPoints\"),\n mean.color = get0(\"formMeanColor\"),\n median.color = get0(\"formMedianColor\"),\n quartile.color = get0(\"formQuartilesColor\"),\n range.color = get0(\"formRangeColor\"),\n values.color = get0(\"formValuesColor\"),\n window.start = get0(\"formWindowStart\"),\n range.bars = get0(\"formRangeBars\"),\n line.thickness = get0(\"formLineThickness\"),\n opacity = get0(\"formFillOpacity\"),\n # BarPictograph parameters\n image = get0(\"formIcon\"),\n custom.image = get0(\"formCustomIcon\"),\n base.image = get0(\"formBaseImage\", ifnotfound = \"\"), \n hide.base.image = get0(\"formHideBase\", ifnotfound = FALSE),\n base.icon.color = get0(\"formBaseColor\", ifnotfound = \"\"),\n scale = if (exists(\"formIconScale\")) as.numeric(formIconScale), \n total.icons = if (exists(\"formTotalIcons\")) as.numeric(formTotalIcons),\n icon.ncol = if (exists(\"formIconNCol\")) as.numeric(formIconNCol),\n fix.icon.nrow = get0(\"formFixNRows\", ifnotfound = TRUE),\n fill.direction = get0(\"formFillDirection\"),\n label.color.asIcon = get0(\"formLabelColorAsIcon\", ifnotfound = FALSE),\n categories.tick.align = get0(\"formCategoriesTickAlign\"),\n pad.row = get0(\"formIconPadding\", ifnotfound = 0),\n graphic.width.inch = QOutputSizeWidth,\n graphic.height.inch = QOutputSizeHeight,\n # GeographicMap parameters\n mapping.package = get0(\"formMapPackage\"),\n high.resolution = get0(\"formHighRes\", ifnotfound = TRUE),\n treat.NA.as.0 = get0(\"formNAasZero\", ifnotfound = FALSE),\n color.NA = get0(\"formNAColor\"), \n ocean.color = get0(\"formOceanColor\"),\n # Heat parameters\n sort.rows = get0(\"formSortRows\"),\n sort.columns = get0(\"formSortColumns\"),\n standardization = get0(\"formStandardization\"),\n left.columns = get0(\"formLeftColumns\"),\n left.column.headings = get0(\"formLeftColumnHeadings\"),\n right.columns = get0(\"formRightColumns\"),\n right.column.headings = get0(\"formRightColumnHeadings\"),\n # General arguments\n warn.if.no.match = FALSE)","highlightedCodeSpans":[{"start":121,"length":13,"index":4},{"start":137,"length":7,"index":6},{"start":146,"length":17,"index":6},{"start":1302,"length":13,"index":4},{"start":3184,"length":13,"index":4},{"start":3242,"length":13,"index":4},{"start":10173,"length":13,"index":4},{"start":10813,"length":13,"index":4},{"start":10852,"length":13,"index":4}],"tableTransformations":"<TabularTransformer>\r\n <TabularTransform type=\"Truncation\" truncationHeaderType=\"Column\" />\r\n <TabularTransform />\r\n</TabularTransformer>","tabularFilteringOptions":null,"hasGuiControls":true,"guiControls":{"Code":"var chart_type_default = \"Bar\";\nvar default_aggregation = true; // when data is Variables, required even if FirstAggregate is not a control so that Table created from a chart has the same data as shown by the chart\nvar default_smallmultiples = true;\n\n// VERSION 2.1.0\nvar allow_control_groups = Q.fileFormatVersion() > 10.9; // Group controls for Displayr and later versions of Q\nvar controls = []; // All controls displayed must be inserted here\nif (allow_control_groups)\n form.group(\"OUTPUT\")\n// Chart type selector.\n// Separate words in chart types e.g. scatter plot not scatterplot\nvar qChartType = form.comboBox({name: \"formChartType\", label: \"Chart type\",\n alternatives: [\"Table\", \n \"Area\", \n \"Bar\",\n \"Bar Pictograph\",\n \"Bean\", \n \"Box\",\n \"Column\",\n \"Density\",\n \"Donut\",\n \"Geographic Map\",\n \"Heat\", \n \"Histogram\", \n \"Line\",\n \"Palm\", \n \"Pie\", \n \"Radar\", \n \"Stream\", \n \"Scatter\",\n \"Time Series\",\n \"Venn\", \n \"Violin\"], default_value: chart_type_default, required: true});\nvar chartType = qChartType.getValue();\ncontrols.push(qChartType);\n\n// Some constants and helper functions\nvar displayr = Q.isOnTheWeb();\nfunction isEmpty(x) { return (x == undefined || x.getValue() == null && (x.getValues() == null || x.getValues().length == 0)) }\nfunction isBlankSheet(x) { return (x.getValue() == null || x.getValue().length == 0) }\nfunction isEmptyString(x) { return (x == undefined || x == null || x == \"\") }\n\n// Default axis names\nvar categoriesAxisLabel = \"CATEGORIES (X) AXIS\";\nvar valuesAxisLabel = \"VALUES (Y) AXIS\";\nfunction SwappedXY() { categoriesAxisLabel = \"CATEGORIES (Y) AXIS\"; \n valuesAxisLabel = \"VALUES (X) AXIS\"; }\n\n// * Combo box alternatives *\ncategories_number_formats = [\"Automatic\", \"Number\", \"Category\", \"Percentage\", \"Date/Time\", \"Currency\", \"Metric units suffix\", \"Scientific\", \"Custom\"];\nvalues_number_formats = [\"Automatic\", \"Number\", \"Category\", \"Percentage\", \"Date/Time\", \"Currency\", \"Metric units suffix\", \"Scientific\", \"Custom\"];\nhover_number_formats = [\"Automatic\", \"Number\", \"Category\", \"Percentage\", \"Metric units suffix\", \"Scientific\", \"Custom\"]; // no currency since cannot add as prefix and no date because of charting requirements\ndata_label_formats = [\"Automatic\", \"Number\", \"Percentage\"];\ndate_formats = [\"YY (Year, 2 digit)\", \"DD Mon YY\", \"DD Month YY\", \"DD MM YY\", \"YYYY (Year, 4 digit)\", \"DD Mon YYYY\", \"DD Month YYYY\", \"DD MM YYYY\", \"Mon DD YY\", \"Month DD YY\", \"MM DD YY\", \"Mon DD YYYY\", \"Month DD YYYY\", \"MM DD YYYY\", \"YY Mon DD\", \"YY Month DD\", \"YY MM DD\", \"YYYY Mon DD\", \"YYYY Month DD\", \"YYYY MM DD\", \"Custom\"];\n \n// * Font alternatives *\nfont_families = [\"Andale Mono\", \"Arial\", \"Arial Black\", \"Century Gothic\", \"Comic Sans MS\",\n \"Courier New\", \"Georgia\", \"Impact\", \"Times New Roman\", \"Trebuchet MS\", \"Verdana\"];\n\n// * Palette alternatives *\npalettes = [\"Default colors\", \"Primary colors\", \"Rainbow\", \"Light pastels\", \"Strong colors\", \"Reds, dark to light\", \"Reds, light to dark\", \"Greens, dark to light\", \"Greens, light to dark\", \"Blues, dark to light\", \"Blues, light to dark\", \"Greys, dark to light\", \"Greys, light to dark\", \"Heat colors (red, yellow, white)\", \"Terrain colors (green, beige, grey)\", \"Custom color\", \"Custom gradient\", \"Custom palette\"];\ngradual_palettes = [\"Blues, light to dark\", \"Blues, dark to light\", \"Greys, light to dark\", \"Greys, dark to light\", \"Reds, light to dark\", \"Reds, dark to light\", \"Greens, light to dark\", \"Greens, dark to light\", \"Custom gradient\", \"Custom palette\"];\nline_subslice_palletes = [\"Group colors\"].concat(palettes);\n\n// *Controls linked to specific chart types*\n// - We uses lowercase camel to represent the input data controls. These are not the names of the actual controls.\n// - The input data controls for a specific chart type are store in 'input_data'.\n// - All other controls that modify the data are stored in 'INPUTS'.\n// - Other than for 'INPUTS', the name of an array of controls becomes the name of the group on the Charts tab. \n// - The names used to refer to individual controls in the arrays are the same as the names of the R parameters (where there is a one-to-one match)\n\n// Default controls (modified below for specific charts)\nAPPEARANCE = null; GRIDLINES = null; \nDATA_SERIES = ['Colors'];\nDATA_LABELS = ['DataLabelShow', 'DataLabelDecimals', 'DataLabelFont', 'DataLabelPrefix', 'DataLabelSuffix'];\nTITLE = ['Title', 'Subtitle', 'Footer'];\ntidy = true;\nxLabel = displayr ? \"Variables in 'Data'\" : \"Variables\";\nyLabel = 'Groups';\nINPUTS_data = ['pasted', 'table', 'r', 'variables'];\nvariables_types = ['variables'];\nCATEGORIES_AXIS = ['CategoriesTitle', 'CategoriesAxisShow', 'CategoriesTickFont', 'CategoriesTickAngle', \n 'CategoriesNumberFormat', 'LabelWrap','CategoriesPrefix'];\nVALUES_AXIS = ['ValuesTitle', 'ValuesAxisShow', 'ValuesTickFont', 'ValuesNumberFormat'];\nHOVER = ['HoverNumberFormat'];\nLEGEND = ['LegendShow', 'LegendFont', 'LegendPosition'];\nINPUTS = ['x', 'y', \"AsPercentages\", \"FirstAggregate\", \"DateFormat\"];\nFONT = ['GlobalFontFamily', 'GlobalFontColor'];\nfunction AddMargins() { MARGINS = ['Margin'];}\nif (chartType == \"Venn\")\n{\n FONT = null; DATA_SERIES = null; TITLE = null; CATEGORIES_AXIS = null; VALUES_AXIS = null; LEGEND = null; \n INPUTS_data = ['binaryMulti', 'r', 'pasted', 'table', 'variables'];\n variables_types = ['Questions: PickAny', 'variables']; \n INPUTS = ['AsPercentages', 'x'];\n tidy = false;\n DATA_LABELS = [\"DataLabelFontSize\"];\n hover_number_formats = [\"Automatic\", \"Number\", \"Percentage\"];\n} else if (chartType == \"Stream\")\n{\n categoriesAxisLabel = \"X AXIS\";\n valuesAxisLabel = \"Y AXIS\";\n DATA_LABELS = TITLE = LEGEND = FONT = null;\n CATEGORIES_AXIS = ['CategoriesNumberFormat']; // Additional controls are defined below\n VALUES_AXIS = ['ValuesNumberTicks', 'ValuesAxisShow', 'ValuesNumberFormat'];\n categories_number_formats = [\"Automatic\", \"Number\", \"Date/Time\", \"Scientific\", \"Custom\"];\n values_number_formats = [\"Automatic\", \"Number\", \"Scientific\", \"Custom\"];\n hover_number_formats = [\"Automatic\", \"Number\"];\n AddMargins();\n}else if (chartType == \"Pie\" || chartType == \"Donut\")\n{\n var radiusLabel = \"Donut hole radius %\";\n if (chartType == \"Pie\")\n {\n radiusLabel = \"Radius of pie groupings % (multi-column tables only)\";\n DATA_SERIES.push('SubsliceColors');\n }\n CATEGORIES_AXIS = null; VALUES_AXIS = null; HOVER = null; LEGEND = null;\n DATA_LABELS = [\"DataLabelFormat\", \"DataLabelFont\", \"DataLabelPrefix\", \"DataLabelSuffix\"];\n APPEARANCE = [\"PieRadius\", \"BorderColor\"];\n \n} else if (chartType == \"Radar\")\n{\n categoriesAxisLabel = \"Angular axis\";\n valuesAxisLabel = \"Radial axis\";\n CATEGORIES_AXIS = ['CategoriesAxisShow', 'CategoriesTickFont', 'CategoriesTickAngle', 'LabelWrap'];\n VALUES_AXIS = ['ValuesAxisShow', 'ValuesTickFont', 'ValuesNumberFormat', 'ValuesMax'];\n hover_number_formats = [\"Automatic\", \"Number\", \"Percentage\"];\n DATA_LABELS = ['DataLabelShow', 'DataLabelFormat', 'DataLabelFont', 'DataLabelPrefix', 'DataLabelSuffix'];\n APPEARANCE = ['LineThickness', 'FillOpacity', 'SmallMultiples'];\n GRIDLINES = ['ShowGrid'];\n} else if (chartType == \"Palm\")\n{\n FONT = ['GlobalFontFamily'];\n CATEGORIES_AXIS = ['CategoriesTitle', 'CategoriesTickFont'];\n VALUES_AXIS = ['ValuesTitle', 'ValuesAxisShow', 'ValuesTickFont', 'ValuesNumberFormat', 'ValuesSuffix', 'ValuesPrefix'];\n INPUTS = ['x', \"AsPercentages\", \"FirstAggregate\"];\n values_number_formats = [\"Automatic\", \"Number\", \"Percentage\", \"Currency\"];\n DATA_LABELS = null;\n LEGEND = ['LegendFont'];\n TITLE = null;\n HOVER = null;\n} else if (chartType == \"Time Series\")\n{\n INPUTS = ['x', 'y'];\n DATA_LABELS = null;\n TITLE = ['Title'];\n LEGEND = ['LegendWidth'];\n HOVER = null;\n CATEGORIES_AXIS = ['CategoriesTitle', 'CategoriesTickFont'];\n VALUES_AXIS = ['ValuesTitle', 'ValuesTickFont'];\n APPEARANCE = [\"WindowStart\", \"RangeBars\", \"LineThickness\"];\n} else if (chartType == \"Geographic Map\")\n{\n DATA_LABELS = null;\n TITLE = null;\n LEGEND = ['LegendShow', 'LegendTitle', 'LegendFont']\n hover_number_formats = [\"Automatic\", \"Number\", \"Percentage\"];\n CATEGORIES_AXIS = null;\n VALUES_AXIS = ['ValuesMin', 'ValuesMax'];\n palettes = gradual_palettes;\n APPEARANCE = [\"MapPackage\", \"HighRes\", \"NAasZero\", \"NAColor\", \"OceanColor\", \"SmallMultiples\"];\n} else if (chartType == \"Heat\")\n{\n palettes = gradual_palettes;\n LEGEND = ['LegendShow', 'LegendFont'];\n DATA_LABELS = ['DataLabelShow', 'DataLabelFormat', 'DataLabelFont', 'DataLabelPrefix', 'DataLabelSuffix'];\n categoriesAxisLabel = \"X AXIS\";\n valuesAxisLabel = \"Y AXIS\";\n CATEGORIES_AXIS = ['CategoriesTitle', 'CategoriesAxisShow', 'CategoriesTickFont'];\n VALUES_AXIS = ['ValuesTitle', 'ValuesAxisShow', 'ValuesTickFont'];\n HOVER = null;\n APPEARANCE = ['SortOrStandardize', 'AdditionalColumns'];\n} else if (chartType == \"Scatter\")\n{\n INPUTS_data = ['pasted', 'table', 'variables'];\n INPUTS = ['x', 'y', 'ScatterSizes', 'ScatterColors', 'ScatterLabels'];\n GRIDLINES = ['ShowGrid'];\n categoriesAxisLabel = \"X AXIS\";\n valuesAxisLabel = \"Y AXIS\";\n categories_number_formats = [\"Automatic\", \"Number\", \"Percentage\", \"Date/Time\", \"Currency\", \"Metric units suffix\", \"Scientific\", \"Custom\"];\n values_number_formats = categories_number_formats;\n xLabel = 'X coordinates';\n yLabel = 'Y coordinates';\n FITLINE = null;\n HOVER = null;\n VALUES_AXIS = ['ValuesTitle', 'ValuesAxisShow', 'ValuesTickFont', 'ValuesNumberFormat', 'ValuesSuffix', 'ValuesPrefix'];\n APPEARANCE = ['dummy']; \n DATA_LABELS = null; // this is overridden if LabeledScatter\n var isLabeled = false;\n //isLabeled is set in the DATA MANIPULATION tab, as is DATA_LABELS and APPEARANCE\n\n} else if ([\"Column\", \"Bar\", \"Area\", \"Line\"]. indexOf(chartType) != -1)\n{\n if (chartType.indexOf(\"Bar\") != -1)\n SwappedXY();\n if (chartType != \"Line\")\n APPEARANCE = ['Stacked'];\n if (chartType == \"Line\")\n APPEARANCE = ['LineThickness'];\n APPEARANCE.push(\"SmallMultiples\");\n FITLINE = ['FitLine'];\n GRIDLINES = ['ShowGrid'];\n DATA_LABELS = ['DataLabelShow', 'DataLabelFormat', 'DataLabelFont', 'DataLabelPrefix', 'DataLabelSuffix'];\n VALUES_AXIS = ['ValuesTitle', 'ValuesAxisShow', 'ValuesTickFont', 'ValuesNumberFormat', 'ValuesSuffix', 'ValuesPrefix', 'ValuesMin', 'ValuesMax'];\n} else if ([\"Box\", \"Bean\", \"Density\", \"Histogram\", \"Violin\"]. indexOf(chartType) != -1)\n{ \n INPUTS_data = ['pasted', 'table', 'r', 'variables', 'sets'];\n INPUTS = ['x', 'y'];\n variables_types = ['variables'];\n APPEARANCE = ['DensityColor', 'VerticalDistributon', 'SmallMultiples'];\n DATA_SERIES = null; DATA_LABELS = null; LEGEND = null;\n CATEGORIES_AXIS = ['CategoriesTickFont', 'LabelWrap'];\n vertical = ['Violin', 'Box'].indexOf(chartType) > -1;\n if (chartType == 'Violin')\n APPEARANCE.push('ShowMean', 'Bandwidth', 'AutomaticLower');\n else if (chartType == 'Bean') {\n APPEARANCE.push('ValuesColor', 'Bandwidth', 'AutomaticLower');\n HOVER = null;\n } else if (chartType == 'Density') {\n APPEARANCE.push('ValuesColor', 'ShowValues', 'Bandwidth', 'AutomaticLower');\n HOVER = null;\n } else if (chartType == 'Box')\n APPEARANCE.push('BoxPoints', 'ValuesColor');\n else if (chartType == 'Histogram')\n APPEARANCE.push('HistogramCumulative', 'HistogramCounts', 'AutomaticBinning', 'MaximumBins');\n else if (chartType != 'Bean')\n APPEARANCE.push('ShowValues');\n GRIDLINES = ['ShowGrid']; \n\n} else if (chartType == \"Bar Pictograph\")\n{\n SwappedXY();\n INPUTS = ['x', 'AsPercentages', 'FirstAggregate']; // only accepts 1-d tables\n CATEGORIES_AXIS = ['CategoriesAxisShow', 'CategoriesTickFont', 'CategoriesTickHorizAlign'];\n DATA_LABELS = ['DataLabelFont', 'DataLabelFormat',\n 'DataLabelPrefix', 'DataLabelSuffix', 'DataLabelPosition'];\n APPEARANCE = ['Icon', 'FillDirection', 'IconPadding'];\n VALUES_AXIS = null;\n HOVER = null;\n LEGEND = null;\n TITLE = null;\n FONT = ['GlobalFontFamily', 'GlobalFontColor'];\n} else if(chartType == \"Table\")\n{\n INPUTS_data = ['pasted', 'table', 'r', 'variables', 'binaryMulti', 'sets', 'set'];\n DATA_SERIES = DATA_LABELS = TITLE = CATEGORIES_AXIS = null;\n VALUES_AXIS = HOVER = LEGEND = FONT = null;\n} else if(chartType != \"None\")\n throw \"Unknown chart type\";\n \n \n//// Creating the controls\n//// Data Selector.\n// Creating the data inputs.\nif (allow_control_groups)\n form.group(\"DATA SOURCE\")\n\n// Input as linked Q or R table(s)\nvar outputLabel = \"Output\";\nvar outputPrompt = \"Outputs are tables or other Q or R outputs\";\nif (displayr)\n{\n outputLabel += \" in 'Pages\";\n outputPrompt += \" in the 'Pages' tree (top-left)\";\n}\nvar tableInput = form.dropBox({name: \"formTable\", label: outputLabel, types: ['Table', \"RItem:integer,numeric,matrix,array,data.frame,table,list\"], required: false, multi: chartType == \"Scatter\", prompt: outputPrompt});\nif (!allow_control_groups)\n tableInput.lineBreakAfter = true;\n\n// Input as variables in the Data tab\nvar variables_controls = []; \nvar variables_prompt = displayr ? \"Variables are shown in the 'Data' tree (bottom-left).\" :\n \"Variables are shown in the 'Variables and Questions' tab.\";\nif (INPUTS.indexOf('x') > -1) \n{\n var varX = form.dropBox({label: xLabel, name: \"formX\", types: variables_types, prompt: variables_prompt, multi: chartType != \"Scatter\", required: false});\n if (!allow_control_groups)\n varX.lineBreakAfter = true;\n var n_variables = 1;\n if (allow_control_groups && chartType != \"Scatter\")\n n_variables = varX.getValues().length;\n variables_controls.push(varX);\n}\nvar n_yvariables = 0;\nif (INPUTS.indexOf('y')> -1 && (chartType == \"Scatter\" || (n_variables == 1)))\n{\n var varY = form.dropBox({label: yLabel, name: \"formY\", types:['variable'], prompt: variables_prompt, multi: chartType == \"Scatter\", required: false});\n if (!allow_control_groups)\n varY.lineBreakAfter = true;\n variables_controls.push(varY);\n n_yvariables = 1;\n if (allow_control_groups && chartType == \"Scatter\")\n n_yvariables = varY.getValues().length; \n}\n\nif (INPUTS.indexOf('ScatterLabels') > -1)\n{\n var VLabels = form.dropBox({label: \"Labels\",name: \"formScatterLabels\",types:['variables'], prompt: variables_prompt, multi: false, required: false});\n if (!allow_control_groups)\n VLabels.lineBreakAfter = true;\n variables_controls.push(VLabels);\n}\nif (INPUTS.indexOf('ScatterSizes')> -1 && n_yvariables <= 1)\n{\n var VSizes = form.dropBox({label: \"Sizes\", name: \"formZ\", types:['variables'], prompt: variables_prompt, multi: false, required: false});\n if (!allow_control_groups)\n VSizes.lineBreakAfter = true;\n variables_controls.push(VSizes);\n}\nif (INPUTS.indexOf('ScatterColors')> -1 && n_yvariables <= 1)\n{\n var VColors = form.dropBox({label: \"Colors\", name: \"formZ2\", types:['variables'], prompt: variables_prompt, multi: false, required: false});\n if (!allow_control_groups)\n VColors.lineBreakAfter = true;\n variables_controls.push(VColors);\n}\n\n// Pasted input data\nvar pastedInput = form.dataEntry({label: \"Paste or type data\", name: \"formPastedData\", prompt: \"Opens a spreadsheet into which you can enter data.\"});\nif (!allow_control_groups)\n pastedInput.lineBreakAfter = true;\n\n\n// Hide other data sources if one of them is already selected\nif (!allow_control_groups || !isEmpty(tableInput) ||\n (isBlankSheet(pastedInput) && isEmpty(varX) && isEmpty(varY)))\n controls.push(tableInput);\nif (!allow_control_groups || (!isEmpty(varX) || !isEmpty(varY)) ||\n (isEmpty(tableInput) && isBlankSheet(pastedInput)))\n controls = controls.concat(variables_controls);\nif (!allow_control_groups || !isBlankSheet(pastedInput) ||\n (isEmpty(tableInput) && isEmpty(varX) && isEmpty(varY))) \n controls.push(pastedInput);\n\n// Figure out type of data input to customize data processing options\nvar dtype = \"\";\nif (!allow_control_groups || !isEmpty(tableInput))\n{\n dtype = 'table';\n if (allow_control_groups && chartType == \"Scatter\" && tableInput.getValues().length > 1)\n {\n dtype = 'tables';\n isLabeled = true;\n APPEARANCE.push('ScatterTrendLine');\n }\n}\nelse if (!allow_control_groups || !isEmpty(varX) || !isEmpty(varY))\n dtype = 'variables';\nelse if (!isBlankSheet(pastedInput))\n dtype = 'pasted';\n\nif (yLabel == \"Groups\" && allow_control_groups && !isEmpty(varY))\n{\n var zi = INPUTS.indexOf('FirstAggregate');\n if (zi > -1)\n INPUTS.splice(zi, 1);\n}\n\nif (!allow_control_groups || dtype != \"\")\n{\n if (allow_control_groups)\n form.group(\"DATA MANIPULATION\");\n var scatter_mult_ys = false;\n if (chartType == \"Scatter\" && dtype != 'variables' && dtype != 'tables')\n {\n var qScatterMultYs = form.checkBox({label: \"Input data contains y-values in multiple columns\", name: \"formScatterMultYvals\", default_value: false});\n if (!allow_control_groups) \n qScatterMultYs.lineBreakAfter = true;\n scatter_mult_ys = qScatterMultYs.getValue();\n controls.push(qScatterMultYs);\n }\n var aggregate = false;\n if (INPUTS.indexOf(\"FirstAggregate\") > -1)\n {\n var qAggregate = form.checkBox({label: \"Aggregate the data prior to plotting\", name: \"formFirstAggregate\", default_value: dtype == 'variables' && default_aggregation, prompt: \"The data is 'raw', where each row represents an individual case. It needs to be aggregated prior to plotting.\"});\n if (!allow_control_groups)\n qAggregate.lineBreakAfter = true;\n controls.push(qAggregate);\n aggregate = qAggregate.getValue();\n }\n if (tidy)\n {\n var qTidy = form.checkBox({label: \"Automatically tidy the data\", name: \"formTidy\", default_value: chartType != \"Table\" && chartType != \"Scatter\"});\n if (!allow_control_groups)\n qTidy.lineBreakAfter = true;\n tidy = qTidy.getValue();\n controls.push(qTidy);\n }\n if (aggregate && allow_control_groups && (dtype == 'table' || dtype == 'pasted'))\n {\n var qGroupLast = form.checkBox({label: \"Group by last column (crosstab)\", name: \"formGroupByLastColumn\", default_value: true, prompt: \"If more than two columns are provided, automatically groups by the last column\"});\n controls.push(qGroupLast);\n }\n if (aggregate && (!allow_control_groups || (dtype == 'variables' && n_variables == 2 && n_yvariables == 0)))\n { \n var qGroupLast = form.checkBox({label: \"Group by last variable (crosstab)\", name: \"formGroupByLastColumn\", default_value: false, prompt: \"If two variable are provided, automatically groups by the last variable\"});\n if (!allow_control_groups)\n qGroupLast.lineBreakAfter = true;\n controls.push(qGroupLast);\n }\n if (dtype == 'pasted')\n {\n var qAutoName = form.checkBox({label: \"Automatically detect row and column names\", name: \"formNotDataFrame\", default_value: true});\n if (!allow_control_groups)\n qAutoName.lineBreakAfter = true;\n var notDF = qAutoName.getValue();\n controls.push(qAutoName);\n if (!notDF)\n {\n var rowname_label = \"First column contains row names\";\n var rowname_prompt = \"Values will be shown as labels in the categories axis\";\n var rowname_default = false;\n if (chartType == \"Scatter\")\n {\n if (!scatter_mult_ys)\n {\n rowname_label = \"First column contains data labels\";\n rowname_prompt = \"Values will be shown as data labels for each point (not X-axis labels)\";\n }\n rowname_default = true;\n }\n var qColNames = form.checkBox({label: \"First row contains column names\", name: \"formPastedColumnNames\", default_value: true});\n var qRowNames = form.checkBox({label: rowname_label, name: \"formPastedRowNames\", prompt: rowname_prompt, default_value: rowname_default});\n if (!allow_control_groups)\n qColNames.lineBreakAfter = true;\n if (!allow_control_groups)\n qRowNames.lineBreakAfter = true;\n controls.push(qColNames);\n controls.push(qRowNames);\n }\n }\n qTidyLabel = form.checkBox({name: \"formTidyLabels\", label: \"Tidy labels\", default_value: true});\n if (!allow_control_groups)\n qTidyLabel.lineBreakAfter = true;\n controls.push(qTidyLabel);\n if (chartType != 'Donut')\n {\n qTranspose = form.checkBox({name: \"formTranspose\", label: \"Switch rows and columns\"});\n if (!allow_control_groups)\n qTranspose.lineBreakAfter = true;\n controls.push(qTranspose);\n }\n\n // Creating other input controls on the Inputs page.\n var asPct = false;\n if (INPUTS != null)\n {\n var qRowsIgnore = form.textBox({label: \"Rows to ignore\", type: \"text\", default_value: \"NET, Total, SUM\", name: \"formIgnoreRows\", required: false});\n if (!allow_control_groups)\n qRowsIgnore.lineBreakAfter = true;\n controls.push(qRowsIgnore);\n var qColsIgnore = form.textBox({label: \"Columns to ignore\", type: \"text\", default_value: \"NET, Total, SUM\", name: \"formIgnoreColumns\", required: false});\n if (!allow_control_groups)\n qColsIgnore.lineBreakAfter = true;\n controls.push(qColsIgnore);\n var qHideEmpty = form.checkBox({label: \"Hide empty rows and columns\", name: \"formHideEmpty\", default_value: false});\n if (!allow_control_groups)\n qHideEmpty.lineBreakAfter = true;\n controls.push(qHideEmpty);\n if (INPUTS.indexOf('AsPercentages') > -1)\n {\n var qAsPct = form.checkBox({name: \"formAsPercentages\", label: \"Convert to percentages/proportions\"});\n if (!allow_control_groups)\n qAsPct.lineBreakAfter = true;\n asPct = qAsPct.getValue();\n controls.push(qAsPct);\n }\n if (INPUTS.indexOf('DateFormat') > -1)\n {\n var qDate = form.comboBox({name: \"formDateFormat\", label: \"Date format\", alternatives: ['Automatic', 'International (dd/mm/yyyy)', 'US (mm/dd/yyyy)'], default_value: 'Automatic'});\n controls.push(qDate);\n }\n // Set default formatting if 'as percentage' is checked\n if (asPct)\n {\n var formats = [values_number_formats, hover_number_formats, data_label_formats];\n for (var i = 0; i < formats.length; i++)\n {\n var format_array = formats[i];\n var pct_idx = format_array.indexOf('Percentage');\n if (pct_idx != -1) \n {\n format_array.splice(pct_idx, 1);\n format_array.splice(0, 0, \"Percentage\");\n var auto_idx = format_array.indexOf('Automatic');\n if (auto_idx != -1)\n format_array.splice(auto_idx, 1);\n }\n }\n }\n if (dtype == 'variables')\n {\n var qVarNames = form.checkBox({label: \"Variable names\", name:\"formNames\", default_value: false});\n if (!allow_control_groups)\n qVarNames.lineBreakAfter;\n controls.push(qVarNames);\n }\n }\n}\n\n//// Creating controls on the Chart page (forced to be on Inputs tab for Q <= v5.2.1)\nif (allow_control_groups)\n form.page('Chart');\n\nvar show_as_small_mult = false; // this variable must be globally defined\nif (APPEARANCE != null)\n{\n var isStacked = false;\n if (allow_control_groups)\n form.group('APPEARANCE');\n if (APPEARANCE.indexOf('SmallMultiples') > -1)\n {\n var qSmallMult = form.checkBox({label: \"Show as small multiples (panel chart)\", name: \"formSmallMultiples\", default_value: default_smallmultiples});\n controls.push(qSmallMult);\n if (!allow_control_groups)\n qSmallMult.lineBreakAfter = true;\n show_as_small_mult = qSmallMult.getValue();\n if (qSmallMult.getValue())\n {\n var qSmallMultNRow = form.numericUpDown({label: \"Number of rows\", name: \"formSmallMultNRows\", default_value: 2, minimum: 1});\n controls.push(qSmallMultNRow);\n if (chartType == \"Bar\" || chartType == \"Column\")\n DATA_LABELS = null;\n if (chartType != \"Geographic Map\")\n LEGEND = null; \n if (chartType == \"Geographic Map\")\n TITLE = ['Title'];\n if (chartType != \"Geographic Map\")\n {\n var qSmallMultAverage = form.checkBox({label: \"Show average of all series\", name: \"formSmallMultAverage\", default_value: false});\n controls.push(qSmallMultAverage);\n if (qSmallMultAverage.getValue())\n {\n var qSmallMultAverageColor = form.colorPicker({name: \"formSmallMultAverageColor\", label: !allow_control_groups ? \"\" : \"Color of average series\", default_value: \"#999999\"});\n controls.push(qSmallMultAverageColor);\n }\n }\n if (chartType != \"Radar\" && chartType != \"Geographic Map\")\n {\n var qSmallMultShareAxes = form.checkBox({label: \"Share axes between panels\", name: \"formSmallMultShareAxes\", default_value: true});\n controls.push(qSmallMultShareAxes);\n }\n var qSmallMultXOrder = form.textBox({label: \"Order\", name: \"formSmallMultXOrder\", required: false, prompt: \"e.g '2,1,3', or leave blank to follow order of input data\"});\n controls.push(qSmallMultXOrder);\n var qSmallMultPadLeft = form.numericUpDown({label: \"Left padding\", name: \"formSmallMultPadLeft\", default_value: 0.01, minimum: 0.00, maximum: chartType == \"Radar\" ? 100 : 1.00, increment: 0.01});\n controls.push(qSmallMultPadLeft);\n var qSmallMultPadRight = form.numericUpDown({label: \"Right padding\", name: \"formSmallMultPadRight\", default_value: 0.01, minimum: 0.00, maximum: chartType == \"Radar\"? 100 : 1.00, increment: 0.01});\n controls.push(qSmallMultPadRight);\n var qSmallMultPadTop = form.numericUpDown({label: \"Top padding\", name: \"formSmallMultPadTop\", default_value: 0.1, minimum: 0.00, maximum: 1.00, increment: 0.01});\n controls.push(qSmallMultPadTop);\n var qSmallMultPadBottom = form.numericUpDown({label: \"Bottom padding\", name: \"formSmallMultPadBottom\", default_value: 0.01, minimum: 0.00, maximum: 1.00, increment: 0.01});\n controls.push(qSmallMultPadBottom);\n }\n }\n if (chartType == 'Scatter')\n {\n // Scatter is always labeled in INPUTS_types['tables']\n // For other input types we need to check\n if ((dtype != 'tables' && dtype != 'variables') || (dtype == 'variables' && !(allow_control_groups && VLabels.getValue() == null)))\n {\n var qLabType = form.comboBox({name: \"formScatterLabelType\", label: \"Show labels\", alternatives:['As hover text', 'On chart'], default_value: 'As hover text'});\n var labtype = qLabType.getValue()\n controls.push(qLabType);\n isLabeled = labtype == 'On chart';\n }\n if (isLabeled)\n {\n APPEARANCE.push('ScatterMaxLab');\n categories_number_formats = [\"Automatic\", \"Number\", \"Percentage\", \"Currency\"];\n values_number_formats = [\"Automatic\", \"Number\", \"Percentage\", \"Currency\"];\n data_label_formats = [\"Automatic\", \"Number\", \"Category\", \"Percentage\", \"Currency\"]\n DATA_LABELS = ['DataLabelFont'];\n }\n if (!isLabeled && ((dtype != 'tables' && dtype != 'variables') || \n (dtype == 'variables' && n_yvariables == 1 && !(allow_control_groups && VSizes.getValue() == null))))\n APPEARANCE.push('ScatterSizeType');\n if ((dtype != 'tables' && dtype != 'variables') || \n (dtype == 'variables' && n_yvariables == 1 && !(allow_control_groups && VColors.getValue() == null)))\n APPEARANCE.push('ScatterColorType');\n if (!isLabeled)\n FITLINE = ['FitLine'];\n }\n if (APPEARANCE.indexOf(\"ScatterMaxLab\") > -1)\n {\n var qMaxLab = form.numericUpDown({name: \"formScatterMaxLab\", label: \"Maximum data labels to plot\", default_value: 50, maximum: 1000, minimum: 0});\n if (!allow_control_groups)\n qMaxLab.lineBreakAfter = true;\n controls.push(qMaxLab);\n var qLogo = form.textBox({name: \"formLogos\", label: \"Logos\", prompt: \"Enter URLs as a comma separated list\", type: \"Text\", required: false});\n if (!allow_control_groups)\n qLogo.lineBreakAfter = true;\n controls.push(qLogo);\n var qLogoSize = form.numericUpDown({name: \"formLogoSize\", label: \"Logo size\", default_value: 0.5, increment: 0.1});\n if (!allow_control_groups)\n qLogoSize.lineBreakAfter = true;\n controls.push(qLogoSize);\n }\n if (APPEARANCE.indexOf(\"ScatterTrendLine\") > -1)\n {\n var qScatterTrend = form.checkBox({label: \"Show trend lines\", name: \"formTrendLines\", default_value: false});\n if (!allow_control_groups)\n qScatterTrend.lineBreakAfter = true;\n controls.push(qScatterTrend);\n }\n if (APPEARANCE.indexOf(\"ScatterSizeType\") > -1)\n {\n var qSizeType = form.comboBox({label: \"Treat sizes variable as\", name:\"formScatterSizeType\", alternatives:['Area', 'Diameter'], default_value:'Area'});\n controls.push(qSizeType);\n }\n if (APPEARANCE.indexOf(\"ScatterColorType\") > -1)\n {\n var qColorType = form.comboBox({label: \"Treat colors variable as\", name:\"formScatterColorType\", alternatives:['Categories', 'Numeric scale'], default_value:'Categories'});\n controls.push(qColorType);\n }\n\n\n if (APPEARANCE.indexOf(\"Icon\") > -1)\n {\n var custom_icon_label = \"(Custom icon)\";\n var qPictoIcon = form.comboBox({name: \"formIcon\", label: \"Icon\", alternatives: [\n custom_icon_label, \"Apple\",\"Baby\", \"Beer\", \"Bread\",\"Cake\", \"Car\", \"Circle\", \"Cross\", \"Elephant\", \"Gun\", \"Heart\", \"House\", \"Money\", \"Soldier\", \"Square\", \"Star\", \"Sick person\", \"Stick man\", \"Stick woman\", \"Thumbs up\", \"Thumbs down\", \"Tick\", \"Truck\", \"User\", \"Water drop\", \"Weight\", \"Wine\"], default_value: \"Stick man\"});\n var picto_icon = qPictoIcon.getValue();\n controls.push(qPictoIcon);\n if (picto_icon == custom_icon_label)\n {\n var qCustomIcon = form.textBox({name: \"formCustomIcon\", label: \"Icon URL\", type: \"text\", required: true});\n if (!allow_control_groups)\n qCustomIcon.lineBreakAfter = true;\n controls.push(qCustomIcon)\n var qCustomBase = form.textBox({name: \"formBaseImage\", label: \"Base icon URL\", type: \"text\", required: false, prompt: \"Leave blank to hide unfilled icons\"});\n var customBase = qCustomBase.getValue();\n controls.push(qCustomBase);\n }\n else\n {\n var qBaseOpt = form.checkBox({name: \"formHideBase\", label: \"Hide unfilled icons\", default_value: true});\n if (!allow_control_groups)\n qBaseOpt.lineBreakAfter = true;\n var baseOpt = qBaseOpt.getValue();\n controls.push(qBaseOpt);\n }\n qTotIcon = form.textBox({name: \"formTotalIcons\", label: \"Total icons per bar\", type: \"number\", required: false, prompt: \"Number of filled and unfilled icons. Leave blank to determine from Input data\"});\n if (!allow_control_groups)\n qTotIcon.lineBreakAfter = true;\n controls.push(qTotIcon);\n qIconScale = form.textBox({name: \"formIconScale\", label: \"Units per icon (scale)\", type: \"number\", required: false, prompt: \"Leave blank to determine based on range of Input data\"});\n if (!allow_control_groups)\n qIconScale.lineBreakAfter = true;\n controls.push(qIconScale);\n var qIconNcol = form.textBox({name:\"formIconNCol\", label: \"Maximum icons per row\", type: \"number\", prompt: \"Leave blank for no wrapping (all icons on one line)\", required: false});\n if (!allow_control_groups)\n qIconNcol.lineBreakAfter = true;\n controls.push(qIconNcol);\n var ncolOpt = qIconNcol.getValue()\n var fillDir = form.comboBox({name:\"formFillDirection\", label: \"Direction of fill\", alternatives: [\"From left\", \"From right\"], default_value: \"From left\"});\n controls.push(fillDir);\n if (picto_icon != custom_icon_label)\n {\n if (!baseOpt)\n {\n if (!allow_control_groups)\n {\n var qBaseColorLabel = form.newLabel(\"Icon base color\");\n controls.push(qBaseColorLabel);\n }\n var qBaseColor = form.colorPicker({name: \"formBaseColor\", label: !allow_control_groups ? \"\" : \"Icon base color\", default_value: \"#CCCCCC\"});\n if (!allow_control_groups)\n qBaseColor.lineBreakAfter = true;\n controls.push(qBaseColor);\n }\n var qLabColAsIcon = form.checkBox({name: \"formLabelColorAsIcon\", label: \"Labels colored as icons\"});\n if (!allow_control_groups)\n qLabColAsIcon.lineBreakAfter = true;\n controls.push(qLabColAsIcon);\n var labColAsIcon = qLabColAsIcon.getValue();\n if (ncolOpt != \"\" && baseOpt)\n {\n var qFixRows = form.checkBox({name:\"formFixNRows\", label:\"Fixed number of rows per bar\", default_value: true});\n if (!allow_control_groups)\n qFixRows.lineBreakAfter = true;\n controls.push(qFixRows);\n }\n }\n if (ncolOpt != \"\" && picto_icon == custom_icon_label && !customBase)\n {\n var qFixRows = form.checkBox({name:\"formFixNRows\", label:\"Fixed number of rows per bar\", default_value: true});\n if (!allow_control_groups)\n qFixRows.lineBreakAfter = true;\n controls.push(qFixRows);\n }\n var qIconPad = form.numericUpDown({name: \"formIconPadding\", label: \"Space between bars\", minimum: 0, default_value: 2, increment:1});\n if (!allow_control_groups)\n qIconPad.lineBreakAfter = true;\n controls.push(qIconPad);\n }\n if (!show_as_small_mult && APPEARANCE.indexOf(\"Stacked\") > -1)\n {\n var qStack = form.checkBox({label: \"Stack series\", name: \"formStackSeries\", default_value: false});\n if (!allow_control_groups)\n qStack.lineBreakAfter = true;\n var isStack = qStack.getValue();\n controls.push(qStack);\n }\n if (APPEARANCE.indexOf(\"PieRadius\") > -1)\n {\n var qRadius = form.numericUpDown({name: \"formPieRadius\", label: radiusLabel, default_value: 70, increment: 1, minimum: 0, maximum: 100});\n if (!allow_control_groups)\n qRadius.lineBreakAfter = true;\n controls.push(qRadius);\n }\n if (APPEARANCE.indexOf(\"BorderColor\") > -1)\n {\n if (!allow_control_groups)\n {\n var qBorderColorLabel = form.newLabel(\"Border color\");\n controls.push(qBorderColorLabel);\n }\n var qBorderColor = form.colorPicker({name: \"formBorderColor\", label: allow_control_groups ? \"Border color\" : \"\", default_value: \"#ffffff\"});\n if (!allow_control_groups)\n qBorderColor.lineBreakAfter = true;\n controls.push(qBorderColor);\n }\n if (APPEARANCE.indexOf(\"DensityColor\") > -1)\n {\n if (!allow_control_groups)\n {\n var qDensityColorLabel = form.newLabel(\"Color\");\n controls.push(qDensityColorLabel);\n }\n var qDensityColor = form.colorPicker({name: \"formDensityColor\", label: allow_control_groups ? \"Color\" : \"\", default_value: \"#5C9AD3\"});\n if (!allow_control_groups)\n qDensityColor.lineBreakAfter = true;\n controls.push(qDensityColor);\n }\n if (APPEARANCE.indexOf(\"VerticalDistributon\") > -1)\n {\n var qVertDist = form.checkBox({name: \"formVertical\", label: \"Plot vertically\", default_value: vertical});\n if (!allow_control_groups)\n qVertDist.lineBreakAfter = true;\n if (!qVertDist.getValue())\n SwappedXY();\n controls.push(qVertDist);\n }\n var show_values_color = true;\n if (APPEARANCE.indexOf(\"ShowValues\") > -1)\n {\n var qShowValues = form.checkBox({name: \"formShowValues\", label: \"Plot the individual data values\", default_value: false});\n if (!allow_control_groups)\n qShowValues.lineBreakAfter = true;\n var show_values_color = qShowValues.getValue();\n controls.push(qShowValues);\n }\n if (show_values_color && APPEARANCE.indexOf(\"ValuesColor\") > - 1)\n {\n if (!allow_control_groups)\n {\n var qValuesColorLabel = form.newLabel(\"Data value color\");\n controls.push(qValuesColorLabel);\n }\n var qValuesColor = form.colorPicker({name: \"formValuesColor\", label: allow_control_groups ? \"Data value color\" : \"\", default_value: \"#999999\"});\n if (!allow_control_groups)\n qValuesColor.lineBreakAfter = true;\n controls.push(qValuesColor);\n }\n if (APPEARANCE.indexOf(\"ShowMean\") > -1)\n {\n var qMean = form.checkBox({name: \"formShowMean\", label: \"Plot the mean value\", default_value: true});\n if (!allow_control_groups)\n qMean.lineBreakAfter = true;\n controls.push(qMean);\n if (qMean.getValue())\n {\n if (!allow_control_groups)\n {\n var qMeanColorLabel = form.newLabel(\"Color of the mean dot\");\n controls.push(qMeanColorLabel);\n }\n var qMeanColor = form.colorPicker({name: \"formMeanColor\", label: !allow_control_groups ? \"\" : \"Color of the mean dot\", default_value: \"#808080\"});\n if (!allow_control_groups)\n qMeanColor.lineBreakAfter = true;\n controls.push(qMeanColor);\n }\n var qMedian = form.checkBox({name: \"formShowMedian\", label: \"Plot the median\", default_value: true});\n if (!allow_control_groups)\n qMedian.lineBreakAfter = true;\n controls.push(qMedian);\n if (qMedian.getValue())\n {\n if (!allow_control_groups)\n {\n var qMedianColorLabel = form.newLabel(\"Color of the median line\");\n controls.push(qMedianColorLabel);\n }\n var qMedianColor = form.colorPicker({name: \"formMedianColor\", label: allow_control_groups ? \"Color of the median line\" : \"\", default_value: \"#000000\"});\n if (!allow_control_groups)\n qMedianColor.lineBreakAfter = true;\n controls.push(qMedianColor);\n }\n var qQuartiles = form.checkBox({name: \"formShowQuartiles\", label: \"Plot the quartiles\", default_value: true});\n if (!allow_control_groups)\n qQuartiles.lineBreakAfter = true;\n controls.push(qQuartiles);\n if (qQuartiles.getValue())\n {\n if (!allow_control_groups)\n {\n var qQuartileColorLabel = form.newLabel(\"Color of the quartiles box\");\n controls.push(qQuartileColorLabel);\n }\n var qQuartileColor = form.colorPicker({name: \"formQuartilesColor\", label: allow_control_groups ? \"Color of the quartiles box\" : \"\", default_value: \"#000000\"});\n if (!allow_control_groups)\n qQuartileColor.lineBreakAfter = true;\n controls.push(qQuartileColor);\n }\n var qRange = form.checkBox({name: \"formShowRange\", label: \"Plot the range\", default_value: true});\n if (!allow_control_groups)\n qRange.lineBreakAfter = true;\n controls.push(qRange);\n if (qRange.getValue())\n {\n if (!allow_control_groups)\n {\n var qRangeColorLabel = form.newLabel(\"Color of the range line\");\n controls.push(qRangeColorLabel);\n }\n var qRangeColor = form.colorPicker({name: \"formRangeColor\", label: allow_control_groups ? \"Color of the range line\" : \"\", default_value: \"#000000\"});\n if (!allow_control_groups)\n qRangeColor.lineBreakAfter = true;\n controls.push(qRangeColor);\n }\n }\n if (APPEARANCE.indexOf(\"MapPackage\") > -1)\n {\n if (!show_as_small_mult)\n {\n var qPackage = form.comboBox({name: \"formMapPackage\", label: \"Map package\", alternatives: [\"plotly\", \"leaflet\"], default_value: \"plotly\"});\n controls.push(qPackage);\n if (qPackage.getValue() == \"leaflet\")\n {\n FONT = null;\n LEGEND = ['LegendShow', 'LegendTitle'];\n }\n }\n var qHighRes = form.checkBox({label: \"High resolution\", name: \"formHighRes\", default_value: false});\n controls.push(qHighRes);\n if (!allow_control_groups)\n qHighRes.lineBreakAfter = true;\n var qNAasZero = form.checkBox({label: \"Treat NA as zero\", name: \"formNAasZero\", default_value: false});\n if (!allow_control_groups)\n qNAasZero.lineBreakAfter = true\n var NAasZero = qNAasZero.getValue();\n controls.push(qNAasZero);\n if (!allow_control_groups)\n {\n var qNAColorLabel = form.newLabel(\"Color of NA values\");\n controls.push(qNAColorLabel);\n }\n var qNAColor = form.colorPicker({name: \"formNAColor\", label: !allow_control_groups ? \"\" : \"Color of NA values\", default_value: \"#808080\"});\n if (!allow_control_groups)\n qNAColor.lineBreakAfter = true;\n controls.push(qNAColor);\n if (!allow_control_groups)\n {\n var qOceanColorLabel = form.newLabel(\"Ocean color\");\n controls.push(qOceanColorLabel);\n }\n var qOceanColor = form.colorPicker({name: \"formOceanColor\", label: !allow_control_groups ? \"\" : \"Ocean color\", default_value: \"#DDDDDD\"});\n if (!allow_control_groups)\n qOceanColor.lineBreakAfter = true;\n controls.push(qOceanColor); \n }\n if (APPEARANCE.indexOf(\"BoxPoints\") > -1)\n {\n var qBoxPoint = form.comboBox({name: \"formBoxPoints\", label: \"Box points\", alternatives: [\"All\", \"Outliers\", \"Suspected outliers\"], default_value: \"Suspected outliers\", required: true});\n if (!allow_control_groups)\n qBoxPoint.lineBreakAfter = true;\n controls.push(qBoxPoint);\n }\n if (APPEARANCE.indexOf('HistogramCounts') > -1)\n { \n var qHistCum = form.checkBox({name: \"formHistogramCumulative\", label: \"Cumulative histogram\", default_value: false});\n if (!allow_control_groups)\n qHistCum.lineBreakAfter = true;\n controls.push(qHistCum);\n var qHistCount = form.checkBox({name: \"formHistogramCounts\", label: \"Show counts\", default_value: false});\n if (!allow_control_groups)\n qHistCount.lineBreakAfter = true;\n controls.push(qHistCount);\n var qHistAutoBin = form.checkBox({name: \"formAutomaticBinning\", label: \"Automatic column widths (bins)\", default_value: true});\n if (!allow_control_groups)\n qHistAutoBin.lineBreakAfter = true\n controls.push(qHistAutoBin);\n if (!qHistAutoBin.getValue())\n {\n var qHistMaxBin = form.numericUpDown({name: \"formMaximumBins\", label: \"Maximum columns (bins)\", default_value: 20});\n if (!allow_control_groups)\n qHistMaxBin.lineBreakAfter = truel\n controls.push(qHistMaxBin);\n }\n }\n if (APPEARANCE.indexOf('Bandwidth') > -1)\n {\n var qBandwidth = form.numericUpDown({name: \"formBandwidth\", label: \"Bandwidth\", minimum: 0.01, maximum: 1, increment: 0.01, default_value: 1, prompt: \"The relative bandwidth used in the estimating the density.\"});\n \n if (!allow_control_groups)\n qBandwidth.lineBreakAfter = true;\n controls.push(qBandwidth);\n }\n if (APPEARANCE.indexOf('AutomaticLower') > -1)\n {\n var qLowerBd = form.checkBox({name: \"formAutomaticLower\", label: \"Automatically compute lower bound\", default_value: true});\n if (!allow_control_groups)\n qLowerBd.lineBreakAfter = true;\n controls.push(qLowerBd);\n }\n if (APPEARANCE.indexOf(\"RangeBars\") > -1)\n {\n var qRangeBar = form.checkBox({name: \"formRangeBars\", label: \"Show range bars\", default_value: false});\n if (!allow_control_groups)\n qRangeBar.lineBreakAfter = true;\n controls.push(qRangeBar);\n var qWinStart = form.numericUpDown({name: \"formWindowStart\", label: \"Window start (days from data end)\", default_value: 30, maximum: 100000});\n if (!allow_control_groups)\n qWinStart.lineBreakAfter = true;\n controls.push(qWinStart);\n }\n if (APPEARANCE.indexOf(\"SortOrStandardize\") > -1)\n {\n var qSortRows = form.comboBox({label: \"Row sorting or dendrogram\", alternatives: [\"None\", \"Sort by averages (ascending)\", \"Sort by averages (descending)\", \"Dendrogram\"], name: \"formSortRows\", default_value: \"None\"});\n if (!allow_control_groups)\n qSortRows.lineBreakAfter = true;\n controls.push(qSortRows);\n var qSortCols = form.comboBox({label: \"Column sorting or dendrogram\", alternatives: [\"None\", \"Sort by averages (ascending)\", \"Sort by averages (descending)\", \"Dendrogram\"], name: \"formSortColumns\", default_value: \"None\"});\n if (!allow_control_groups)\n qSortCols.lineBreakAfter = true;\n controls.push(qSortCols);\n var qStandardize = form.comboBox({label: \"Shading standardization\", name: \"formStandardization\", default_value: \"None\", alternatives: [\"None\", \"Standardize rows\", \"Standardize columns\"]});\n if (!allow_control_groups)\n qStandardize.lineBreakAfter = true;\n controls.push(qStandardize);\n }\n if (APPEARANCE.indexOf(\"AdditionalColumns\") > -1)\n {\n var qLeftCol = form.dropBox({label: \"Left columns\", types:[\"RItem:matrix,data.frame,table,array,integer,numeric,character\", \"Table\"], name: \"formLeftColumns\", multi: true, required: false});\n if (!allow_control_groups)\n qLeftCol.lineBreakAfter = true;\n controls.push(qLeftCol);\n var qLeftHead = form.textBox({label: \"Left column headings\", type: \"text\", default_value: \"\", name: \"formLeftColumnHeadings\", required: false});\n if (!allow_control_groups)\n qLeftHead.lineBreakAfter = true;\n controls.push(qLeftHead);\n var qRightCol = form.dropBox({label: \"Right columns\", types:[\"RItem:matrix,data.frame,table,array,integer,numeric,character\", \"Table\"], name: \"formRightColumns\", multi: true, required: false});\n if (!allow_control_groups)\n qRightCol.lineBreakAfter = true;\n controls.push(qRightCol);\n var qRightHead = form.textBox({label: \"Right column headings\", type: \"text\", default_value: \"\", name: \"formRightColumnHeadings\", required: false});\n if (!allow_control_groups)\n qRightHead.lineBreakAfter = true;\n controls.push(qRightHead);\n }\n if (APPEARANCE.indexOf(\"LineThickness\") > -1)\n {\n default_thickness = 3.0; // plotly defaults\n if (chartType == \"Time Series\")\n default_thickness = 1.0;\n var qLineThick = form.numericUpDown({name: \"formLineThickness\", label: \"Line thickness\", default_value: default_thickness, minimum: 0.0, maximum: 20.0, increment: 0.5});\n controls.push(qLineThick);\n }\n if (APPEARANCE.indexOf(\"FillOpacity\") > -1)\n {\n var qOpacity = form.numericUpDown({name: \"formFillOpacity\", label: \"Fill opacity\", default_value: 0.4, minimum: 0.0, maximum: 1.0, increment: 0.1});\n controls.push(qOpacity);\n }\n}\n\nif (DATA_SERIES != null && !(chartType == \"Bar Pictograph\" && picto_icon == custom_icon_label))\n{\n if (allow_control_groups)\n form.group(\"DATA SERIES\");\n if (DATA_SERIES.indexOf('Colors') > -1)\n {\n var qColor = form.comboBox({name: \"formPalette\", label: \"Color palette\", alternatives: palettes, default_value: palettes[0], required: true});\n controls.push(qColor);\n var colOpt = qColor.getValue();\n if (colOpt == \"Custom color\")\n {\n if (!allow_control_groups)\n {\n var qCustomColLabel = form.newLabel(\"Custom color\");\n controls.push(qCustomColLabel);\n }\n var qCustomCol = form.colorPicker({name: \"formCustomColor\", label: allow_control_groups ? \"Custom color\" : \"\", default_value: \"#5C9AD3\"});\n if (!allow_control_groups)\n qCustomCol.lineBreakAfter = true;\n controls.push(qCustomCol);\n }\n if (colOpt == \"Custom gradient\")\n {\n if (!allow_control_groups)\n {\n var qGradientLabel = form.newLabel(\"Gradient start/end\");\n controls.push(qGradientLabel);\n }\n var qGradientStart = form.colorPicker({name: \"formCustomGradientStart\", label: !allow_control_groups ? \"\" : \"Gradient start\", default_value: \"#5C9AD3\"});\n controls.push(qGradientStart);\n var qGradientEnd = form.colorPicker({name: \"formCustomGradientEnd\", label: !allow_control_groups ? \"\" : \"Gradient end\", default_value: \"#ED7D31\"});\n controls.push(qGradientEnd);\n }\n if (colOpt == \"Custom palette\")\n {\n var qPalette = form.textBox({name: \"formCustomPalette\", label: \"Custom palette\", default_value: \"#5C9AD3, #ED7D31\", prompt: \"Enter color as a string. Multiple values should be separated by commas.\"});\n controls.push(qPalette);\n }\n }\n if (DATA_SERIES.indexOf('SubsliceColors') > -1)\n {\n var qSubColor = form.comboBox({name: \"formSubslicePalette\", label: \"Outer ring color palette\", alternatives: line_subslice_palletes, default_value: line_subslice_palletes[0], required: true});\n controls.push(qSubColor);\n var subColOpt = qSubColor.getValue();\n if (subColOpt == \"Custom color\")\n {\n if (!allow_control_groups)\n {\n var qSubCustomColLabel = form.newLabel(\"Custom color\");\n controls.push(qSubCustomColLabel);\n }\n var qSubCustomCol = form.colorPicker({name: \"formSubsliceCustomColor\", label: allow_control_groups ? \"Custom color\" : \"\", default_value: \"#5C9AD3\"});\n controls.push(qSubCustomCol);\n }\n if (subColOpt == \"Custom gradient\")\n {\n if (!allow_control_groups)\n {\n var qSubGradientLabel = form.newLabel(\"Gradient start/end\");\n controls.push(qSubGradientLabel);\n }\n var qSubGradientStart = form.colorPicker({name: \"formSubsliceCustomGradientStart\", label: !allow_control_groups ? \"\" : \"Gradient start\", default_value: \"#5C9AD3\"});\n var qSubGradientEnd = form.colorPicker({name: \"formSubsliceCustomGradientEnd\", label: !allow_control_groups ? \"\" : \"Gradient end\", default_value: \"#ED7D31\"});\n controls.push(qSubGradientStart);\n controls.push(qSubGradientEnd);\n }\n if (subColOpt == \"Custom palette\")\n {\n qSubPalette = form.textBox({name: \"formSubsliceCustomPalette\", label: \"Custom palette\", default_value: \"#5C9AD3, #ED7D31\", prompt: \"Enter color as a string. Multiple values should be separated by commas.\"});\n controls.push(qSubPalette);\n }\n } \n}\nif (typeof FITLINE != 'undefined' && FITLINE != null && !isStacked)\n{\n if (allow_control_groups)\n form.group(\"TREND LINES\");\n if (FITLINE.indexOf('FitLine') > -1)\n {\n var qFit = form.comboBox({name: \"formFit\", label: \"Show line of best fit\", alternatives: [\"None\", \"Linear\", \"Smooth\"], default_value: \"None\"});\n controls.push(qFit);\n var fitOpt = qFit.getValue();\n if (fitOpt != \"None\")\n {\n var qFitLast = form.checkBox({name: \"formFitIgnoreLast\", label: \"Ignore last data point\", default_value: false});\n controls.push(qFitLast);\n var qFitLineType = form.comboBox({name: \"formFitLineType\", label: \"Line type\", alternatives: [\"dot\", \"dash\", \"longdash\", \"dashdot\", \"solid\"], default_value:\"dot\"});\n controls.push(qFitLineType);\n var qFitLineWidth = form.numericUpDown({name: \"formFitLineWidth\", label: \"Line width\", default_value: 1, minimum: 1, maximum: 20});\n controls.push(qFitLineWidth);\n if (!show_as_small_mult)\n {\n var qFitColor= form.comboBox({name: \"formFitPalette\", label: \"Fit line color palette\", alternatives: line_subslice_palletes, default_value: line_subslice_palletes[0], required: true});\n controls.push(qFitColor);\n var fitcolOpt = qFitColor.getValue();\n if (fitcolOpt == \"Custom color\")\n {\n if (!allow_control_groups)\n {\n var qFitCustomColorLabel = form.newLabel(\"Custom color of fit line\");\n controls.push(qFitCustomColorLabel);\n }\n var qFitCustomColor = form.colorPicker({name: \"formFitCustomColor\", label: !allow_control_groups ? \"\" : \"Custom color of fit line\", default_value: \"#5C9AD3\"})\n controls.push(qFitCustomColor);\n }\n if (fitcolOpt == \"Custom gradient\")\n {\n if (!allow_control_groups)\n {\n var qFitGradLabel = form.newLabel(\"Gradient start/end of fit lines\");\n controls.push(qFitGradLabel);\n }\n var qFitGradStart = form.colorPicker({name: \"formFitCustomGradientStart\", label: !allow_control_groups ? \"\" : \"Gradient start of fit lines\", default_value: \"#5C9AD3\"});\n var qFitGradEnd = form.colorPicker({name: \"formFitCustomGradientEnd\", label: !allow_control_groups ? \"\" : \"Gradient end of fit lines\", default_value: \"#ED7D31\"});\n controls.push(qFitGradStart);\n controls.push(qFitGradEnd);\n }\n if (fitcolOpt == \"Custom palette\")\n {\n var qFitPalette = form.textBox({name: \"formFitCustomPalette\", label: !allow_control_groups ? \"\" : \"Custom palette of fit lines\", default_value: \"#5C9AD3, #ED7D31\", prompt: \"Enter color as a string. Multiple values should be separated by commas.\"});\n controls.push(qFitPalette);\n }\n }\n }\n }\n}\n \nif (FONT != null)\n{\n if (allow_control_groups)\n form.group(\"FONT\");\n if (FONT.indexOf('GlobalFontFamily') > -1)\n {\n var qGlobalFontFamily = form.comboBox({name: \"formFont\", label: \"Global font family\", alternatives: font_families, default_value: \"Arial\"});\n if (!allow_control_groups)\n qGlobalFontFamily.lineBreakAfter = false;\n controls.push(qGlobalFontFamily);\n var globalFontFamily = qGlobalFontFamily.getValue();\n }\n if (FONT.indexOf('GlobalFontColor') > -1 && !(chartType == \"Bar Pictograph\" && labColAsIcon))\n {\n if (!allow_control_groups)\n {\n var qGlobalFontColorLabel = form.newLabel(\"Global font color\");\n controls.push(qGlobalFontColorLabel);\n }\n var qGlobalFontColor = form.colorPicker({name: \"formFontColor\", label: !allow_control_groups ? \"\" : \"Global font color\", default_value: \"#2C2C2C\"});\n if (!allow_control_groups)\n qGlobalFontColor.lineBreakAfter = true;\n controls.push(qGlobalFontColor);\n var globalFontColor = qGlobalFontColor.getValue();\n }\n}\n \nif (DATA_LABELS != null)\n{\n if (allow_control_groups)\n form.group(\"DATA LABELS\");\n var datalabshow = true;\n if (DATA_LABELS.indexOf('DataLabelPosition') > -1)\n {\n var qLabelPos = form.comboBox({name:\"formDataLabelPosition\", label: \"Show data label\", alternatives: [\"No\", \"Next to bar\", \"Below row label\", \"Above row label\", \"Below icons\", \"Above icons\"], default_value: \"Next to bar\"});\n controls.push(qLabelPos);\n var dLabOpt = qLabelPos.getValue();\n if (dLabOpt == \"No\")\n datalabshow = false;\n if (dLabOpt == \"Below icons\" || dLabOpt == \"Above icons\")\n {\n var qLabelHAlign = form.comboBox({name:\"formDataLabelHorizAlign\", label:\" Data label horizontal alignment\", alternatives: [\"Default\", \"Left\", \"Center\", \"Right\"], default_value: \"Default\"});\n if (!allow_control_groups)\n qLabelHAlign.lineBreakAfter = true;\n controls.push(qLabelHAlign);\n }\n }\n if (DATA_LABELS.indexOf('DataLabelShow') > -1)\n {\n var qDatalabShow = form.checkBox({name: \"formDataLabelShow\", label: \"Show data labels\", default_value: false});\n if (!allow_control_groups)\n qDatalabShow.lineBreakAfter = true;\n controls.push(qDatalabShow);\n var datalabshow = qDatalabShow.getValue();\n } \n if (datalabshow && DATA_LABELS.indexOf('DataLabelFont') > -1)\n {\n qDatalabFont = form.comboBox({name: \"formDataLabelFontFamily\", label: \"Data label font family\", alternatives: font_families, default_value: globalFontFamily});\n controls.push(qDatalabFont);\n if (!(chartType == \"Bar Pictograph\" && labColAsIcon) && !(chartType == \"Heat\"))\n {\n if (!allow_control_groups)\n {\n var qDataLabelFontColorLabel = form.newLabel(\"Data label font color\");\n controls.push(qDataLabelFontColorLabel);\n }\n var qDatalabFont = form.colorPicker({name: \"formDataLabelFontColor\", label: !allow_control_groups ? \"\" : \"Data label font color\", default_value: globalFontColor});\n if (!allow_control_groups)\n qDatalabFont.lineBreakAfter = true\n controls.push(qDatalabFont);\n }\n qDataLabelSize = form.numericUpDown({name: \"formDataLabelFontSize\", label: \"Data label font size\", default_value: 10});\n if (!allow_control_groups)\n qDataLabelSize.lineBreakAfter = true;\n controls.push(qDataLabelSize);\n }\n if (chartType == \"Venn\" && DATA_LABELS.indexOf('DataLabelFontSize') > -1)\n {\n var qDataLabelSize = form.numericUpDown({name: \"formDataLabelFontSize\", label: \"Data label font size\", default_value: 10});\n if (!allow_control_groups)\n qDataLabelSize.lineBreakAfter = true;\n controls.push(qDataLabelSize);\n }\n if (datalabshow && DATA_LABELS.indexOf('DataLabelFormat') > -1)\n {\n var qDataLabelFormat = form.comboBox({name: \"formDataLabelNumberType\", label: \"Number type\", alternatives: data_label_formats, default_value: data_label_formats[0], required: true});\n var dataLabelFormat = qDataLabelFormat.getValue();\n controls.push(qDataLabelFormat);\n }\n if (datalabshow && (DATA_LABELS.indexOf('DataLabelDecimals') > -1 || (DATA_LABELS.indexOf('DataLabelFormat') > -1)))\n {\n if (!allow_control_groups) \n {\n var qDataLabDecimals = form.numericUpDown({name: \"formDataLabelDecimals\", label: \"Decimal places\", default_value: 0, increment: 1, minimum: 0, maximum: 12, required: false});\n qDataLabDecimals.lineBreakAfter = true;\n }\n else\n var qDataLabDecimals = form.numericUpDown({name: \"formDataLabelDecimals\", label: \"Decimal places\", increment: 1, minimum: 0, maximum: 12, required: false});\n controls.push(qDataLabDecimals);\n }\n if (datalabshow && DATA_LABELS.indexOf('DataLabelPrefix') > -1)\n {\n var qDLabPrefix = form.textBox({name:'formPrefix', label: 'Custom prefix', required: false});\n if (!allow_control_groups)\n qDLabPrefix.lineBreakAfter = true;\n controls.push(qDLabPrefix);\n }\n if (datalabshow && DATA_LABELS.indexOf('DataLabelSuffix') > -1)\n {\n var qDLabSuffix = form.textBox({name:'formSuffix', label: 'Custom suffix', required: false});\n if (!allow_control_groups)\n qDLabSuffix.lineBreakAfter = true;\n controls.push(qDLabSuffix);\n }\n if (DATA_LABELS.indexOf('data.label.max.plot') > -1)\n {\n var qDLabMax = form.numericUpDown({name: \"formMaxLab\", label: \"Maximum data labels to plot\", default_value: 50, maximum: 200, minimum: 0});\n controls.push(qDLabMax);\n }\n}\nif (GRIDLINES != null)\n{\n if (allow_control_groups)\n form.group(\"GRID LINES\");\n if (GRIDLINES.indexOf('ShowGrid') > -1)\n {\n var qGrid = form.checkBox({name: \"formShowGrid\", label: \"Show grid lines\", default_value: true});\n if (!allow_control_groups)\n qGrid.lineBreakAfter = true;\n controls.push(qGrid);\n }\n}\nif (LEGEND != null)\n{\n if (allow_control_groups)\n form.group(\"LEGEND\");\n var hasleg = 1;\n if (LEGEND.indexOf('LegendShow') > -1)\n {\n var qLegShow = form.checkBox({name: \"formLegendShow\", label: \"Show legend (if applicable)\", default_value: true});\n if (!allow_control_groups)\n qLegShow.lineBreakAfter= true;\n controls.push(qLegShow);\n hasleg = qLegShow.getValue();\n }\n if (hasleg && LEGEND.indexOf('LegendTitle') > -1)\n {\n var qLegTitle = form.textBox({label: \"Legend title\", type: \"text\", name: \"formLegendTitle\", required: false});\n if (!allow_control_groups)\n qLegTitle.lineBreakAfter = true;\n controls.push(qLegTitle);\n }\n if (hasleg && LEGEND.indexOf('LegendFont') > -1)\n {\n var qLegFont = form.comboBox({name: \"formLegendFontFamily\", label: \"Legend font family\", alternatives: font_families, default_value: globalFontFamily});\n controls.push(qLegFont);\n if (chartType != \"Palm\")\n {\n if (!allow_control_groups)\n {\n var qLegendFontColorLabel = form.newLabel(\"Legend font color\");\n controls.push(qLegendFontColorLabel);\n }\n var qLegFontCol = form.colorPicker({name: \"formLegendFontColor\", label: !allow_control_groups ? \"\" : \"Legend font color\", default_value: globalFontColor});\n if (!allow_control_groups)\n qLegFontCol.lineBreakAfter = true;\n controls.push(qLegFontCol);\n }\n var qLegSize = form.numericUpDown({name: \"formLegendFontSize\", label: \"Legend font size\", default_value: 10});\n if (!allow_control_groups)\n qLegSize.lineBreakAfter = true;\n controls.push(qLegSize);\n }\n if (hasleg && LEGEND.indexOf('LegendPosition') > -1)\n {\n var qLegX = form.numericUpDown({name: \"formLegendXPos\", label: \"Horizontal placement\", default_value: 1.02, increment: 0.02, minimum: -2, maximum: 3, prompt: \"Choose numeric value between -2 (far left) to 3 (far right)\"});\n var qLegY = form.numericUpDown({name: \"formLegendYPos\", label: \"Vertical placement\", default_value: 1.00, increment: 0.02, minimum: -2, maximum: 3, prompt: \"Choose numeric value between -2 (below) and 3 (above)\"});\n if (!allow_control_groups)\n qLegX.lineBreakAfter = true;\n if (!allow_control_groups)\n qLegY.lineBreakAfter = true;\n controls.push(qLegX);\n controls.push(qLegY);\n }\n if (LEGEND.indexOf('LegendWidth') > -1)\n {\n var qLegWidth = form.numericUpDown({name: \"formLegendWidth\", label: \"Legend width\", default_value: 250, increment: 1, minimum: 1, maximum: 1000, prompt: \"Choose numeric value between 1 and 1000\"});\n if (!allow_control_groups)\n qLegWidth.lineBreakAfter = true;\n controls.push(qLegWidth);\n }\n}\nif (TITLE != null)\n{\n if (allow_control_groups)\n form.group('Title');\n if (TITLE.indexOf('Title') > -1)\n {\n var qTitle = form.textBox({name:\"formTitle\", label:\"Title\", required:false});\n if (!allow_control_groups)\n qTitle.lineBreakAfter = true;\n controls.push(qTitle);\n var titleOpt = qTitle.getValue();\n if (!isEmptyString(titleOpt))\n {\n var qTitleFont = form.comboBox({name: \"formTitleFontFamily\", label: \"Title font family\", alternatives: font_families, default_value: globalFontFamily});\n if (!allow_control_groups)\n {\n var qTitleFontColorLabel = form.newLabel(\"Title font color\");\n controls.push(qTitleFontColorLabel);\n }\n var qTitleColor = form.colorPicker({name: \"formTitleFontColor\", label: !allow_control_groups ? \"\" : \"Title font color\", default_value: globalFontColor});\n var qTitleSize = form.numericUpDown({name:\"formTitleFontSize\", label:\"Title font size\", default_value: 16});\n if (!allow_control_groups)\n qTitleColor.lineBreakAfter = true;\n if (!allow_control_groups)\n qTitleSize.lineBreakAfter = true;\n controls.push(qTitleFont);\n controls.push(qTitleColor);\n controls.push(qTitleSize);\n }\n }\n if (show_as_small_mult)\n {\n var qSmallMultTitle = form.checkBox({name:\"formSmallMultTitle\", label:\"Show panel titles\", default_value: true});\n if (!allow_control_groups)\n qSmallMultTitle.lineBreakAfter = true;\n controls.push(qSmallMultTitle);\n if (qSmallMultTitle.getValue())\n {\n var qSmallMultTitleFont = form.comboBox({name: \"formSmallMultTitleFontFamily\", label: \"Panel title font family\", alternatives: font_families, default_value: globalFontFamily});\n if (!allow_control_groups)\n {\n var qSmallMultTitleColorLabel = form.newLabel(\"Panel title font color\");\n controls.push(qSmallMultTitleColorLabel);\n }\n var qSmallMultTitleColor = form.colorPicker({name: \"formSmallMultTitleFontColor\", label: !allow_control_groups ? \"\" : \"Panel title font color\", default_value: globalFontColor});\n var qSmallMultTitleSize = form.numericUpDown({name:\"formSmallMultTitleFontSize\", label:\"Panel title font size\", default_value: 14});\n if (!allow_control_groups)\n qSmallMultTitleColor.lineBreakAfter = true;\n if (!allow_control_groups)\n qSmallMultTitleSize.lineBreakAfter = true;\n controls.push(qSmallMultTitleFont);\n controls.push(qSmallMultTitleColor);\n controls.push(qSmallMultTitleSize);\n var qSmallMultTitleWrap = form.checkBox({label: \"Wrap panel titles\", name: \"formSmallMultTitleWrap\", default_value: true});\n controls.push(qSmallMultTitleWrap);\n if (qSmallMultTitleWrap.getValue())\n {\n var qSmallMultTitleWrapN = form.numericUpDown({name: \"formSmallMultTitleWrapNchar\", label: \"Panel title line width\", default_value: 20, minimum: 5, increment: 1, maximum: 5000});\n controls.push(qSmallMultTitleWrapN);\n }\n }\n }\n if (!show_as_small_mult && TITLE.indexOf('Subtitle') > -1)\n {\n var qSubtitle = form.textBox({name:\"formSubtitle\", label:\"Subtitle\", required:false});\n if (!allow_control_groups)\n qSubtitle.lineBreakAfter = true;\n var subtitleOpt = qSubtitle.getValue();\n controls.push(qSubtitle);\n if (!isEmptyString(subtitleOpt))\n {\n var qSubtitleFont = form.comboBox({name: \"formSubtitleFontFamily\", label: \"Subtitle font family\", alternatives: font_families, default_value: globalFontFamily});\n if (!allow_control_groups)\n {\n var qSubtitleColorLabel = form.newLabel(\"Subtitle font color\");\n controls.push(qSubtitleColorLabel);\n }\n var qSubtitleColor = form.colorPicker({name: \"formSubtitleFontColor\", label: !allow_control_groups ? \"\" : \"Subtitle font color\", default_value: globalFontColor});\n var qSubtitleSize = form.numericUpDown({name:\"formSubtitleFontSize\", label:\"Subtitle font size\", default_value: 12});\n if (!allow_control_groups)\n qSubtitleColor.lineBreakAfter = true;\n if (!allow_control_groups)\n qSubtitleSize.lineBreakAfter = true;\n controls.push(qSubtitleFont);\n controls.push(qSubtitleColor);\n controls.push(qSubtitleSize);\n }\n }\n if (!show_as_small_mult && TITLE.indexOf('Footer') > -1)\n {\n var qFooter = form.textBox({name:\"formFooter\", label:\"Footer\", required:false});\n if (!allow_control_groups)\n qFooter.lineBreakAfter = true;\n var footerOpt = qFooter.getValue();\n controls.push(qFooter);\n if (chartType == \"Scatter\" || !isEmptyString(footerOpt))\n {\n var qFooterFont = form.comboBox({name: \"formFooterFontFamily\", label: \"Footer font family\", alternatives: font_families, default_value: globalFontFamily});\n if (!allow_control_groups)\n {\n var qFooterColorLabel = form.newLabel(\"Footer font color\");\n controls.push(qFooterColorLabel);\n }\n var qFooterColor = form.colorPicker({name: \"formFooterFontColor\", label: !allow_control_groups ? \"\" : \"Footer font color\", default_value: globalFontColor});\n var qFooterSize = form.numericUpDown({name:\"formFooterFontSize\", label:\"Footer font size\", default_value: 8});\n if (!allow_control_groups)\n qFooterColor.lineBreakAfter = true;\n if (!allow_control_groups)\n qFooterSize.lineBreakAfter = true;\n controls.push(qFooterFont);\n controls.push(qFooterColor);\n controls.push(qFooterSize);\n if (chartType != \"Heat\")\n {\n var footerWrapOpt = form.checkBox({name: \"formFooterWrap\", label: \"Wrap footer\", default_value: true});\n controls.push(footerWrapOpt);\n if (footerWrapOpt.getValue())\n {\n var qFooterWrapN = form.numericUpDown({name: \"formFooterWrapNchar\", label: \"Footer line width\", default_value: 100, minimum: 5, increment: 5, maximum: 5000});\n controls.push(qFooterWrapN);\n }\n }\n }\n }\n}\nif (CATEGORIES_AXIS != null)\n{\n var axisPrefix = \"Axis\";\n if (allow_control_groups)\n form.group(categoriesAxisLabel);\n else\n axisPrefix = categoriesAxisLabel.charAt(0).toUpperCase() + categoriesAxisLabel.substr(1).toLowerCase();\n var labelShowX = \"Show \" + axisPrefix.toLowerCase();\n \n if (CATEGORIES_AXIS.indexOf('CategoriesTitle') > -1)\n {\n var qShowXTitle = form.checkBox({name: \"formShowCategoriesTitle\", label: labelShowX + \" title\", default_value: true});\n if (!allow_control_groups)\n qShowXTitle.lineBreakAfter = true;\n var showCategoriesTitle = qShowXTitle.getValue();\n controls.push(qShowXTitle);\n if (showCategoriesTitle)\n {\n var qXTitle = form.textBox({name: \"formCategoriesTitle\", label: axisPrefix + \" title\", required: false});\n if (!allow_control_groups)\n qXTitle.lineBreakAfter = true;\n var qXTitleFont = form.comboBox({name: \"formCategoriesTitleFontFamily\", label: axisPrefix + \" title font family\", alternatives: font_families, default_value: globalFontFamily});\n controls.push(qXTitle);\n controls.push(qXTitleFont);\n \n if (chartType != \"Palm\")\n {\n if (!allow_control_groups)\n {\n var qXTitleColorLabel = form.newLabel(axisPrefix + \" title font color\");\n controls.push(qXTitleColorLabel);\n }\n var qXTitleColor = form.colorPicker({name: \"formCategoriesTitleFontColor\", label: !allow_control_groups ? \"\" : axisPrefix + \" title font color\", default_value: globalFontColor});\n if (!allow_control_groups)\n qXTitleColor.lineBreakAfter = true;\n controls.push(qXTitleColor);\n }\n var qXTitleSize = form.numericUpDown({name: \"formCategoriesTitleFontSize\", label: axisPrefix + \" title font size\", default_value: 12});\n if (!allow_control_groups)\n qXTitleSize.lineBreakAfter = true;\n controls.push(qXTitleSize);\n }\n }\n if (chartType == \"Bar Pictograph\")\n labelShowX = \"Show bar labels\";\n var showX = true;\n if (CATEGORIES_AXIS.indexOf('CategoriesAxisShow') > -1)\n {\n qShowX = form.checkBox({name: \"formCategoriesAxisShow\", label: labelShowX, default_value: true});\n if (!allow_control_groups)\n qShowX.lineBreakAfter = true;\n showX = qShowX.getValue();\n controls.push(qShowX);\n } \n\n if (chartType == \"Stream\")\n {\n var qTickUnits = form.comboBox({name: \"formCategoriesTickUnits\", label: axisPrefix + \" tick units\", alternatives: [\"Automatic\", \"Number\", \"Day\", \"Month\", \"Year\"], default_value: \"Automatic\"});\n controls.push(qTickUnits);\n var qAutoTickDist = form.checkBox({name: \"formCategoriesAutoTickInterval\", label: \"Automatic tick interval\", default: true});\n if (allow_control_groups)\n qAutoTickDist.lineAfterBreak = true;\n var auto_tick_distance = qAutoTickDist.getValue();\n controls.push(qAutoTickDist);\n if (!auto_tick_distance)\n {\n var qTickIntervals = form.numericUpDown({name: \"formCategoriesTickInterval\", label: axisPrefix + \" tick interval\", default_value: 3, increment: 1, minimum: 1, maximum: 1000000});\n if (allow_control_groups)\n qTickIntervals.lineAfterBreak = true;\n controls.push(qTickIntervals);\n }\n }\n\n if (showX)\n {\n if (CATEGORIES_AXIS.indexOf('CategoriesNumberFormat') > -1)\n {\n var qXNumberType = form.comboBox({name: \"formCategoriesNumberType\", label: axisPrefix + \" number type\", alternatives: categories_number_formats, default_value: categories_number_formats[0], required: true});\n controls.push(qXNumberType);\n var xNumberType = qXNumberType.getValue();\n if (xNumberType == \"Date/Time\")\n {\n var qXDate = form.comboBox({name: \"formCategoriesDateType\", label: \"Date type\", alternatives: date_formats, default_value: date_formats[0], required: true});\n controls.push(qXDate);\n xNumberType = qXDate.getValue();\n }\n var qXNumberCustom = null;\n if (xNumberType == 'Custom')\n qXNumberCustom = form.textBox({name: \"formCategoriesNumberCustom\", label: \"Custom code\", default_value: \"%d %b %y\", required: true});\n else if (xNumberType == 'Currency')\n qXNumberCustom = form.textBox({name: \"formCategoriesCurrency\", label: \"Currency symbol\", default_value: \"\", required: true}); \n else if (xNumberType == 'Number' || xNumberType == 'Currency')\n qXNumberCustom = form.checkBox({name: \"formCategoriesSeparateThousands\", label: \"Separate thousands by comma\", default: true});\n if (qXNumberCustom != null)\n {\n if (!allow_control_groups)\n qXNumberCustom.lineBreakAfter = true;\n controls.push(qXNumberCustom);\n }\n if (!allow_control_groups)\n {\n var qXDecimals = form.numericUpDown({name:\"formCategoriesDecimals\", default_value: 0, label: xNumberType == \"Metric unit suffix\" ? \"Significant digits\": \"Decimal places\", minimum: xNumberType == \"Metric unit suffix\" ? 1 : 0, required: false});\n qXDecimals.lineBreakAfter = true;\n }\n else\n var qXDecimals = form.numericUpDown({name:\"formCategoriesDecimals\", label: xNumberType == \"Metric unit suffix\" ? \"Significant digits\": \"Decimal places\", minimum: xNumberType == \"Metric unit suffix\" ? 1 : 0, required: false});\n controls.push(qXDecimals);\n if (CATEGORIES_AXIS.indexOf('CategoriesPrefix') > -1)\n {\n var qXPrefix = form.textBox({name: \"formCategoriesPrefix\", label: \"Custom prefix\", default_value: \"\", required: false}); \n var qXSuffix = form.textBox({name: \"formCategoriesSuffix\", label: \"Custom suffix\", default_value: \"\", required: false});\n if (!allow_control_groups)\n qXPrefix.lineBreakAfter = true;\n if (!allow_control_groups)\n qXSuffix.lineBreakAfter = true;\n controls.push(qXPrefix);\n controls.push(qXSuffix);\n }\n }\n if (CATEGORIES_AXIS.indexOf('CategoriesTickInterval') > -1)\n {\n var qXTickInterval = form.numericUpDown({name: \"formCategoriesTickInterval\", label: axisPrefix + \" tick interval\", default_value: 1, increment: 1, minimum: 1, maximum: 1000});\n controls.push(qXTickInterval);\n }\n if (CATEGORIES_AXIS.indexOf('CategoriesTickFont') > -1)\n {\n var qXTickFont = form.comboBox({name: \"formCategoriesTickFontFamily\", label: axisPrefix + \" label font family\", alternatives: font_families, default_value: globalFontFamily});\n controls.push(qXTickFont);\n if (chartType != \"Palm\" && !(chartType == \"Bar Pictograph\" && labColAsIcon))\n {\n if (!allow_control_groups)\n {\n var qXTickColorLabel = form.newLabel(axisPrefix + \" label font color\");\n controls.push(qXTickColorLabel);\n }\n var qXTickColor = form.colorPicker({name: \"formCategoriesTickFontColor\", label: !allow_control_groups ? \"\" : axisPrefix + \" label font color\", default_value: globalFontColor});\n if (!allow_control_groups)\n qXTickColor.lineBreakAfter = true;\n controls.push(qXTickColor);\n }\n var qXTickSize = form.numericUpDown({name: \"formCategoriesTickFontSize\", label: axisPrefix + \" label font size\", default_value: 10});\n if (!allow_control_groups)\n qXTickSize.lineBreakAfter = true;\n controls.push(qXTickSize);\n }\n if (CATEGORIES_AXIS.indexOf('CategoriesTickHorizAlign') > -1)\n {\n var qXTickHAlign = form.comboBox({name:\"formCategoriesTickHorizAlign\", label: \"Horizontal alignment\", alternatives: [\"Default\", \"Left\", \"Center\", \"Right\"], default_value: \"Default\"}); \n controls.push(qXTickHAlign);\n }\n if (CATEGORIES_AXIS.indexOf('CategoriesTickAngle') > -1)\n {\n var qXTickAngle = form.comboBox({name: \"formCategoriesTickAngle\", label: axisPrefix + \" label orientation\", alternatives: [\"Automatic\", \"Horizontal\", \"Vertical\", \"Diagonal\"], default_value: \"Automatic\"});\n controls.push(qXTickAngle);\n }\n if (CATEGORIES_AXIS.indexOf('LabelWrap') > -1)\n {\n var qXWrap = form.checkBox({name: \"formLabelWrap\", label: \"Wrap \" + axisPrefix.toLowerCase() + \" label\", default_value: true});\n if (!allow_control_groups)\n qXWrap.lineBreakAfter = true;\n var xWrapOpt = qXWrap.getValue();\n controls.push(qXWrap);\n if (xWrapOpt)\n {\n var qXWrapN = form.numericUpDown({name: \"formLabelWrapNchar\", label: axisPrefix + \" label line width\", default_value: 21, minimum: 5, increment: 5, maximum: 1000});\n if (!allow_control_groups)\n qXWrapN.lineBreakAfter = true;\n controls.push(qXWrapN);\n }\n } \n }\n}\nif (VALUES_AXIS != null)\n{\n var axisPrefix = \"Axis\";\n if (allow_control_groups)\n form.group(valuesAxisLabel);\n else\n axisPrefix = valuesAxisLabel.charAt(0).toUpperCase() + valuesAxisLabel.substr(1).toLowerCase();\n var labelShowY = \"Show \" + axisPrefix.toLowerCase();\n \n if (VALUES_AXIS.indexOf('ValuesTitle') > -1)\n {\n var qShowValuesTitle = form.checkBox({name: \"formShowValuesTitle\", label: labelShowY + \" title\", default_value: true});\n var showValuesTitle = qShowValuesTitle.getValue();\n if (!allow_control_groups)\n qShowValuesTitle.lineBreakAfter = true;\n controls.push(qShowValuesTitle);\n if (showValuesTitle)\n {\n var qYTitle = form.textBox({name: \"formValuesTitle\", label: axisPrefix + \" title\", required: false});\n if (!allow_control_groups)\n qYTitle.lineBreakAfter = true;\n var qYTitleFont = form.comboBox({name: \"formValuesTitleFontFamily\", label: axisPrefix + \" title font family\", alternatives: font_families, default_value: globalFontFamily});\n controls.push(qYTitle);\n controls.push(qYTitleFont);\n if (chartType != \"Palm\")\n {\n if (!allow_control_groups)\n {\n var qYTitleColorLabel = form.newLabel(axisPrefix + \"title font color\");\n controls.push(qYTitleColorLabel);\n }\n var qYTitleColor = form.colorPicker({name: \"formValuesTitleFontColor\", label: !allow_control_groups ? \"\" : axisPrefix + \" title font color\", default_value: globalFontColor});\n if (!allow_control_groups)\n qYTitleColor.lineBreakAfter = true;\n controls.push(qYTitleColor);\n }\n var qYTitleSize = form.numericUpDown({name: \"formValuesTitleFontSize\", label: axisPrefix + \" title font size\", default_value: 12});\n if (!allow_control_groups)\n qYTitleSize.lineBreakAfter = true;\n controls.push(qYTitleSize);\n }\n }\n var showY = true;\n if (VALUES_AXIS.indexOf('ValuesAxisShow') > -1)\n {\n qShowY = form.checkBox({name: \"formValuesAxisShow\", label: labelShowY, default_value: true});\n if (!allow_control_groups)\n qShowY.lineBreakAfter = true;\n controls.push(qShowY);\n showY = qShowY.getValue();\n } \n if (showY) \n {\n if (VALUES_AXIS.indexOf('ValuesMin') > -1)\n {\n var qYMin = form.textBox({name: \"formValuesMin\", label: \"Minimum value\", required: false, prompt: \"Leave blank to determine automatically from input data.\"});\n controls.push(qYMin);\n }\n if (VALUES_AXIS.indexOf('ValuesMax') > -1)\n {\n var qYMax = form.textBox({name: \"formValuesMax\", label: \"Maximum value\", required: false, prompt: \"Leave blank to determine automatically from input data.\"});\n controls.push(qYMax);\n }\n if (VALUES_AXIS.indexOf('ValuesNumberFormat') > -1)\n {\n var qYNumberType = form.comboBox({name: \"formValuesNumberType\", label: axisPrefix + \" number type\", alternatives: values_number_formats, default_value: values_number_formats[0], required: true});\n controls.push(qYNumberType);\n var yNumberType = qYNumberType.getValue();\n if (yNumberType == \"Date/Time\") // funny loop because date/time can be custom\n {\n var qYDate = form.comboBox({name: \"formValuesDateType\", label: \"Date type\", alternatives: date_formats, default_value: date_formats[0], required: true});\n yNumberType = qYDate.getValue();\n controls.push(qYDate);\n }\n\n var qYNumberCustom = null;\n if (yNumberType == \"Custom\")\n qYNumberCustom = form.textBox({name: \"formValuesNumberCustom\", label: \"Custom code\", default_value: \"%d %b %y\", required: true});\n else if (yNumberType == 'Currency')\n qYNumberCustom = form.textBox({name: \"formValuesCurrency\", label: \"Currency symbol\", default_value: \"\", required: true}); \n else if ((yNumberType == 'Number' || yNumberType == 'Currency') && chartType != \"Palm\")\n qYNumberCustom = form.checkBox({name: \"formValuesSeparateThousands\", label: \"Separate thousands by comma\", default: true});\n if (qYNumberCustom != null)\n {\n if (!allow_control_groups)\n qYNumberCustom.lineBreakAfter = true;\n controls.push(qYNumberCustom);\n }\n if (!allow_control_groups)\n {\n var qYDecimals = form.numericUpDown({name:\"formValuesDecimals\", default_value: 0, label: yNumberType == \"Metric unit suffix\" ? \"Significant digits\": \"Decimal places\", minimum: yNumberType == \"Metric unit suffix\" ? 1 : 0, required: false});\n qYDecimals.lineBreakAfter = true;\n }\n else\n var qYDecimals = form.numericUpDown({name:\"formValuesDecimals\", label: yNumberType == \"Metric unit suffix\" ? \"Significant digits\": \"Decimal places\", minimum: yNumberType == \"Metric unit suffix\" ? 1 : 0, required: false});\n controls.push(qYDecimals);\n if (VALUES_AXIS.indexOf('ValuesPrefix') > -1)\n {\n var qYPrefix = form.textBox({name: \"formValuesPrefix\", label: \"Custom prefix\", default_value: \"\", required: false}); \n var qYSuffix = form.textBox({name: \"formValuesSuffix\", label: \"Custom suffix\", default_value: \"\", required: false}); \n if (!allow_control_groups)\n qYPrefix.lineBreakAfter = true\n if (!allow_control_groups)\n qYSuffix.lineBreakAfter = true;\n controls.push(qYPrefix);\n controls.push(qYSuffix);\n }\n }\n if (showY && VALUES_AXIS.indexOf('ValuesNumberTicks') > -1) //Weird parameter for Stream Graph\n {\n var qYNumTicks = form.numericUpDown({name: \"formValuesNumberTicks\", label: \"Maximum number of ticks\", default_value: 5, increment: 1, minimum: 1, maximum: 1000});\n controls.push(qYNumTicks);\n }\n if (showY && VALUES_AXIS.indexOf('ValuesTickFont') > -1)\n {\n var qYTickFont = form.comboBox({name: \"formValuesTickFontFamily\", label: axisPrefix + \" label font family\", alternatives: font_families, default_value: globalFontFamily});\n if (chartType != \"Palm\")\n {\n if (!allow_control_groups)\n {\n var qYTickColorLabel = form.newLabel(axisPrefix + \" label font color\");\n controls.push(qYTickColorLabel);\n }\n var qYTickColor = form.colorPicker({name: \"formValuesTickFontColor\", label: !allow_control_groups ? \"\" : axisPrefix + \" label font color\", default_value: globalFontColor});\n if (!allow_control_groups)\n qYTickColor.lineBreakAfter = true;\n controls.push(qYTickColor);\n }\n var qYTickSize = form.numericUpDown({name: \"formValuesTickFontSize\", label: axisPrefix + \" label font size\", default_value: 10});\n controls.push(qYTickSize);\n }\n }\n}\nif (HOVER != null)\n{\n if (allow_control_groups)\n form.group(\"HOVER\");\n var showHover = true;\n if (HOVER.indexOf('HoverShow') > -1)\n {\n var qShowHover = form.checkBox({name: \"formHoverShow\", label: \"Show hover text\", default_value: true});\n showHover = qShowHover.getValue();\n controls.push(qShowHover);\n }\n if (showHover && HOVER.indexOf('HoverNumberFormat') > -1 )\n {\n var qHoverNumberType = form.comboBox({name: \"formHoverNumberType\", label: \"Hovertext number type\", alternatives: hover_number_formats, default_value: hover_number_formats[0], required: true});\n var hoverNumberType = qHoverNumberType.getValue();\n controls.push(qHoverNumberType);\n if (hoverNumberType == \"Date/Time\")\n {\n var qHoverDate = form.comboBox({name: \"formHoverDateType\", label: \"Date type\", alternatives: date_formats, default_value: date_formats[0], required: true});\n hoverNumberType = qHoverDate.getValue();\n controls.push(qHoverDate);\n }\n\n var qHoverCustom = null;\n if (hoverNumberType == \"Custom\")\n qHoverCustom = form.textBox({name: \"formHoverNumberCustom\", label: \"Custom code\", default_value: \"%d %b %y\", required: true});\n else if (hoverNumberType == 'Number' && chartType != \"Venn\" && chartType != \"Stream\")\n qHoverCustom = form.checkBox({name: \"formHoverSeparateThousands\", label: \"Separate thousands by comma\", default: true});\n if (qHoverCustom != null)\n {\n if (!allow_control_groups)\n qHoverCustom.lineBreakAfter = true;\n controls.push(qHoverCustom);\n }\n if (!allow_control_groups)\n {\n var qHoverDecimals = form.numericUpDown({name:\"formHoverDecimals\", default_value: 0, label: hoverNumberType == \"Metric unit suffix\" ? \"Significant digits\": \"Decimal places\", minimum: hoverNumberType == \"Metric unit suffix\" ? 1 : 0, required: false});\n qHoverDecimals.lineBreakAfter = true;\n }\n else\n var qHoverDecimals = form.numericUpDown({name:\"formHoverDecimals\", label: hoverNumberType == \"Metric unit suffix\" ? \"Significant digits\": \"Decimal places\", minimum: hoverNumberType == \"Metric unit suffix\" ? 1 : 0, required: false});\n controls.push(qHoverDecimals);\n }\n}\nif (typeof MARGINS != 'undefined')\n{\n if (allow_control_groups)\n form.group(\"MARGINS\");\n if (MARGINS.indexOf('Margin') > -1)\n {\n var qMarginTop = form.numericUpDown({name: \"formMarginTop\", label: \"Top\", default_value: 30, increment: 1, minimum: 0, maximum: 1000});\n var qMarginLeft = form.numericUpDown({name: \"formMarginLeft\", label: \"Left\", default_value: 80, increment: 1, minimum: 0, maximum: 1000});\n var qMarginBottom = form.numericUpDown({name: \"formMarginBottom\", label: \"Bottom\", default_value: 50, increment: 1, minimum: 0, maximum: 1000});\n var qMarginRight = form.numericUpDown({name: \"formMarginRight\", label: \"Right\", default_value: 40, increment: 1, minimum: 0, maximum: 1000});\n controls.push(qMarginTop);\n controls.push(qMarginLeft);\n controls.push(qMarginBottom);\n controls.push(qMarginRight);\n }\n}\nform.setInputControls(controls);","JSError":null,"JSErrorDetails":null,"ControlDefinitionErrors":null,"InputValidationErrors":null,"Controls":[{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formChartType","Page":null,"Group":"OUTPUT","Type":"ComboBox","Label":"Chart type","LabelEmphasised":false,"Value":"Radar","Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":true,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":["Table","Area","Bar","Bar Pictograph","Bean","Box","Column","Density","Donut","Geographic Map","Heat","Histogram","Line","Palm","Pie","Radar","Stream","Scatter","Time Series","Venn","Violin"],"CheckAlign":null,"Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formTable","Page":null,"Group":"DATA SOURCE","Type":"DropBox","Label":"Output in 'Pages","LabelEmphasised":false,"Value":"1b155868-0db9-4d59-84cd-b5de46d70039","Allowed":null,"Multi":false,"Prompt":"Outputs are tables or other Q or R outputs in the 'Pages' tree (top-left)","ErrorMessage":"Output in 'Pages: Output in 'Pages accepts only one input which is of type Table or Ritem (Integer, Numeric, Matrix, Array, Data.Frame, Table or List).","Invalid":null,"Required":false,"AllowedTypes":["Table","RItem:integer,numeric,matrix,array,data.frame,table,list"],"OwnerRItemGuid":"43c64f00-7cb3-4894-83d0-715d96ddb527","MinInputs":0,"MaxInputs":1,"Height":1,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formFirstAggregate","Page":null,"Group":"DATA MANIPULATION","Type":"CheckBox","Label":"Aggregate the data prior to plotting","LabelEmphasised":false,"Value":false,"Allowed":null,"Multi":false,"Prompt":"The data is 'raw', where each row represents an individual case. It needs to be aggregated prior to plotting.","ErrorMessage":null,"Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":"left","Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formTidy","Page":null,"Group":"DATA MANIPULATION","Type":"CheckBox","Label":"Automatically tidy the data","LabelEmphasised":false,"Value":true,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":"left","Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formTidyLabels","Page":null,"Group":"DATA MANIPULATION","Type":"CheckBox","Label":"Tidy labels","LabelEmphasised":false,"Value":true,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":"left","Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formTranspose","Page":null,"Group":"DATA MANIPULATION","Type":"CheckBox","Label":"Switch rows and columns","LabelEmphasised":false,"Value":false,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":"left","Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formIgnoreRows","Page":null,"Group":"DATA MANIPULATION","Type":"TextBox","Label":"Rows to ignore","LabelEmphasised":false,"Value":"NET, Total, SUM","Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formIgnoreColumns","Page":null,"Group":"DATA MANIPULATION","Type":"TextBox","Label":"Columns to ignore","LabelEmphasised":false,"Value":"NET, Total, SUM","Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formHideEmpty","Page":null,"Group":"DATA MANIPULATION","Type":"CheckBox","Label":"Hide empty rows and columns","LabelEmphasised":false,"Value":false,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":"left","Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formAsPercentages","Page":null,"Group":"DATA MANIPULATION","Type":"CheckBox","Label":"Convert to percentages/proportions","LabelEmphasised":false,"Value":false,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":"left","Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formDateFormat","Page":null,"Group":"DATA MANIPULATION","Type":"ComboBox","Label":"Date format","LabelEmphasised":false,"Value":"Automatic","Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":true,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":["Automatic","International (dd/mm/yyyy)","US (mm/dd/yyyy)"],"CheckAlign":null,"Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formSmallMultiples","Page":"Chart","Group":"APPEARANCE","Type":"CheckBox","Label":"Show as small multiples (panel chart)","LabelEmphasised":false,"Value":true,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":"left","Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formSmallMultNRows","Page":"Chart","Group":"APPEARANCE","Type":"NumericUpDown","Label":"Number of rows","LabelEmphasised":false,"Value":2.0,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":"Number of rows: ","Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":1.0,"Min":1.0,"Max":100.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formSmallMultAverage","Page":"Chart","Group":"APPEARANCE","Type":"CheckBox","Label":"Show average of all series","LabelEmphasised":false,"Value":true,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":"left","Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formSmallMultAverageColor","Page":"Chart","Group":"APPEARANCE","Type":"ColorPicker","Label":"Color of average series","LabelEmphasised":false,"Value":"rgb(153, 153, 153)","Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":"Color of average series: ","Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formSmallMultXOrder","Page":"Chart","Group":"APPEARANCE","Type":"TextBox","Label":"Order","LabelEmphasised":false,"Value":"1,2,3,4,6,7","Allowed":null,"Multi":false,"Prompt":"e.g '2,1,3', or leave blank to follow order of input data","ErrorMessage":null,"Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formSmallMultPadLeft","Page":"Chart","Group":"APPEARANCE","Type":"NumericUpDown","Label":"Left padding","LabelEmphasised":false,"Value":0.15,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":"Left padding: ","Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":0.01,"Min":0.0,"Max":100.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formSmallMultPadRight","Page":"Chart","Group":"APPEARANCE","Type":"NumericUpDown","Label":"Right padding","LabelEmphasised":false,"Value":0.06,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":"Right padding: ","Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":0.01,"Min":0.0,"Max":100.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formSmallMultPadTop","Page":"Chart","Group":"APPEARANCE","Type":"NumericUpDown","Label":"Top padding","LabelEmphasised":false,"Value":0.14,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":"Top padding: ","Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":0.01,"Min":0.0,"Max":1.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formSmallMultPadBottom","Page":"Chart","Group":"APPEARANCE","Type":"NumericUpDown","Label":"Bottom padding","LabelEmphasised":false,"Value":0.0,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":"Bottom padding: ","Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":0.01,"Min":0.0,"Max":1.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formLineThickness","Page":"Chart","Group":"APPEARANCE","Type":"NumericUpDown","Label":"Line thickness","LabelEmphasised":false,"Value":2.0,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":"Line thickness: ","Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":0.5,"Min":0.0,"Max":20.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formFillOpacity","Page":"Chart","Group":"APPEARANCE","Type":"NumericUpDown","Label":"Fill opacity","LabelEmphasised":false,"Value":0.0,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":"Fill opacity: ","Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":0.1,"Min":0.0,"Max":1.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formPalette","Page":"Chart","Group":"DATA SERIES","Type":"ComboBox","Label":"Color palette","LabelEmphasised":false,"Value":"Strong colors","Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":true,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":["Default colors","Primary colors","Rainbow","Light pastels","Strong colors","Reds, dark to light","Reds, light to dark","Greens, dark to light","Greens, light to dark","Blues, dark to light","Blues, light to dark","Greys, dark to light","Greys, light to dark","Heat colors (red, yellow, white)","Terrain colors (green, beige, grey)","Custom color","Custom gradient","Custom palette"],"CheckAlign":null,"Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formFont","Page":"Chart","Group":"FONT","Type":"ComboBox","Label":"Global font family","LabelEmphasised":false,"Value":"Arial","Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":true,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":["Andale Mono","Arial","Arial Black","Century Gothic","Comic Sans MS","Courier New","Georgia","Impact","Times New Roman","Trebuchet MS","Verdana"],"CheckAlign":null,"Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formFontColor","Page":"Chart","Group":"FONT","Type":"ColorPicker","Label":"Global font color","LabelEmphasised":false,"Value":"rgb(44, 44, 44)","Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":"Global font color: ","Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formDataLabelShow","Page":"Chart","Group":"DATA LABELS","Type":"CheckBox","Label":"Show data labels","LabelEmphasised":false,"Value":true,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":"left","Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formDataLabelFontFamily","Page":"Chart","Group":"DATA LABELS","Type":"ComboBox","Label":"Data label font family","LabelEmphasised":false,"Value":"Arial","Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":true,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":["Andale Mono","Arial","Arial Black","Century Gothic","Comic Sans MS","Courier New","Georgia","Impact","Times New Roman","Trebuchet MS","Verdana"],"CheckAlign":null,"Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formDataLabelFontColor","Page":"Chart","Group":"DATA LABELS","Type":"ColorPicker","Label":"Data label font color","LabelEmphasised":false,"Value":"rgb(44, 44, 44)","Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":"Data label font color: ","Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formDataLabelFontSize","Page":"Chart","Group":"DATA LABELS","Type":"NumericUpDown","Label":"Data label font size","LabelEmphasised":false,"Value":10.0,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":"Data label font size: ","Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":1.0,"Min":0.0,"Max":100.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formDataLabelNumberType","Page":"Chart","Group":"DATA LABELS","Type":"ComboBox","Label":"Number type","LabelEmphasised":false,"Value":"Percentage","Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":true,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":["Automatic","Number","Percentage"],"CheckAlign":null,"Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formDataLabelDecimals","Page":"Chart","Group":"DATA LABELS","Type":"NumericUpDown","Label":"Decimal places","LabelEmphasised":false,"Value":null,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":"Decimal places: ","Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":1.0,"Min":0.0,"Max":12.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formPrefix","Page":"Chart","Group":"DATA LABELS","Type":"TextBox","Label":"Custom prefix","LabelEmphasised":false,"Value":"","Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formSuffix","Page":"Chart","Group":"DATA LABELS","Type":"TextBox","Label":"Custom suffix","LabelEmphasised":false,"Value":"","Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formShowGrid","Page":"Chart","Group":"GRID LINES","Type":"CheckBox","Label":"Show grid lines","LabelEmphasised":false,"Value":true,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":"left","Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formTitle","Page":"Chart","Group":"Title","Type":"TextBox","Label":"Title","LabelEmphasised":false,"Value":" ","Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formTitleFontFamily","Page":"Chart","Group":"Title","Type":"ComboBox","Label":"Title font family","LabelEmphasised":false,"Value":"Arial","Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":true,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":["Andale Mono","Arial","Arial Black","Century Gothic","Comic Sans MS","Courier New","Georgia","Impact","Times New Roman","Trebuchet MS","Verdana"],"CheckAlign":null,"Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formTitleFontColor","Page":"Chart","Group":"Title","Type":"ColorPicker","Label":"Title font color","LabelEmphasised":false,"Value":"rgb(44, 44, 44)","Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":"Title font color: ","Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formTitleFontSize","Page":"Chart","Group":"Title","Type":"NumericUpDown","Label":"Title font size","LabelEmphasised":false,"Value":16.0,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":"Title font size: ","Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":1.0,"Min":0.0,"Max":100.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formSmallMultTitle","Page":"Chart","Group":"Title","Type":"CheckBox","Label":"Show panel titles","LabelEmphasised":false,"Value":true,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":"left","Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formSmallMultTitleFontFamily","Page":"Chart","Group":"Title","Type":"ComboBox","Label":"Panel title font family","LabelEmphasised":false,"Value":"Arial","Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":true,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":["Andale Mono","Arial","Arial Black","Century Gothic","Comic Sans MS","Courier New","Georgia","Impact","Times New Roman","Trebuchet MS","Verdana"],"CheckAlign":null,"Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formSmallMultTitleFontColor","Page":"Chart","Group":"Title","Type":"ColorPicker","Label":"Panel title font color","LabelEmphasised":false,"Value":"rgb(44, 44, 44)","Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":"Panel title font color: ","Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formSmallMultTitleFontSize","Page":"Chart","Group":"Title","Type":"NumericUpDown","Label":"Panel title font size","LabelEmphasised":false,"Value":14.0,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":"Panel title font size: ","Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":1.0,"Min":0.0,"Max":100.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formSmallMultTitleWrap","Page":"Chart","Group":"Title","Type":"CheckBox","Label":"Wrap panel titles","LabelEmphasised":false,"Value":true,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":"left","Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formSmallMultTitleWrapNchar","Page":"Chart","Group":"Title","Type":"NumericUpDown","Label":"Panel title line width","LabelEmphasised":false,"Value":20.0,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":"Panel title line width: ","Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":1.0,"Min":5.0,"Max":5000.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formCategoriesAxisShow","Page":"Chart","Group":"Angular axis","Type":"CheckBox","Label":"Show axis","LabelEmphasised":false,"Value":true,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":"left","Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formCategoriesTickFontFamily","Page":"Chart","Group":"Angular axis","Type":"ComboBox","Label":"Axis label font family","LabelEmphasised":false,"Value":"Arial","Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":true,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":["Andale Mono","Arial","Arial Black","Century Gothic","Comic Sans MS","Courier New","Georgia","Impact","Times New Roman","Trebuchet MS","Verdana"],"CheckAlign":null,"Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formCategoriesTickFontColor","Page":"Chart","Group":"Angular axis","Type":"ColorPicker","Label":"Axis label font color","LabelEmphasised":false,"Value":"rgb(44, 44, 44)","Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":"Axis label font color: ","Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formCategoriesTickFontSize","Page":"Chart","Group":"Angular axis","Type":"NumericUpDown","Label":"Axis label font size","LabelEmphasised":false,"Value":10.0,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":"Axis label font size: ","Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":1.0,"Min":0.0,"Max":100.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formCategoriesTickAngle","Page":"Chart","Group":"Angular axis","Type":"ComboBox","Label":"Axis label orientation","LabelEmphasised":false,"Value":"Automatic","Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":true,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":["Automatic","Horizontal","Vertical","Diagonal"],"CheckAlign":null,"Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formLabelWrap","Page":"Chart","Group":"Angular axis","Type":"CheckBox","Label":"Wrap axis label","LabelEmphasised":false,"Value":true,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":"left","Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formLabelWrapNchar","Page":"Chart","Group":"Angular axis","Type":"NumericUpDown","Label":"Axis label line width","LabelEmphasised":false,"Value":21.0,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":"Axis label line width: ","Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":5.0,"Min":5.0,"Max":1000.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formValuesAxisShow","Page":"Chart","Group":"Radial axis","Type":"CheckBox","Label":"Show axis","LabelEmphasised":false,"Value":true,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":"left","Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formValuesMax","Page":"Chart","Group":"Radial axis","Type":"TextBox","Label":"Maximum value","LabelEmphasised":false,"Value":"","Allowed":null,"Multi":false,"Prompt":"Leave blank to determine automatically from input data.","ErrorMessage":null,"Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formValuesNumberType","Page":"Chart","Group":"Radial axis","Type":"ComboBox","Label":"Axis number type","LabelEmphasised":false,"Value":"Automatic","Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":true,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":["Automatic","Number","Category","Percentage","Date/Time","Currency","Metric units suffix","Scientific","Custom"],"CheckAlign":null,"Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formValuesDecimals","Page":"Chart","Group":"Radial axis","Type":"NumericUpDown","Label":"Decimal places","LabelEmphasised":false,"Value":null,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":"Decimal places: ","Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":1.0,"Min":0.0,"Max":100.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formValuesTickFontColor","Page":"Chart","Group":"Radial axis","Type":"ColorPicker","Label":"Axis label font color","LabelEmphasised":false,"Value":"rgb(44, 44, 44)","Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":"Axis label font color: ","Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formValuesTickFontSize","Page":"Chart","Group":"Radial axis","Type":"NumericUpDown","Label":"Axis label font size","LabelEmphasised":false,"Value":10.0,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":"Axis label font size: ","Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":1.0,"Min":0.0,"Max":100.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formHoverNumberType","Page":"Chart","Group":"HOVER","Type":"ComboBox","Label":"Hovertext number type","LabelEmphasised":false,"Value":"Automatic","Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":true,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":["Automatic","Number","Percentage"],"CheckAlign":null,"Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formHoverDecimals","Page":"Chart","Group":"HOVER","Type":"NumericUpDown","Label":"Decimal places","LabelEmphasised":false,"Value":null,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":"Decimal places: ","Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":1.0,"Min":0.0,"Max":100.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":null,"Page":null,"Group":null,"Type":null,"Label":null,"LabelEmphasised":false,"Value":null,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":false}]},"calculating":"Idle","showDebug":false,"layout":"OutputOnly","vSplit":0.25,"hSplit":0.45,"updateWarnings":true,"updateMode":"Manual","warnSlow":false,"Options":{"debugconsole":false,"codeposition":"OutputOnly","splitH":0.45,"splitV":0.25,"update warnings":true,"updating":"Manual","warn slow":false}}