From 7d38cf07433c7c5a70b315163d4d35a2f7314c16 Mon Sep 17 00:00:00 2001 From: hannahker Date: Thu, 4 May 2023 18:04:03 -0700 Subject: [PATCH 01/16] Update schema and set defaults --- src/components/colorbar/attributes.js | 40 +- src/components/colorbar/defaults.js | 29 +- test/plot-schema.json | 888 +++++++++++++++++++++++--- 3 files changed, 873 insertions(+), 84 deletions(-) diff --git a/src/components/colorbar/attributes.js b/src/components/colorbar/attributes.js index 267976606bc..b942b0dd980 100644 --- a/src/components/colorbar/attributes.js +++ b/src/components/colorbar/attributes.js @@ -60,9 +60,23 @@ module.exports = overrideAll({ min: -2, max: 3, description: [ - 'Sets the x position of the color bar (in plot fraction).', - 'Defaults to 1.02 when `orientation` is *v* and', - '0.5 when `orientation` is *h*.' + 'Sets the x position with respect to `xref` of the color bar (in plot fraction).', + 'When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and', + '0.5 when `orientation` is *h*.', + 'When `xref` is *container*, defaults to *1* when `orientation` is *v* and', + '0.5 when `orientation` is *h*.', + 'Must be between *0* and *1* if `xref` is *container*.' + ].join(' ') + }, + xref: { + valType: 'enumerated', + dflt: 'paper', + values: ['container', 'paper'], + editType: 'layoutstyle', + description: [ + 'Sets the container `x` refers to.', + '*container* spans the entire `width` of the plot.', + '*paper* refers to the width of the plotting area only.' ].join(' ') }, xanchor: { @@ -87,11 +101,25 @@ module.exports = overrideAll({ min: -2, max: 3, description: [ - 'Sets the y position of the color bar (in plot fraction).', - 'Defaults to 0.5 when `orientation` is *v* and', - '1.02 when `orientation` is *h*.' + 'Sets the y position with respect to `yref` of the color bar (in plot fraction).', + 'When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and', + '1.02 when `orientation` is *h*.', + 'When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and', + '1 when `orientation` is *h*.', + 'Must be between *0* and *1* if `yref` is *container*.' ].join(' ') }, + yref: { + valType: 'enumerated', + dflt: 'paper', + values: ['container', 'paper'], + editType: 'layoutstyle', + description: [ + 'Sets the container `y` refers to.', + '*container* spans the entire `height` of the plot.', + '*paper* refers to the height of the plotting area only.' + ].join(' '), + }, yanchor: { valType: 'enumerated', values: ['top', 'middle', 'bottom'], diff --git a/src/components/colorbar/defaults.js b/src/components/colorbar/defaults.js index e08a5dd0d0e..e1ac5f74611 100644 --- a/src/components/colorbar/defaults.js +++ b/src/components/colorbar/defaults.js @@ -37,11 +37,32 @@ module.exports = function colorbarDefaults(containerIn, containerOut, layout) { isVertical ? h : w ); - coerce('x', isVertical ? 1.02 : 0.5); - coerce('xanchor', isVertical ? 'left' : 'center'); + var yref = coerce('yref'); + var xref = coerce('xref'); + + var isPaperY = yref === 'paper'; + var isPaperX = xref === 'paper'; + + var defaultX, defaultY, defaultYAnchor; + var defaultXAnchor = 'left'; + + if(isVertical) { + defaultYAnchor = 'middle'; + defaultXAnchor = 'left'; + defaultX = isPaperX ? 1.02 : 1; + defaultY = 0.5; + } else { + defaultYAnchor = 'bottom'; + defaultXAnchor = 'center'; + defaultX = 0.5; + defaultY = isPaperY ? 1.02 : 1; + } + + coerce('x', defaultX); + coerce('xanchor', defaultXAnchor); coerce('xpad'); - coerce('y', isVertical ? 0.5 : 1.02); - coerce('yanchor', isVertical ? 'middle' : 'bottom'); + coerce('y', defaultY); + coerce('yanchor', defaultYAnchor); coerce('ypad'); Lib.noneOrAll(colorbarIn, colorbarOut, ['x', 'y']); diff --git a/test/plot-schema.json b/test/plot-schema.json index 8a2c9e85e44..2ebed73f09f 100644 --- a/test/plot-schema.json +++ b/test/plot-schema.json @@ -1563,7 +1563,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -1586,8 +1586,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -1609,6 +1619,16 @@ "editType": "colorbars", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colorscale": { @@ -13465,7 +13485,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -13488,8 +13508,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -13511,6 +13541,16 @@ "editType": "colorbars", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colorscale": { @@ -14998,7 +15038,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -15021,8 +15061,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -15044,6 +15094,16 @@ "editType": "colorbars", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colorscale": { @@ -19258,7 +19318,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -19281,8 +19341,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -19304,6 +19374,16 @@ "editType": "colorbars", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colorscale": { @@ -20269,7 +20349,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -20292,8 +20372,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -20315,6 +20405,16 @@ "editType": "colorbars", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colorscale": { @@ -21309,7 +21409,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -21332,8 +21432,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -21355,6 +21465,16 @@ "editType": "colorbars", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colorscale": { @@ -22367,7 +22487,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -22390,8 +22510,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -22413,6 +22543,16 @@ "editType": "colorbars", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colorscale": { @@ -23766,7 +23906,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -23789,8 +23929,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -23812,6 +23962,16 @@ "editType": "colorbars", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colorscale": { @@ -24736,7 +24896,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -24759,8 +24919,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -24782,6 +24952,16 @@ "editType": "colorbars", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colorscale": { @@ -26061,7 +26241,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -26084,8 +26264,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -26107,6 +26297,16 @@ "editType": "colorbars", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colorscale": { @@ -27789,7 +27989,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -27812,8 +28012,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -27835,6 +28045,16 @@ "editType": "colorbars", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colorscale": { @@ -28971,7 +29191,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "calc", "max": 3, "min": -2, @@ -28994,8 +29214,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "calc", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "calc", "max": 3, "min": -2, @@ -29017,6 +29247,16 @@ "editType": "calc", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "calc", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colorscale": { @@ -30530,7 +30770,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -30553,8 +30793,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -30576,6 +30826,16 @@ "editType": "colorbars", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colorscale": { @@ -31720,7 +31980,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -31743,8 +32003,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -31766,6 +32036,16 @@ "editType": "colorbars", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colorscale": { @@ -32874,7 +33154,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -32897,8 +33177,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -32920,6 +33210,16 @@ "editType": "colorbars", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colorscale": { @@ -34547,7 +34847,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -34570,8 +34870,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -34593,6 +34903,16 @@ "editType": "colorbars", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colors": { @@ -36884,7 +37204,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "calc", "max": 3, "min": -2, @@ -36907,8 +37227,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "calc", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "calc", "max": 3, "min": -2, @@ -36930,6 +37260,16 @@ "editType": "calc", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "calc", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colorscale": { @@ -38118,7 +38458,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -38141,8 +38481,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -38164,6 +38514,16 @@ "editType": "colorbars", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colorscale": { @@ -40124,7 +40484,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -40147,8 +40507,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -40170,6 +40540,16 @@ "editType": "colorbars", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colorscale": { @@ -41099,7 +41479,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -41122,8 +41502,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -41145,6 +41535,16 @@ "editType": "colorbars", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colorscale": { @@ -44696,7 +45096,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -44719,8 +45119,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -44742,6 +45152,16 @@ "editType": "colorbars", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colorscale": { @@ -46961,7 +47381,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "calc", "max": 3, "min": -2, @@ -46984,8 +47404,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "calc", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "calc", "max": 3, "min": -2, @@ -47007,6 +47437,16 @@ "editType": "calc", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "calc", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colorscale": { @@ -47556,7 +47996,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "calc", "max": 3, "min": -2, @@ -47579,8 +48019,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "calc", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "calc", "max": 3, "min": -2, @@ -47602,6 +48052,16 @@ "editType": "calc", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "calc", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colorscale": { @@ -49051,7 +49511,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -49074,8 +49534,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -49097,6 +49567,16 @@ "editType": "colorbars", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colorscale": { @@ -50952,7 +51432,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "calc", "max": 3, "min": -2, @@ -50975,8 +51455,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "calc", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "calc", "max": 3, "min": -2, @@ -50998,6 +51488,16 @@ "editType": "calc", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "calc", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colorscale": { @@ -52988,7 +53488,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "calc", "max": 3, "min": -2, @@ -53011,8 +53511,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "calc", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "calc", "max": 3, "min": -2, @@ -53034,6 +53544,16 @@ "editType": "calc", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "calc", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colorscale": { @@ -54986,7 +55506,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "calc", "max": 3, "min": -2, @@ -55009,8 +55529,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "calc", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "calc", "max": 3, "min": -2, @@ -55032,6 +55562,16 @@ "editType": "calc", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "calc", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colorscale": { @@ -56208,7 +56748,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -56231,8 +56771,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -56254,6 +56804,16 @@ "editType": "colorbars", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colorscale": { @@ -58101,7 +58661,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "calc", "max": 3, "min": -2, @@ -58124,8 +58684,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "calc", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "calc", "max": 3, "min": -2, @@ -58147,6 +58717,16 @@ "editType": "calc", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "calc", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colorscale": { @@ -59981,7 +60561,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -60004,8 +60584,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -60027,6 +60617,16 @@ "editType": "colorbars", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colorscale": { @@ -61900,7 +62500,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -61923,8 +62523,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -61946,6 +62556,16 @@ "editType": "colorbars", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colorscale": { @@ -63750,7 +64370,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -63773,8 +64393,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -63796,6 +64426,16 @@ "editType": "colorbars", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colorscale": { @@ -65167,7 +65807,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -65190,8 +65830,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -65213,6 +65863,16 @@ "editType": "colorbars", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colorscale": { @@ -66650,7 +67310,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -66673,8 +67333,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -66696,6 +67366,16 @@ "editType": "colorbars", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colors": { @@ -67529,7 +68209,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "calc", "max": 3, "min": -2, @@ -67552,8 +68232,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "calc", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "calc", "max": 3, "min": -2, @@ -67575,6 +68265,16 @@ "editType": "calc", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "calc", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colorscale": { @@ -69913,7 +70613,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -69936,8 +70636,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "colorbars", "max": 3, "min": -2, @@ -69959,6 +70669,16 @@ "editType": "colorbars", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colors": { @@ -72264,7 +72984,7 @@ } }, "x": { - "description": "Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", "editType": "calc", "max": 3, "min": -2, @@ -72287,8 +73007,18 @@ "min": 0, "valType": "number" }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "calc", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, "y": { - "description": "Sets the y position of the color bar (in plot fraction). Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", "editType": "calc", "max": 3, "min": -2, @@ -72310,6 +73040,16 @@ "editType": "calc", "min": 0, "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "calc", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, "colorscale": { From 346f27eb2c818b8630acf7a4631c474a18ee8354 Mon Sep 17 00:00:00 2001 From: hannahker Date: Fri, 5 May 2023 09:40:33 -0700 Subject: [PATCH 02/16] Update reservedMargins for colorbars --- src/components/colorbar/draw.js | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/components/colorbar/draw.js b/src/components/colorbar/draw.js index 45c56092ace..7db5ed11aef 100644 --- a/src/components/colorbar/draw.js +++ b/src/components/colorbar/draw.js @@ -182,6 +182,9 @@ function drawColorBar(g, opts, gd) { var optsX = opts.x; var optsY = isVertical ? opts.y : 1 - opts.y; + var isPaperY = opts.yref === 'paper'; + var isPaperX = opts.xref === 'paper'; + var fullLayout = gd._fullLayout; var gs = fullLayout._size; @@ -802,8 +805,24 @@ function drawColorBar(g, opts, gd) { marginOpts.yb = optsY + thickness * bFrac; } } + var sideY = opts.y < 0.5 ? 'b' : 't'; + var sideX = opts.x < 0.5 ? 'l' : 'r'; + + gd._fullLayout._reservedMargin[opts._id] = {} - Plots.autoMargin(gd, opts._id, marginOpts); + if(isPaperX && isPaperY) { + Plots.autoMargin(gd, opts._id, marginOpts); + } else if(isPaperX) { + gd._fullLayout._reservedMargin[opts._id][sideY] = marginOpts[sideY]; + } else if(isPaperY) { + gd._fullLayout._reservedMargin[opts._id][sideX] = marginOpts[sideX]; + } else { + if(isVertical) { + gd._fullLayout._reservedMargin[opts._id][sideX] = marginOpts[sideX]; + } else { + gd._fullLayout._reservedMargin[opts._id][sideY] = marginOpts[sideY]; + } + } } return Lib.syncOrAsync([ From b1c18625dee4aec380d601786d08a48d25514e86 Mon Sep 17 00:00:00 2001 From: hannahker Date: Fri, 5 May 2023 09:55:12 -0700 Subject: [PATCH 03/16] Fix syntax --- src/components/colorbar/draw.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/colorbar/draw.js b/src/components/colorbar/draw.js index 7db5ed11aef..1eb4d575ce1 100644 --- a/src/components/colorbar/draw.js +++ b/src/components/colorbar/draw.js @@ -808,7 +808,7 @@ function drawColorBar(g, opts, gd) { var sideY = opts.y < 0.5 ? 'b' : 't'; var sideX = opts.x < 0.5 ? 'l' : 'r'; - gd._fullLayout._reservedMargin[opts._id] = {} + gd._fullLayout._reservedMargin[opts._id] = {}; if(isPaperX && isPaperY) { Plots.autoMargin(gd, opts._id, marginOpts); @@ -822,7 +822,7 @@ function drawColorBar(g, opts, gd) { } else { gd._fullLayout._reservedMargin[opts._id][sideY] = marginOpts[sideY]; } - } + } } return Lib.syncOrAsync([ From 8b23475c61aaad2c59f212758dfb65f4d7ee366c Mon Sep 17 00:00:00 2001 From: hannahker Date: Mon, 8 May 2023 15:08:45 -0700 Subject: [PATCH 04/16] Adjust positioning and margins for container referencing --- src/components/colorbar/draw.js | 48 ++++++++++++++++++++++----------- 1 file changed, 33 insertions(+), 15 deletions(-) diff --git a/src/components/colorbar/draw.js b/src/components/colorbar/draw.js index 1eb4d575ce1..024e866d8a1 100644 --- a/src/components/colorbar/draw.js +++ b/src/components/colorbar/draw.js @@ -219,11 +219,14 @@ function drawColorBar(g, opts, gd) { var lenPx = Math.round(len * (lenmode === 'fraction' ? (isVertical ? gs.h : gs.w) : 1)); var lenFrac = lenPx / (isVertical ? gs.h : gs.w); + var posW = isPaperX ? gs.w : gd._fullLayout.width; + var posH = isPaperY ? gs.h : gd._fullLayout.height; + // x positioning: do it initially just for left anchor, // then fix at the end (since we don't know the width yet) var uPx = Math.round(isVertical ? - optsX * gs.w + xpad : - optsY * gs.h + ypad + optsX * posW + xpad : + optsY * posH + ypad ); var xRatio = {center: 0.5, right: 1}[xanchor] || 0; @@ -240,8 +243,8 @@ function drawColorBar(g, opts, gd) { optsX - xRatio * lenFrac; var vPx = Math.round(isVertical ? - gs.h * (1 - vFrac) : - gs.w * vFrac + posH * (1 - vFrac) : + posW * vFrac ); // stash a few things for makeEditable @@ -385,14 +388,14 @@ function drawColorBar(g, opts, gd) { if(titleSide === 'right') { y = mid; - x = gs.l + gs.w * pos + 10 + titleFontSize * ( + x = gs.l + posW * pos + 10 + titleFontSize * ( ax.showticklabels ? 1 : 0.5 ); } else { x = mid; if(titleSide === 'bottom') { - y = gs.t + gs.h * pos + 10 + ( + y = gs.t + posH * pos + 10 + ( ticklabelposition.indexOf('inside') === -1 ? ax.tickfont.size : 0 @@ -405,7 +408,7 @@ function drawColorBar(g, opts, gd) { if(titleSide === 'top') { var nlines = title.text.split('
').length; - y = gs.t + gs.h * pos + 10 - thickPx - LINE_SPACING * titleFontSize * nlines; + y = gs.t + posH * pos + 10 - thickPx - LINE_SPACING * titleFontSize * nlines; } } @@ -671,9 +674,13 @@ function drawColorBar(g, opts, gd) { var extraW = borderwidth + outlinewidth; + // TODO - are these the correct positions? + var lx = (isVertical ? uPx : vPx) - extraW / 2 - (isVertical ? xpad : 0); + var ly = (isVertical ? vPx : uPx) - (isVertical ? lenPx : ypad + moveY - hColorbarMoveTitle); + g.select('.' + cn.cbbg) - .attr('x', (isVertical ? uPx : vPx) - extraW / 2 - (isVertical ? xpad : 0)) - .attr('y', (isVertical ? vPx : uPx) - (isVertical ? lenPx : ypad + moveY - hColorbarMoveTitle)) + .attr('x', lx) + .attr('y', ly) .attr(isVertical ? 'width' : 'height', Math.max(outerThickness - hColorbarMoveTitle, 2)) .attr(isVertical ? 'height' : 'width', Math.max(lenPx + extraW, 2)) .call(Color.fill, bgcolor) @@ -696,9 +703,14 @@ function drawColorBar(g, opts, gd) { 'stroke-width': outlinewidth }); + var xShift = ((isVertical ? xRatio * outerThickness : 0)); + var yShift = ((isVertical ? 0 : (1 - yRatio) * outerThickness - moveY)); + xShift = isPaperX ? gs.l - xShift : -xShift; + yShift = isPaperY ? gs.t - yShift : -yShift; + g.attr('transform', strTranslate( - gs.l - (isVertical ? xRatio * outerThickness : 0), - gs.t - (isVertical ? 0 : (1 - yRatio) * outerThickness - moveY) + xShift, + yShift )); if(!isVertical && ( @@ -809,18 +821,24 @@ function drawColorBar(g, opts, gd) { var sideX = opts.x < 0.5 ? 'l' : 'r'; gd._fullLayout._reservedMargin[opts._id] = {}; + var possibleReservedMargins = { + r: (fullLayout.width - lx - xShift), + l: lx + marginOpts.r, + b: (fullLayout.height - ly - yShift), + t: ly + marginOpts.b + }; if(isPaperX && isPaperY) { Plots.autoMargin(gd, opts._id, marginOpts); } else if(isPaperX) { - gd._fullLayout._reservedMargin[opts._id][sideY] = marginOpts[sideY]; + gd._fullLayout._reservedMargin[opts._id][sideY] = possibleReservedMargins[sideY]; } else if(isPaperY) { - gd._fullLayout._reservedMargin[opts._id][sideX] = marginOpts[sideX]; + gd._fullLayout._reservedMargin[opts._id][sideX] = possibleReservedMargins[sideX]; } else { if(isVertical) { - gd._fullLayout._reservedMargin[opts._id][sideX] = marginOpts[sideX]; + gd._fullLayout._reservedMargin[opts._id][sideX] = possibleReservedMargins[sideX]; } else { - gd._fullLayout._reservedMargin[opts._id][sideY] = marginOpts[sideY]; + gd._fullLayout._reservedMargin[opts._id][sideY] = possibleReservedMargins[sideY]; } } } From 21779010765dd420b5cdb2fda7d3bd0272e42759 Mon Sep 17 00:00:00 2001 From: hannahker Date: Mon, 8 May 2023 15:30:25 -0700 Subject: [PATCH 05/16] Add mock --- test/image/mocks/zz-container-colorbar.json | 47 +++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 test/image/mocks/zz-container-colorbar.json diff --git a/test/image/mocks/zz-container-colorbar.json b/test/image/mocks/zz-container-colorbar.json new file mode 100644 index 00000000000..57a9bb49a09 --- /dev/null +++ b/test/image/mocks/zz-container-colorbar.json @@ -0,0 +1,47 @@ +{ + "data": [ + { + "colorbar": { + "orientation": "v", + "xanchor": "right", + "xref": "container", + "thickness": 10, + "ticks": "outside", + "bgcolor": "rgba(255,255,0,0.5)", + "borderwidth": 4, + "bordercolor": "gray", + "title": { + "side": "top", + "text": "Colorbar
title", + "font": { + "size": 16 + } + } + }, + "z": [ + [ + 1, + 3, + 5 + ], + [ + 4, + 7, + 10 + ], + [ + 7, + 11, + 14 + ] + ], + "type": "heatmap" + } + ], + "layout": { + "margin": {"l": 0, "r": 0, "t": 0, "b": 0}, + "height": 300, + "width": 400, + "yaxis": {"automargin": true, "side": "right", "title": {"text": "Y-axis title"}} + } +} From 61e827762fc6b2b8272daa042ed960558ff75077 Mon Sep 17 00:00:00 2001 From: hannahker Date: Mon, 8 May 2023 15:54:06 -0700 Subject: [PATCH 06/16] Fix positioning of colorbar titles --- src/components/colorbar/draw.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/components/colorbar/draw.js b/src/components/colorbar/draw.js index 024e866d8a1..fc081af5cba 100644 --- a/src/components/colorbar/draw.js +++ b/src/components/colorbar/draw.js @@ -357,18 +357,18 @@ function drawColorBar(g, opts, gd) { var x, y; if(titleSide === 'top') { - x = xpad + gs.l + gs.w * optsX; - y = ypad + gs.t + gs.h * (1 - vFrac - lenFrac) + 3 + titleFontSize * 0.75; + x = xpad + gs.l + posW * optsX; + y = ypad + gs.t + posH * (1 - vFrac - lenFrac) + 3 + titleFontSize * 0.75; } if(titleSide === 'bottom') { - x = xpad + gs.l + gs.w * optsX; - y = ypad + gs.t + gs.h * (1 - vFrac) - 3 - titleFontSize * 0.25; + x = xpad + gs.l + posW * optsX; + y = ypad + gs.t + posH * (1 - vFrac) - 3 - titleFontSize * 0.25; } if(titleSide === 'right') { - y = ypad + gs.t + gs.h * optsY + 3 + titleFontSize * 0.75; - x = xpad + gs.l + gs.w * vFrac; + y = ypad + gs.t + posW * optsY + 3 + titleFontSize * 0.75; + x = xpad + gs.l + posH * vFrac; } drawTitle(ax._id + 'title', { From 2594e59a04dbf3859e3318fdab5ee614652fcedd Mon Sep 17 00:00:00 2001 From: hannahker Date: Mon, 8 May 2023 16:16:19 -0700 Subject: [PATCH 07/16] Update defaults --- src/components/colorbar/defaults.js | 4 ++-- test/image/mocks/zz-container-colorbar.json | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/components/colorbar/defaults.js b/src/components/colorbar/defaults.js index e1ac5f74611..421b3b692d3 100644 --- a/src/components/colorbar/defaults.js +++ b/src/components/colorbar/defaults.js @@ -48,11 +48,11 @@ module.exports = function colorbarDefaults(containerIn, containerOut, layout) { if(isVertical) { defaultYAnchor = 'middle'; - defaultXAnchor = 'left'; + defaultXAnchor = isPaperX ? 'left' : 'right'; defaultX = isPaperX ? 1.02 : 1; defaultY = 0.5; } else { - defaultYAnchor = 'bottom'; + defaultYAnchor = isPaperY ? 'bottom' : 'top'; defaultXAnchor = 'center'; defaultX = 0.5; defaultY = isPaperY ? 1.02 : 1; diff --git a/test/image/mocks/zz-container-colorbar.json b/test/image/mocks/zz-container-colorbar.json index 57a9bb49a09..8e74ffd7387 100644 --- a/test/image/mocks/zz-container-colorbar.json +++ b/test/image/mocks/zz-container-colorbar.json @@ -3,7 +3,6 @@ { "colorbar": { "orientation": "v", - "xanchor": "right", "xref": "container", "thickness": 10, "ticks": "outside", From df8955922145f5639bbe5df60b581f8bf1838dcd Mon Sep 17 00:00:00 2001 From: hannahker Date: Mon, 8 May 2023 16:21:44 -0700 Subject: [PATCH 08/16] Add title to mock --- test/image/mocks/zz-container-colorbar.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/image/mocks/zz-container-colorbar.json b/test/image/mocks/zz-container-colorbar.json index 8e74ffd7387..9be459d2863 100644 --- a/test/image/mocks/zz-container-colorbar.json +++ b/test/image/mocks/zz-container-colorbar.json @@ -41,6 +41,7 @@ "margin": {"l": 0, "r": 0, "t": 0, "b": 0}, "height": 300, "width": 400, - "yaxis": {"automargin": true, "side": "right", "title": {"text": "Y-axis title"}} + "yaxis": {"automargin": true, "side": "right", "title": {"text": "Y-axis title"}}, + "title": {"text": "Colorbar with `xref='container'`", "automargin": true} } } From f84232abdc7275f41253c5aca55559139443e351 Mon Sep 17 00:00:00 2001 From: hannahker Date: Mon, 8 May 2023 16:30:06 -0700 Subject: [PATCH 09/16] Add changelog --- draftlogs/6593_add.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 draftlogs/6593_add.md diff --git a/draftlogs/6593_add.md b/draftlogs/6593_add.md new file mode 100644 index 00000000000..ba128bd3ce6 --- /dev/null +++ b/draftlogs/6593_add.md @@ -0,0 +1 @@ +- Add `colorbar.xref` and `colorbar.yref` to enable container-referenced positioning for plot colorbars [[#6593](https://github.com/plotly/plotly.js/pull/6593)], with thanks to [Gamma Technologies](https://www.gtisoft.com/) for sponsoring the related development. \ No newline at end of file From 845553e31a3ec2b7adba7c6e27af1caa6290c1c7 Mon Sep 17 00:00:00 2001 From: hannahker Date: Mon, 8 May 2023 16:59:37 -0700 Subject: [PATCH 10/16] Fix bug in title positioning --- src/components/colorbar/draw.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/colorbar/draw.js b/src/components/colorbar/draw.js index fc081af5cba..f0b551781ec 100644 --- a/src/components/colorbar/draw.js +++ b/src/components/colorbar/draw.js @@ -367,8 +367,8 @@ function drawColorBar(g, opts, gd) { } if(titleSide === 'right') { - y = ypad + gs.t + posW * optsY + 3 + titleFontSize * 0.75; - x = xpad + gs.l + posH * vFrac; + y = ypad + gs.t + posH * optsY + 3 + titleFontSize * 0.75; + x = xpad + gs.l + posW * vFrac; } drawTitle(ax._id + 'title', { From 5ec6f6620b49864ae7aa2f24e6bb0ddf391fd2ec Mon Sep 17 00:00:00 2001 From: hannahker Date: Mon, 8 May 2023 17:00:07 -0700 Subject: [PATCH 11/16] Add image baseline --- test/image/baselines/zz-container-colorbar.png | Bin 0 -> 18017 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 test/image/baselines/zz-container-colorbar.png diff --git a/test/image/baselines/zz-container-colorbar.png b/test/image/baselines/zz-container-colorbar.png new file mode 100644 index 0000000000000000000000000000000000000000..8ff26867e52b04dd8be0b8929b5a672f5c95b9b3 GIT binary patch literal 18017 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 Date: Wed, 10 May 2023 13:37:17 -0700 Subject: [PATCH 12/16] Rename mocks and add horizontal example --- .../zz-container-colorbar-horizontal.json | 49 +++++++++++++++++++ ...on => zz-container-colorbar_vertical.json} | 2 +- 2 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 test/image/mocks/zz-container-colorbar-horizontal.json rename test/image/mocks/{zz-container-colorbar.json => zz-container-colorbar_vertical.json} (92%) diff --git a/test/image/mocks/zz-container-colorbar-horizontal.json b/test/image/mocks/zz-container-colorbar-horizontal.json new file mode 100644 index 00000000000..a150195b09b --- /dev/null +++ b/test/image/mocks/zz-container-colorbar-horizontal.json @@ -0,0 +1,49 @@ +{ + "data": [ + { + "colorbar": { + "orientation": "h", + "yref": "container", + "y": 0, + "yanchor": "bottom", + "thickness": 10, + "ticks": "outside", + "bgcolor": "rgba(255,255,0,0.5)", + "borderwidth": 4, + "bordercolor": "gray", + "title": { + "side": "left", + "text": "Colorbar
title", + "font": { + "size": 16 + } + } + }, + "z": [ + [ + 1, + 3, + 5 + ], + [ + 4, + 7, + 10 + ], + [ + 7, + 11, + 14 + ] + ], + "type": "heatmap" + } + ], + "layout": { + "margin": {"l": 0, "r": 0, "t": 0, "b": 0}, + "height": 300, + "width": 400, + "xaxis": {"automargin": true, "title": {"text": "X-axis title"}}, + "title": {"text": "Colorbar with `yref='container'` | horizontal", "automargin": true} + } +} diff --git a/test/image/mocks/zz-container-colorbar.json b/test/image/mocks/zz-container-colorbar_vertical.json similarity index 92% rename from test/image/mocks/zz-container-colorbar.json rename to test/image/mocks/zz-container-colorbar_vertical.json index 9be459d2863..e5dccbdd4e4 100644 --- a/test/image/mocks/zz-container-colorbar.json +++ b/test/image/mocks/zz-container-colorbar_vertical.json @@ -42,6 +42,6 @@ "height": 300, "width": 400, "yaxis": {"automargin": true, "side": "right", "title": {"text": "Y-axis title"}}, - "title": {"text": "Colorbar with `xref='container'`", "automargin": true} + "title": {"text": "Colorbar with `xref='container' | vertical`", "automargin": true} } } From ad22f4feb92984d9028d3160a373e29dbe2a1556 Mon Sep 17 00:00:00 2001 From: hannahker Date: Wed, 10 May 2023 13:54:53 -0700 Subject: [PATCH 13/16] Fix mock syntax --- test/image/mocks/zz-container-colorbar-horizontal.json | 1 - 1 file changed, 1 deletion(-) diff --git a/test/image/mocks/zz-container-colorbar-horizontal.json b/test/image/mocks/zz-container-colorbar-horizontal.json index a150195b09b..04972494a0f 100644 --- a/test/image/mocks/zz-container-colorbar-horizontal.json +++ b/test/image/mocks/zz-container-colorbar-horizontal.json @@ -12,7 +12,6 @@ "borderwidth": 4, "bordercolor": "gray", "title": { - "side": "left", "text": "Colorbar
title", "font": { "size": 16 From 4feac39807a71852f587caf15325ce9105b51434 Mon Sep 17 00:00:00 2001 From: hannahker Date: Thu, 11 May 2023 09:58:18 -0700 Subject: [PATCH 14/16] Update baselines for mocks --- .../zz-container-colorbar-horizontal.png | Bin 0 -> 14629 bytes .../zz-container-colorbar-vertical.png | Bin 0 -> 18350 bytes ...json => zz-container-colorbar-vertical.json} | 0 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 test/image/baselines/zz-container-colorbar-horizontal.png create mode 100644 test/image/baselines/zz-container-colorbar-vertical.png rename test/image/mocks/{zz-container-colorbar_vertical.json => zz-container-colorbar-vertical.json} (100%) diff --git a/test/image/baselines/zz-container-colorbar-horizontal.png b/test/image/baselines/zz-container-colorbar-horizontal.png new file mode 100644 index 0000000000000000000000000000000000000000..f8f09764d953e9fc7f2bb13c45a03d7447da81e9 GIT binary patch literal 14629 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 Date: Thu, 11 May 2023 14:28:51 -0700 Subject: [PATCH 15/16] Coerce min/max of x and y depending on xref and yref --- src/components/colorbar/attributes.js | 10 +- src/components/colorbar/defaults.js | 20 +- test/plot-schema.json | 296 +++++++------------------- 3 files changed, 96 insertions(+), 230 deletions(-) diff --git a/src/components/colorbar/attributes.js b/src/components/colorbar/attributes.js index b942b0dd980..e048f29ad4b 100644 --- a/src/components/colorbar/attributes.js +++ b/src/components/colorbar/attributes.js @@ -57,15 +57,14 @@ module.exports = overrideAll({ }, x: { valType: 'number', - min: -2, - max: 3, description: [ 'Sets the x position with respect to `xref` of the color bar (in plot fraction).', 'When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and', '0.5 when `orientation` is *h*.', 'When `xref` is *container*, defaults to *1* when `orientation` is *v* and', '0.5 when `orientation` is *h*.', - 'Must be between *0* and *1* if `xref` is *container*.' + 'Must be between *0* and *1* if `xref` is *container*', + 'and between *-2* and *3* if `xref` is *paper*.' ].join(' ') }, xref: { @@ -98,15 +97,14 @@ module.exports = overrideAll({ }, y: { valType: 'number', - min: -2, - max: 3, description: [ 'Sets the y position with respect to `yref` of the color bar (in plot fraction).', 'When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and', '1.02 when `orientation` is *h*.', 'When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and', '1 when `orientation` is *h*.', - 'Must be between *0* and *1* if `yref` is *container*.' + 'Must be between *0* and *1* if `yref` is *container*', + 'and between *-2* and *3* if `yref` is *paper*.' ].join(' ') }, yref: { diff --git a/src/components/colorbar/defaults.js b/src/components/colorbar/defaults.js index 421b3b692d3..c791db0e4a2 100644 --- a/src/components/colorbar/defaults.js +++ b/src/components/colorbar/defaults.js @@ -58,10 +58,26 @@ module.exports = function colorbarDefaults(containerIn, containerOut, layout) { defaultY = isPaperY ? 1.02 : 1; } - coerce('x', defaultX); + Lib.coerce(colorbarIn, colorbarOut, { + x: { + valType: 'number', + min: isPaperX ? -2 : 0, + max: isPaperX ? 3 : 1, + dflt: defaultX, + } + }, 'x'); + + Lib.coerce(colorbarIn, colorbarOut, { + y: { + valType: 'number', + min: isPaperY ? -2 : 0, + max: isPaperY ? 3 : 1, + dflt: defaultY, + } + }, 'y'); + coerce('xanchor', defaultXAnchor); coerce('xpad'); - coerce('y', defaultY); coerce('yanchor', defaultYAnchor); coerce('ypad'); Lib.noneOrAll(colorbarIn, colorbarOut, ['x', 'y']); diff --git a/test/plot-schema.json b/test/plot-schema.json index 2ebed73f09f..38cb87d45b3 100644 --- a/test/plot-schema.json +++ b/test/plot-schema.json @@ -1563,10 +1563,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -1597,10 +1595,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -13485,10 +13481,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -13519,10 +13513,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -15038,10 +15030,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -15072,10 +15062,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -19318,10 +19306,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -19352,10 +19338,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -20349,10 +20333,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -20383,10 +20365,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -21409,10 +21389,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -21443,10 +21421,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -22487,10 +22463,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -22521,10 +22495,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -23906,10 +23878,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -23940,10 +23910,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -24896,10 +24864,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -24930,10 +24896,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -26241,10 +26205,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -26275,10 +26237,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -27989,10 +27949,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -28023,10 +27981,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -29191,10 +29147,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "calc", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -29225,10 +29179,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "calc", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -30770,10 +30722,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -30804,10 +30754,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -31980,10 +31928,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -32014,10 +31960,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -33154,10 +33098,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -33188,10 +33130,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -34847,10 +34787,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -34881,10 +34819,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -37204,10 +37140,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "calc", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -37238,10 +37172,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "calc", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -38458,10 +38390,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -38492,10 +38422,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -40484,10 +40412,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -40518,10 +40444,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -41479,10 +41403,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -41513,10 +41435,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -45096,10 +45016,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -45130,10 +45048,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -47381,10 +47297,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "calc", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -47415,10 +47329,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "calc", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -47996,10 +47908,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "calc", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -48030,10 +47940,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "calc", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -49511,10 +49419,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -49545,10 +49451,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -51432,10 +51336,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "calc", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -51466,10 +51368,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "calc", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -53488,10 +53388,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "calc", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -53522,10 +53420,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "calc", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -55506,10 +55402,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "calc", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -55540,10 +55434,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "calc", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -56748,10 +56640,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -56782,10 +56672,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -58661,10 +58549,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "calc", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -58695,10 +58581,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "calc", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -60561,10 +60445,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -60595,10 +60477,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -62500,10 +62380,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -62534,10 +62412,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -64370,10 +64246,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -64404,10 +64278,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -65807,10 +65679,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -65841,10 +65711,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -67310,10 +67178,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -67344,10 +67210,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -68209,10 +68073,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "calc", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -68243,10 +68105,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "calc", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -70613,10 +70473,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -70647,10 +70505,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "colorbars", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { @@ -72984,10 +72840,8 @@ } }, "x": { - "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container*.", + "description": "Sets the x position with respect to `xref` of the color bar (in plot fraction). When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*. When `xref` is *container*, defaults to *1* when `orientation` is *v* and 0.5 when `orientation` is *h*. Must be between *0* and *1* if `xref` is *container* and between *-2* and *3* if `xref` is *paper*.", "editType": "calc", - "max": 3, - "min": -2, "valType": "number" }, "xanchor": { @@ -73018,10 +72872,8 @@ ] }, "y": { - "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container*.", + "description": "Sets the y position with respect to `yref` of the color bar (in plot fraction). When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*. When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and 1 when `orientation` is *h*. Must be between *0* and *1* if `yref` is *container* and between *-2* and *3* if `yref` is *paper*.", "editType": "calc", - "max": 3, - "min": -2, "valType": "number" }, "yanchor": { From 39277d9a0e1b4845c0e2f330501b81edf43bfbee Mon Sep 17 00:00:00 2001 From: hannahker Date: Fri, 12 May 2023 10:01:01 -0700 Subject: [PATCH 16/16] Remove unneeded baseline --- test/image/baselines/zz-container-colorbar.png | Bin 18017 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 test/image/baselines/zz-container-colorbar.png diff --git a/test/image/baselines/zz-container-colorbar.png b/test/image/baselines/zz-container-colorbar.png deleted file mode 100644 index 8ff26867e52b04dd8be0b8929b5a672f5c95b9b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18017 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