From bd7e1ed2a08ad6da5e52b986a4e5474d7cad2bc7 Mon Sep 17 00:00:00 2001 From: Nick White Date: Thu, 17 Mar 2022 23:15:08 +0000 Subject: [PATCH 01/27] first go at feature --- src/plots/cartesian/axes.js | 4 +++ src/plots/cartesian/layout_attributes.js | 1 + src/plots/cartesian/line_grid_defaults.js | 4 ++- src/plots/geo/geo.js | 2 +- src/plots/geo/layout_attributes.js | 5 ++- src/plots/geo/layout_defaults.js | 1 + src/plots/gl2d/convert.js | 2 ++ src/plots/gl3d/layout/axis_attributes.js | 1 + src/plots/gl3d/layout/convert.js | 2 ++ src/plots/polar/layout_attributes.js | 3 +- src/plots/smith/layout_attributes.js | 3 +- src/plots/ternary/layout_attributes.js | 1 + src/traces/carpet/axis_attributes.js | 5 +++ src/traces/carpet/axis_defaults.js | 13 ++++++-- src/traces/carpet/calc_gridlines.js | 12 ++++--- test/image/baselines/line_grid_dash.png | Bin 0 -> 16265 bytes test/image/mocks/line_grid_dash.json | 39 ++++++++++++++++++++++ 17 files changed, 87 insertions(+), 11 deletions(-) create mode 100644 test/image/baselines/line_grid_dash.png create mode 100644 test/image/mocks/line_grid_dash.json diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js index 3f6784d04a3..f549fbf8ee8 100644 --- a/src/plots/cartesian/axes.js +++ b/src/plots/cartesian/axes.js @@ -2869,6 +2869,7 @@ axes.drawTicks = function(gd, ax, opts) { * - {boolean} showgrid * - {string} gridcolor * - {string} gridwidth + * - {string} griddash * - {boolean} zeroline * - {string} type * - {string} dtick @@ -2914,10 +2915,13 @@ axes.drawGrid = function(gd, ax, opts) { .classed('crisp', opts.crisp !== false); ax._gw = Drawing.crispRound(gd, ax.gridwidth, 1); + ax._gd = Drawing.dashStyle(ax.griddash, ax.gridwidth); + console.log(ax._gd, ax.griddash, ax.gridwidth); grid.attr('transform', opts.transFn) .attr('d', opts.path) .call(Color.stroke, ax.gridcolor || '#ddd') + .style('stroke-dasharray', ax._gd) .style('stroke-width', ax._gw + 'px') .style('display', null); // visible diff --git a/src/plots/cartesian/layout_attributes.js b/src/plots/cartesian/layout_attributes.js index 15d238805dd..4d5394b72cc 100644 --- a/src/plots/cartesian/layout_attributes.js +++ b/src/plots/cartesian/layout_attributes.js @@ -797,6 +797,7 @@ module.exports = { editType: 'ticks', description: 'Sets the width (in px) of the grid lines.' }, + griddash: extendFlat({}, dash, {dflt: '', editType: 'none'}), zeroline: { valType: 'boolean', editType: 'ticks', diff --git a/src/plots/cartesian/line_grid_defaults.js b/src/plots/cartesian/line_grid_defaults.js index 5aa8b1f325d..7fc68b03356 100644 --- a/src/plots/cartesian/line_grid_defaults.js +++ b/src/plots/cartesian/line_grid_defaults.js @@ -35,11 +35,13 @@ module.exports = function handleLineGridDefaults(containerIn, containerOut, coer var gridColorDflt = colorMix(dfltColor, opts.bgColor, opts.blend || lightFraction).toRgbString(); var gridColor = coerce2('gridcolor', gridColorDflt); var gridWidth = coerce2('gridwidth'); - var showGridLines = coerce('showgrid', opts.showGrid || !!gridColor || !!gridWidth); + var gridDash = coerce2('griddash'); + var showGridLines = coerce('showgrid', opts.showGrid || !!gridColor || !!gridWidth || !!gridDash); if(!showGridLines) { delete containerOut.gridcolor; delete containerOut.gridwidth; + delete containerOut.gridDash; } if(!opts.noZeroLine) { diff --git a/src/plots/geo/geo.js b/src/plots/geo/geo.js index 2ee4aec5739..e4f57c85d1f 100644 --- a/src/plots/geo/geo.js +++ b/src/plots/geo/geo.js @@ -367,7 +367,7 @@ proto.updateBaseLayers = function(fullLayout, geoLayout) { } else if(isAxisLayer(d)) { path.datum(makeGraticule(d, geoLayout, fullLayout)) .call(Color.stroke, geoLayout[d].gridcolor) - .call(Drawing.dashLine, '', geoLayout[d].gridwidth); + .call(Drawing.dashLine, geoLayout[d].griddash, geoLayout[d].gridwidth); } if(isLineLayer(d)) { diff --git a/src/plots/geo/layout_attributes.js b/src/plots/geo/layout_attributes.js index be0d2d1f827..19096bdd05e 100644 --- a/src/plots/geo/layout_attributes.js +++ b/src/plots/geo/layout_attributes.js @@ -2,6 +2,8 @@ var colorAttrs = require('../../components/color/attributes'); var domainAttrs = require('../domain').attributes; +var dash = require('../../components/drawing/attributes').dash; +var extendFlat = require('../../lib/extend').extendFlat; var constants = require('./constants'); var overrideAll = require('../../plot_api/edit_types').overrideAll; var sortObjectKeys = require('../../lib/sort_object_keys'); @@ -50,7 +52,8 @@ var geoAxesAttrs = { description: [ 'Sets the graticule\'s stroke width (in px).' ].join(' ') - } + }, + griddash: extendFlat({}, dash, {dflt: '', editType: 'none'}) }; var attrs = module.exports = overrideAll({ diff --git a/src/plots/geo/layout_defaults.js b/src/plots/geo/layout_defaults.js index 16ce3622069..54b4d49bda4 100644 --- a/src/plots/geo/layout_defaults.js +++ b/src/plots/geo/layout_defaults.js @@ -87,6 +87,7 @@ function handleGeoDefaults(geoLayoutIn, geoLayoutOut, coerce, opts) { if(show) { coerce(axisName + '.gridcolor'); coerce(axisName + '.gridwidth'); + coerce(axisName + '.griddash'); } // mock axis for autorange computations diff --git a/src/plots/gl2d/convert.js b/src/plots/gl2d/convert.js index 34b79d17d6e..0101e523c2b 100644 --- a/src/plots/gl2d/convert.js +++ b/src/plots/gl2d/convert.js @@ -68,6 +68,7 @@ function Axes2DOptions(scene) { [0, 0, 0, 0.5] ]; this.gridLineWidth = [1, 1]; + this.gridLineDash = ['', '']; this.zeroLineEnable = [true, true]; this.zeroLineWidth = [1, 1]; @@ -162,6 +163,7 @@ proto.merge = function(options) { this.gridLineEnable[i] = ax.showgrid; this.gridLineColor[i] = str2RGBArray(ax.gridcolor); this.gridLineWidth[i] = ax.gridwidth; + this.gridLineDash[i] = ax.griddash; this.zeroLineEnable[i] = ax.zeroline; this.zeroLineColor[i] = str2RGBArray(ax.zerolinecolor); diff --git a/src/plots/gl3d/layout/axis_attributes.js b/src/plots/gl3d/layout/axis_attributes.js index 64520c93dad..31b6a20eae0 100644 --- a/src/plots/gl3d/layout/axis_attributes.js +++ b/src/plots/gl3d/layout/axis_attributes.js @@ -107,6 +107,7 @@ module.exports = overrideAll({ gridcolor: extendFlat({}, axesAttrs.gridcolor, // shouldn't this be on-par with 2D? {dflt: 'rgb(204, 204, 204)'}), gridwidth: axesAttrs.gridwidth, + griddash: axesAttrs.griddash, zeroline: axesAttrs.zeroline, zerolinecolor: axesAttrs.zerolinecolor, zerolinewidth: axesAttrs.zerolinewidth, diff --git a/src/plots/gl3d/layout/convert.js b/src/plots/gl3d/layout/convert.js index b3bc7777d37..494ad2eb761 100644 --- a/src/plots/gl3d/layout/convert.js +++ b/src/plots/gl3d/layout/convert.js @@ -39,6 +39,7 @@ function AxesOptions() { this.gridEnable = [ true, true, true ]; this.gridWidth = [ 1, 1, 1 ]; + this.gridDash = [ '', '', '' ]; this.gridColor = [ [0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1] ]; this.zeroEnable = [ true, true, true ]; @@ -93,6 +94,7 @@ proto.merge = function(fullLayout, sceneLayout) { if('showgrid' in axes) opts.gridEnable[i] = axes.showgrid; if('gridcolor' in axes) opts.gridColor[i] = str2RgbaArray(axes.gridcolor); if('gridwidth' in axes) opts.gridWidth[i] = axes.gridwidth; + if('griddash' in axes) opts.gridDash[i] = axes.griddash; // Remove zeroline if axis type is log // otherwise the zeroline is incorrectly drawn at 1 on log axes diff --git a/src/plots/polar/layout_attributes.js b/src/plots/polar/layout_attributes.js index 2b6ca8fd29e..09c93888c97 100644 --- a/src/plots/polar/layout_attributes.js +++ b/src/plots/polar/layout_attributes.js @@ -13,7 +13,8 @@ var axisLineGridAttr = overrideAll({ linewidth: axesAttrs.linewidth, showgrid: extendFlat({}, axesAttrs.showgrid, {dflt: true}), gridcolor: axesAttrs.gridcolor, - gridwidth: axesAttrs.gridwidth + gridwidth: axesAttrs.gridwidth, + griddash: axesAttrs.griddash // TODO add spike* attributes down the road diff --git a/src/plots/smith/layout_attributes.js b/src/plots/smith/layout_attributes.js index b6ac6c25c3f..33cfa1cce0a 100644 --- a/src/plots/smith/layout_attributes.js +++ b/src/plots/smith/layout_attributes.js @@ -13,7 +13,8 @@ var axisLineGridAttr = overrideAll({ linewidth: axesAttrs.linewidth, showgrid: extendFlat({}, axesAttrs.showgrid, {dflt: true}), gridcolor: axesAttrs.gridcolor, - gridwidth: axesAttrs.gridwidth + gridwidth: axesAttrs.gridwidth, + griddash: axesAttrs.griddash }, 'plot', 'from-root'); var axisTickAttrs = overrideAll({ diff --git a/src/plots/ternary/layout_attributes.js b/src/plots/ternary/layout_attributes.js index b9ce780d5f7..84d4cd5d936 100644 --- a/src/plots/ternary/layout_attributes.js +++ b/src/plots/ternary/layout_attributes.js @@ -47,6 +47,7 @@ var ternaryAxesAttrs = { showgrid: extendFlat({}, axesAttrs.showgrid, {dflt: true}), gridcolor: axesAttrs.gridcolor, gridwidth: axesAttrs.gridwidth, + griddash: axesAttrs.griddash, layer: axesAttrs.layer, // range min: { diff --git a/src/traces/carpet/axis_attributes.js b/src/traces/carpet/axis_attributes.js index 480e6685344..91e70bfa7a4 100644 --- a/src/traces/carpet/axis_attributes.js +++ b/src/traces/carpet/axis_attributes.js @@ -5,6 +5,9 @@ var colorAttrs = require('../../components/color/attributes'); var axesAttrs = require('../../plots/cartesian/layout_attributes'); var descriptionWithDates = require('../../plots/cartesian/axis_format_attributes').descriptionWithDates; var overrideAll = require('../../plot_api/edit_types').overrideAll; +var dash = require('../../components/drawing/attributes').dash; +var extendFlat = require('../../lib/extend').extendFlat; + module.exports = { color: { @@ -359,6 +362,7 @@ module.exports = { editType: 'calc', description: 'Sets the width (in px) of the axis line.' }, + griddash: extendFlat({}, dash, {dflt: '', editType: 'none'}), showgrid: { valType: 'boolean', dflt: true, @@ -382,6 +386,7 @@ module.exports = { editType: 'calc', description: 'Sets the width (in px) of the grid lines.' }, + minorgriddash: extendFlat({}, dash, {dflt: '', editType: 'none'}), minorgridcolor: { valType: 'color', dflt: colorAttrs.lightLine, diff --git a/src/traces/carpet/axis_defaults.js b/src/traces/carpet/axis_defaults.js index f58bb3786e2..3ae341e3954 100644 --- a/src/traces/carpet/axis_defaults.js +++ b/src/traces/carpet/axis_defaults.js @@ -138,41 +138,50 @@ module.exports = function handleAxisDefaults(containerIn, containerOut, options) var gridColor = coerce2('gridcolor', addOpacity(dfltColor, 0.3)); var gridWidth = coerce2('gridwidth'); + var gridDash = coerce2('griddash'); var showGrid = coerce('showgrid'); if(!showGrid) { delete containerOut.gridcolor; delete containerOut.gridwidth; + delete containerOut.griddash; } var startLineColor = coerce2('startlinecolor', dfltColor); var startLineWidth = coerce2('startlinewidth', gridWidth); - var showStartLine = coerce('startline', containerOut.showgrid || !!startLineColor || !!startLineWidth); + var startLineDash = coerce2('startlinewidth', gridDash); + var showStartLine = coerce('startline', containerOut.showgrid || !!startLineColor || !!startLineWidth || !!startLineDash); if(!showStartLine) { delete containerOut.startlinecolor; delete containerOut.startlinewidth; + delete containerOut.startlinedash; } var endLineColor = coerce2('endlinecolor', dfltColor); var endLineWidth = coerce2('endlinewidth', gridWidth); - var showEndLine = coerce('endline', containerOut.showgrid || !!endLineColor || !!endLineWidth); + var endLineDash = coerce2('endlinewidth', gridDash); + var showEndLine = coerce('endline', containerOut.showgrid || !!endLineColor || !!endLineWidth || !!endLineDash); if(!showEndLine) { delete containerOut.endlinecolor; delete containerOut.endlinewidth; + delete containerOut.endlinedash; } if(!showGrid) { delete containerOut.gridcolor; delete containerOut.gridWidth; + delete containerOut.gridDash; } else { coerce('minorgridcount'); coerce('minorgridwidth', gridWidth); + coerce('minorgriddash', gridDash); coerce('minorgridcolor', addOpacity(gridColor, 0.06)); if(!containerOut.minorgridcount) { delete containerOut.minorgridwidth; + delete containerOut.minorgriddash; delete containerOut.minorgridcolor; } } diff --git a/src/traces/carpet/calc_gridlines.js b/src/traces/carpet/calc_gridlines.js index 028409f044a..f9a7ebe3d80 100644 --- a/src/traces/carpet/calc_gridlines.js +++ b/src/traces/carpet/calc_gridlines.js @@ -225,7 +225,8 @@ module.exports = function calcGridlines(trace, axisLetter, crossAxisLetter) { if(j < 0 || j > data.length - 1) continue; gridlines.push(extendFlat(constructArrayGridline(j), { color: axis.gridcolor, - width: axis.gridwidth + width: axis.gridwidth, + dash: axis.griddash })); } @@ -256,7 +257,8 @@ module.exports = function calcGridlines(trace, axisLetter, crossAxisLetter) { if(v < data[0] || v > data[data.length - 1]) continue; minorgridlines.push(extendFlat(constructValueGridline(v), { color: axis.minorgridcolor, - width: axis.minorgridwidth + width: axis.minorgridwidth, + dash: axis.minorgriddash })); } } @@ -299,7 +301,8 @@ module.exports = function calcGridlines(trace, axisLetter, crossAxisLetter) { gridlines.push(extendFlat(constructValueGridline(value), { color: axis.gridcolor, - width: axis.gridwidth + width: axis.gridwidth, + dash: axis.griddash })); } @@ -311,7 +314,8 @@ module.exports = function calcGridlines(trace, axisLetter, crossAxisLetter) { if(v < data[0] || v > data[data.length - 1]) continue; minorgridlines.push(extendFlat(constructValueGridline(v), { color: axis.minorgridcolor, - width: axis.minorgridwidth + width: axis.minorgridwidth, + dash: axis.minorgriddash })); } } diff --git a/test/image/baselines/line_grid_dash.png b/test/image/baselines/line_grid_dash.png new file mode 100644 index 0000000000000000000000000000000000000000..c55daa84033ba9783ef10b9adfc504d9591fe3b6 GIT binary patch literal 16265 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 ZfeC{V^z?r@fJfrxl(M=~y25$?{{!d~Ah-Yk literal 0 HcmV?d00001 diff --git a/test/image/mocks/line_grid_dash.json b/test/image/mocks/line_grid_dash.json new file mode 100644 index 00000000000..c85fa6c9b58 --- /dev/null +++ b/test/image/mocks/line_grid_dash.json @@ -0,0 +1,39 @@ +{ + "data": [ + { + "y": [ + -5, + -1, + 1 + ], + "x": [ + -1, + 0, + 1 + ] + } + ], + "layout": { + "xaxis": { + "griddash": "longdashdot", + "type": "linear", + "range": [ + -1.122244488977956, + 1.122244488977956 + ], + "autorange": true + }, + "yaxis": { + "griddash": "dashdot", + "type": "linear", + "range": [ + -5.439490445859873, + 1.4394904458598727 + ], + "autorange": true + }, + "height": 450, + "width": 1000, + "autosize": true + } +} From 4d6eb7e1715c83b7637dea859f2f451d15f1d0db Mon Sep 17 00:00:00 2001 From: Nick White Date: Thu, 17 Mar 2022 23:19:17 +0000 Subject: [PATCH 02/27] add log --- draftlogs/6144_add.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 draftlogs/6144_add.md diff --git a/draftlogs/6144_add.md b/draftlogs/6144_add.md new file mode 100644 index 00000000000..37cb7e0c057 --- /dev/null +++ b/draftlogs/6144_add.md @@ -0,0 +1 @@ +Add `griddash` axis property, cf. `gridwith` and `gridcolor` [[6144](https://github.com/plotly/plotly.js/pull/6144)] \ No newline at end of file From f41c3538f4aca1132732abd692071b8342872445 Mon Sep 17 00:00:00 2001 From: Nick White Date: Thu, 17 Mar 2022 23:24:14 +0000 Subject: [PATCH 03/27] typo --- src/traces/carpet/axis_defaults.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/traces/carpet/axis_defaults.js b/src/traces/carpet/axis_defaults.js index 3ae341e3954..8ef70218409 100644 --- a/src/traces/carpet/axis_defaults.js +++ b/src/traces/carpet/axis_defaults.js @@ -149,7 +149,7 @@ module.exports = function handleAxisDefaults(containerIn, containerOut, options) var startLineColor = coerce2('startlinecolor', dfltColor); var startLineWidth = coerce2('startlinewidth', gridWidth); - var startLineDash = coerce2('startlinewidth', gridDash); + var startLineDash = coerce2('startlinedash', gridDash); var showStartLine = coerce('startline', containerOut.showgrid || !!startLineColor || !!startLineWidth || !!startLineDash); if(!showStartLine) { @@ -160,7 +160,7 @@ module.exports = function handleAxisDefaults(containerIn, containerOut, options) var endLineColor = coerce2('endlinecolor', dfltColor); var endLineWidth = coerce2('endlinewidth', gridWidth); - var endLineDash = coerce2('endlinewidth', gridDash); + var endLineDash = coerce2('endlinedash', gridDash); var showEndLine = coerce('endline', containerOut.showgrid || !!endLineColor || !!endLineWidth || !!endLineDash); if(!showEndLine) { From b2432b20d18ad129a4a5bdbc1ec138ae89fc9846 Mon Sep 17 00:00:00 2001 From: Nick White Date: Fri, 18 Mar 2022 21:30:57 +0000 Subject: [PATCH 04/27] update plo-schema diff --- test/plot-schema.json | 252 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 252 insertions(+) diff --git a/test/plot-schema.json b/test/plot-schema.json index 4276ca92c8f..1a02ff171e5 100644 --- a/test/plot-schema.json +++ b/test/plot-schema.json @@ -1934,6 +1934,20 @@ "editType": "plot", "valType": "color" }, + "griddash": { + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", + "dflt": "", + "editType": "plot", + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ] + }, "gridwidth": { "description": "Sets the graticule's stroke width (in px).", "dflt": 1, @@ -1983,6 +1997,20 @@ "editType": "plot", "valType": "color" }, + "griddash": { + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", + "dflt": "", + "editType": "plot", + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ] + }, "gridwidth": { "description": "Sets the graticule's stroke width (in px).", "dflt": 1, @@ -3577,6 +3605,20 @@ "editType": "plot", "valType": "color" }, + "griddash": { + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", + "dflt": "", + "editType": "plot", + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ] + }, "gridwidth": { "description": "Sets the width (in px) of the grid lines.", "dflt": 1, @@ -4137,6 +4179,20 @@ "editType": "plot", "valType": "color" }, + "griddash": { + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", + "dflt": "", + "editType": "plot", + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ] + }, "gridwidth": { "description": "Sets the width (in px) of the grid lines.", "dflt": 1, @@ -5234,6 +5290,20 @@ "editType": "plot", "valType": "color" }, + "griddash": { + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", + "dflt": "", + "editType": "plot", + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ] + }, "gridwidth": { "description": "Sets the width (in px) of the grid lines.", "dflt": 1, @@ -5796,6 +5866,20 @@ "editType": "plot", "valType": "color" }, + "griddash": { + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", + "dflt": "", + "editType": "plot", + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ] + }, "gridwidth": { "description": "Sets the width (in px) of the grid lines.", "dflt": 1, @@ -6358,6 +6442,20 @@ "editType": "plot", "valType": "color" }, + "griddash": { + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", + "dflt": "", + "editType": "plot", + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ] + }, "gridwidth": { "description": "Sets the width (in px) of the grid lines.", "dflt": 1, @@ -7445,6 +7543,20 @@ "editType": "plot", "valType": "color" }, + "griddash": { + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", + "dflt": "", + "editType": "plot", + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ] + }, "gridwidth": { "description": "Sets the width (in px) of the grid lines.", "dflt": 1, @@ -7624,6 +7736,20 @@ "editType": "plot", "valType": "color" }, + "griddash": { + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", + "dflt": "", + "editType": "plot", + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ] + }, "gridwidth": { "description": "Sets the width (in px) of the grid lines.", "dflt": 1, @@ -7891,6 +8017,20 @@ "editType": "plot", "valType": "color" }, + "griddash": { + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", + "dflt": "", + "editType": "plot", + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ] + }, "gridwidth": { "description": "Sets the width (in px) of the grid lines.", "dflt": 1, @@ -8275,6 +8415,20 @@ "editType": "plot", "valType": "color" }, + "griddash": { + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", + "dflt": "", + "editType": "plot", + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ] + }, "gridwidth": { "description": "Sets the width (in px) of the grid lines.", "dflt": 1, @@ -8665,6 +8819,20 @@ "editType": "plot", "valType": "color" }, + "griddash": { + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", + "dflt": "", + "editType": "plot", + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ] + }, "gridwidth": { "description": "Sets the width (in px) of the grid lines.", "dflt": 1, @@ -9771,6 +9939,20 @@ "editType": "ticks", "valType": "color" }, + "griddash": { + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", + "dflt": "", + "editType": "none", + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ] + }, "gridwidth": { "description": "Sets the width (in px) of the grid lines.", "dflt": 1, @@ -10889,6 +11071,20 @@ "editType": "ticks", "valType": "color" }, + "griddash": { + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", + "dflt": "", + "editType": "none", + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ] + }, "gridwidth": { "description": "Sets the width (in px) of the grid lines.", "dflt": 1, @@ -16599,6 +16795,20 @@ "editType": "calc", "valType": "color" }, + "griddash": { + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", + "dflt": "", + "editType": "none", + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ] + }, "gridwidth": { "description": "Sets the width (in px) of the axis line.", "dflt": 1, @@ -16656,6 +16866,20 @@ "min": 0, "valType": "integer" }, + "minorgriddash": { + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", + "dflt": "", + "editType": "none", + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ] + }, "minorgridwidth": { "description": "Sets the width (in px) of the grid lines.", "dflt": 1, @@ -17133,6 +17357,20 @@ "editType": "calc", "valType": "color" }, + "griddash": { + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", + "dflt": "", + "editType": "none", + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ] + }, "gridwidth": { "description": "Sets the width (in px) of the axis line.", "dflt": 1, @@ -17190,6 +17428,20 @@ "min": 0, "valType": "integer" }, + "minorgriddash": { + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", + "dflt": "", + "editType": "none", + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ] + }, "minorgridwidth": { "description": "Sets the width (in px) of the grid lines.", "dflt": 1, From 218077561a2fbba26104ef5cfa7fae27bb039002 Mon Sep 17 00:00:00 2001 From: Nick White Date: Fri, 18 Mar 2022 21:45:12 +0000 Subject: [PATCH 05/27] fix tests --- src/plots/cartesian/axes.js | 1 - src/traces/carpet/axis_defaults.js | 10 +++------- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js index f549fbf8ee8..3caa254e187 100644 --- a/src/plots/cartesian/axes.js +++ b/src/plots/cartesian/axes.js @@ -2916,7 +2916,6 @@ axes.drawGrid = function(gd, ax, opts) { ax._gw = Drawing.crispRound(gd, ax.gridwidth, 1); ax._gd = Drawing.dashStyle(ax.griddash, ax.gridwidth); - console.log(ax._gd, ax.griddash, ax.gridwidth); grid.attr('transform', opts.transFn) .attr('d', opts.path) diff --git a/src/traces/carpet/axis_defaults.js b/src/traces/carpet/axis_defaults.js index 8ef70218409..d4efe388946 100644 --- a/src/traces/carpet/axis_defaults.js +++ b/src/traces/carpet/axis_defaults.js @@ -138,7 +138,7 @@ module.exports = function handleAxisDefaults(containerIn, containerOut, options) var gridColor = coerce2('gridcolor', addOpacity(dfltColor, 0.3)); var gridWidth = coerce2('gridwidth'); - var gridDash = coerce2('griddash'); + var gridDash = coerce('griddash'); var showGrid = coerce('showgrid'); if(!showGrid) { @@ -149,24 +149,20 @@ module.exports = function handleAxisDefaults(containerIn, containerOut, options) var startLineColor = coerce2('startlinecolor', dfltColor); var startLineWidth = coerce2('startlinewidth', gridWidth); - var startLineDash = coerce2('startlinedash', gridDash); - var showStartLine = coerce('startline', containerOut.showgrid || !!startLineColor || !!startLineWidth || !!startLineDash); + var showStartLine = coerce('startline', containerOut.showgrid || !!startLineColor || !!startLineWidth); if(!showStartLine) { delete containerOut.startlinecolor; delete containerOut.startlinewidth; - delete containerOut.startlinedash; } var endLineColor = coerce2('endlinecolor', dfltColor); var endLineWidth = coerce2('endlinewidth', gridWidth); - var endLineDash = coerce2('endlinedash', gridDash); - var showEndLine = coerce('endline', containerOut.showgrid || !!endLineColor || !!endLineWidth || !!endLineDash); + var showEndLine = coerce('endline', containerOut.showgrid || !!endLineColor || !!endLineWidth); if(!showEndLine) { delete containerOut.endlinecolor; delete containerOut.endlinewidth; - delete containerOut.endlinedash; } if(!showGrid) { From 1df024394a5da2ce97eb86dee71c69e040cf80bd Mon Sep 17 00:00:00 2001 From: Nick White Date: Fri, 18 Mar 2022 21:48:19 +0000 Subject: [PATCH 06/27] fix tests --- src/traces/carpet/axis_defaults.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/traces/carpet/axis_defaults.js b/src/traces/carpet/axis_defaults.js index d4efe388946..6360e6ae569 100644 --- a/src/traces/carpet/axis_defaults.js +++ b/src/traces/carpet/axis_defaults.js @@ -138,7 +138,7 @@ module.exports = function handleAxisDefaults(containerIn, containerOut, options) var gridColor = coerce2('gridcolor', addOpacity(dfltColor, 0.3)); var gridWidth = coerce2('gridwidth'); - var gridDash = coerce('griddash'); + var gridDash = coerce2('griddash'); var showGrid = coerce('showgrid'); if(!showGrid) { From 3faa3d2cdcf62c052e3e14368cecda95f3881b90 Mon Sep 17 00:00:00 2001 From: Nick White Date: Fri, 18 Mar 2022 22:18:22 +0000 Subject: [PATCH 07/27] fix tests --- test/image/baselines/line_grid_dash.png | Bin 16265 -> 24090 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/image/baselines/line_grid_dash.png b/test/image/baselines/line_grid_dash.png index c55daa84033ba9783ef10b9adfc504d9591fe3b6..585db572cb1fb0eb1fa4bfd5cbba537354826920 100644 GIT binary patch literal 24090 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 ZfeC{V^z?r@fJfrxl(M=~y25$?{{!d~Ah-Yk From 64917baf17454446e8e1a20f7164b368aa5e904e Mon Sep 17 00:00:00 2001 From: Nick White Date: Fri, 18 Mar 2022 22:20:43 +0000 Subject: [PATCH 08/27] review comments --- src/plots/cartesian/line_grid_defaults.js | 2 +- src/traces/carpet/axis_defaults.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plots/cartesian/line_grid_defaults.js b/src/plots/cartesian/line_grid_defaults.js index 7fc68b03356..fe04c508c8f 100644 --- a/src/plots/cartesian/line_grid_defaults.js +++ b/src/plots/cartesian/line_grid_defaults.js @@ -41,7 +41,7 @@ module.exports = function handleLineGridDefaults(containerIn, containerOut, coer if(!showGridLines) { delete containerOut.gridcolor; delete containerOut.gridwidth; - delete containerOut.gridDash; + delete containerOut.griddash; } if(!opts.noZeroLine) { diff --git a/src/traces/carpet/axis_defaults.js b/src/traces/carpet/axis_defaults.js index 6360e6ae569..198de9f4430 100644 --- a/src/traces/carpet/axis_defaults.js +++ b/src/traces/carpet/axis_defaults.js @@ -168,7 +168,7 @@ module.exports = function handleAxisDefaults(containerIn, containerOut, options) if(!showGrid) { delete containerOut.gridcolor; delete containerOut.gridWidth; - delete containerOut.gridDash; + delete containerOut.griddash; } else { coerce('minorgridcount'); coerce('minorgridwidth', gridWidth); From 10e11889e1337f3468c8c378ef8ba93afe935b2d Mon Sep 17 00:00:00 2001 From: Nick White Date: Sat, 19 Mar 2022 22:24:23 +0000 Subject: [PATCH 09/27] try this --- src/plots/cartesian/axes.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js index 3caa254e187..24a9283a730 100644 --- a/src/plots/cartesian/axes.js +++ b/src/plots/cartesian/axes.js @@ -2915,12 +2915,11 @@ axes.drawGrid = function(gd, ax, opts) { .classed('crisp', opts.crisp !== false); ax._gw = Drawing.crispRound(gd, ax.gridwidth, 1); - ax._gd = Drawing.dashStyle(ax.griddash, ax.gridwidth); grid.attr('transform', opts.transFn) .attr('d', opts.path) .call(Color.stroke, ax.gridcolor || '#ddd') - .style('stroke-dasharray', ax._gd) + .style('stroke-dasharray', Drawing.dashStyle(ax.griddash, ax.gridwidth)) .style('stroke-width', ax._gw + 'px') .style('display', null); // visible From e2943dd4f53f27e722f4b561720fff1b08f46603 Mon Sep 17 00:00:00 2001 From: Nick White Date: Sun, 20 Mar 2022 22:03:36 +0000 Subject: [PATCH 10/27] rename per suggestion --- .../{line_grid_dash.png => zz-line_grid_dash.png} | Bin .../{line_grid_dash.json => zz-line_grid_dash.json} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename test/image/baselines/{line_grid_dash.png => zz-line_grid_dash.png} (100%) rename test/image/mocks/{line_grid_dash.json => zz-line_grid_dash.json} (100%) diff --git a/test/image/baselines/line_grid_dash.png b/test/image/baselines/zz-line_grid_dash.png similarity index 100% rename from test/image/baselines/line_grid_dash.png rename to test/image/baselines/zz-line_grid_dash.png diff --git a/test/image/mocks/line_grid_dash.json b/test/image/mocks/zz-line_grid_dash.json similarity index 100% rename from test/image/mocks/line_grid_dash.json rename to test/image/mocks/zz-line_grid_dash.json From d36312f61abbbca160dd47f1e28a7af25c54a7fd Mon Sep 17 00:00:00 2001 From: Nick White Date: Sun, 20 Mar 2022 22:30:59 +0000 Subject: [PATCH 11/27] retrigger circleci --- draftlogs/6144_add.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/draftlogs/6144_add.md b/draftlogs/6144_add.md index 37cb7e0c057..02db06fa211 100644 --- a/draftlogs/6144_add.md +++ b/draftlogs/6144_add.md @@ -1 +1 @@ -Add `griddash` axis property, cf. `gridwith` and `gridcolor` [[6144](https://github.com/plotly/plotly.js/pull/6144)] \ No newline at end of file +Add `griddash` axis property to match `gridwith` and `gridcolor` [[6144](https://github.com/plotly/plotly.js/pull/6144)] \ No newline at end of file From 6f9f4a61f2c55c10d011d93f860b20e17d8c05d2 Mon Sep 17 00:00:00 2001 From: Mojtaba Samimi <33888540+archmoj@users.noreply.github.com> Date: Wed, 23 Mar 2022 10:11:05 -0400 Subject: [PATCH 12/27] Update src/plots/cartesian/layout_attributes.js --- src/plots/cartesian/layout_attributes.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plots/cartesian/layout_attributes.js b/src/plots/cartesian/layout_attributes.js index 4d5394b72cc..7c2fd225bc4 100644 --- a/src/plots/cartesian/layout_attributes.js +++ b/src/plots/cartesian/layout_attributes.js @@ -797,7 +797,7 @@ module.exports = { editType: 'ticks', description: 'Sets the width (in px) of the grid lines.' }, - griddash: extendFlat({}, dash, {dflt: '', editType: 'none'}), + griddash: extendFlat({}, dash, {dflt: '', editType: 'ticks'}), zeroline: { valType: 'boolean', editType: 'ticks', From 3ac8d1912e94dd79867fb9533a9fcc4f8e870df4 Mon Sep 17 00:00:00 2001 From: Mojtaba Samimi <33888540+archmoj@users.noreply.github.com> Date: Wed, 23 Mar 2022 10:15:13 -0400 Subject: [PATCH 13/27] Update src/plots/cartesian/layout_attributes.js --- src/plots/cartesian/layout_attributes.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plots/cartesian/layout_attributes.js b/src/plots/cartesian/layout_attributes.js index 7c2fd225bc4..219e2b314e9 100644 --- a/src/plots/cartesian/layout_attributes.js +++ b/src/plots/cartesian/layout_attributes.js @@ -797,7 +797,7 @@ module.exports = { editType: 'ticks', description: 'Sets the width (in px) of the grid lines.' }, - griddash: extendFlat({}, dash, {dflt: '', editType: 'ticks'}), + griddash: extendFlat({}, dash, {editType: 'ticks'}), zeroline: { valType: 'boolean', editType: 'ticks', From d7de560a1efbbd5e52f0ed692829c2d17ce12a52 Mon Sep 17 00:00:00 2001 From: Mojtaba Samimi <33888540+archmoj@users.noreply.github.com> Date: Wed, 23 Mar 2022 10:22:28 -0400 Subject: [PATCH 14/27] Update draftlogs/6144_add.md --- draftlogs/6144_add.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/draftlogs/6144_add.md b/draftlogs/6144_add.md index 02db06fa211..a3a2a121d74 100644 --- a/draftlogs/6144_add.md +++ b/draftlogs/6144_add.md @@ -1 +1 @@ -Add `griddash` axis property to match `gridwith` and `gridcolor` [[6144](https://github.com/plotly/plotly.js/pull/6144)] \ No newline at end of file + - Add `griddash` axis property to match `gridwith` and `gridcolor` [[6144](https://github.com/plotly/plotly.js/pull/6144)], with thanks to @njwhite for the contribution! \ No newline at end of file From fc2819239365219c2e97dae716b45ff48b74e869 Mon Sep 17 00:00:00 2001 From: Mojtaba Samimi <33888540+archmoj@users.noreply.github.com> Date: Wed, 23 Mar 2022 11:05:49 -0400 Subject: [PATCH 15/27] Update src/plots/geo/layout_attributes.js --- src/plots/geo/layout_attributes.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plots/geo/layout_attributes.js b/src/plots/geo/layout_attributes.js index 19096bdd05e..f0da026f59d 100644 --- a/src/plots/geo/layout_attributes.js +++ b/src/plots/geo/layout_attributes.js @@ -53,7 +53,7 @@ var geoAxesAttrs = { 'Sets the graticule\'s stroke width (in px).' ].join(' ') }, - griddash: extendFlat({}, dash, {dflt: '', editType: 'none'}) + griddash: dash }; var attrs = module.exports = overrideAll({ From 253aad7b00df6c0209431434b6ba44b5c118ab9c Mon Sep 17 00:00:00 2001 From: Mojtaba Samimi <33888540+archmoj@users.noreply.github.com> Date: Wed, 23 Mar 2022 11:06:00 -0400 Subject: [PATCH 16/27] Update src/plots/geo/layout_attributes.js --- src/plots/geo/layout_attributes.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/plots/geo/layout_attributes.js b/src/plots/geo/layout_attributes.js index f0da026f59d..97ef64786e6 100644 --- a/src/plots/geo/layout_attributes.js +++ b/src/plots/geo/layout_attributes.js @@ -3,7 +3,6 @@ var colorAttrs = require('../../components/color/attributes'); var domainAttrs = require('../domain').attributes; var dash = require('../../components/drawing/attributes').dash; -var extendFlat = require('../../lib/extend').extendFlat; var constants = require('./constants'); var overrideAll = require('../../plot_api/edit_types').overrideAll; var sortObjectKeys = require('../../lib/sort_object_keys'); From 56baf0b30307fa6e5a41b48f487ac2b6de5f05c4 Mon Sep 17 00:00:00 2001 From: Mojtaba Samimi <33888540+archmoj@users.noreply.github.com> Date: Wed, 23 Mar 2022 11:06:46 -0400 Subject: [PATCH 17/27] Update src/traces/carpet/axis_attributes.js --- src/traces/carpet/axis_attributes.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/traces/carpet/axis_attributes.js b/src/traces/carpet/axis_attributes.js index 91e70bfa7a4..2c516a64c3d 100644 --- a/src/traces/carpet/axis_attributes.js +++ b/src/traces/carpet/axis_attributes.js @@ -362,7 +362,7 @@ module.exports = { editType: 'calc', description: 'Sets the width (in px) of the axis line.' }, - griddash: extendFlat({}, dash, {dflt: '', editType: 'none'}), + griddash: extendFlat({}, dash, {editType: 'calc'}), showgrid: { valType: 'boolean', dflt: true, From d19b0a5430c0dd57a0ab21b4c868fd73cbd53e6b Mon Sep 17 00:00:00 2001 From: Mojtaba Samimi <33888540+archmoj@users.noreply.github.com> Date: Wed, 23 Mar 2022 11:07:20 -0400 Subject: [PATCH 18/27] Update src/traces/carpet/axis_attributes.js --- src/traces/carpet/axis_attributes.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/traces/carpet/axis_attributes.js b/src/traces/carpet/axis_attributes.js index 2c516a64c3d..cfc1b10dfd4 100644 --- a/src/traces/carpet/axis_attributes.js +++ b/src/traces/carpet/axis_attributes.js @@ -386,7 +386,7 @@ module.exports = { editType: 'calc', description: 'Sets the width (in px) of the grid lines.' }, - minorgriddash: extendFlat({}, dash, {dflt: '', editType: 'none'}), + minorgriddash: extendFlat({}, dash, {editType: 'calc'}), minorgridcolor: { valType: 'color', dflt: colorAttrs.lightLine, From 8e058a8b4f36ca67a5208935fd8d3366fd124db1 Mon Sep 17 00:00:00 2001 From: Mojtaba Samimi <33888540+archmoj@users.noreply.github.com> Date: Wed, 23 Mar 2022 11:14:52 -0400 Subject: [PATCH 19/27] Update draftlogs/6144_add.md --- draftlogs/6144_add.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/draftlogs/6144_add.md b/draftlogs/6144_add.md index a3a2a121d74..f54e9d622b9 100644 --- a/draftlogs/6144_add.md +++ b/draftlogs/6144_add.md @@ -1 +1,3 @@ - - Add `griddash` axis property to match `gridwith` and `gridcolor` [[6144](https://github.com/plotly/plotly.js/pull/6144)], with thanks to @njwhite for the contribution! \ No newline at end of file + - Add `griddash` axis property to cartesian, polar, smith, ternary, geo and gl2d subplots and + add `griddash` and `minorgriddash` to `carpet` trace [[6144](https://github.com/plotly/plotly.js/pull/6144)], + with thanks to @njwhite for the contribution! \ No newline at end of file From d75e27d4889af2cc784281db41c0516ac77e3b3f Mon Sep 17 00:00:00 2001 From: Nick White Date: Wed, 23 Mar 2022 21:33:07 +0000 Subject: [PATCH 20/27] undo gl3d --- draftlogs/6144_add.md | 2 +- src/plots/gl3d/layout/axis_attributes.js | 1 - src/plots/gl3d/layout/convert.js | 2 -- 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/draftlogs/6144_add.md b/draftlogs/6144_add.md index f54e9d622b9..9bed4f08f35 100644 --- a/draftlogs/6144_add.md +++ b/draftlogs/6144_add.md @@ -1,3 +1,3 @@ - - Add `griddash` axis property to cartesian, polar, smith, ternary, geo and gl2d subplots and + - Add `griddash` axis property to cartesian, polar, smith, ternary, geo and gl2d subplots and add `griddash` and `minorgriddash` to `carpet` trace [[6144](https://github.com/plotly/plotly.js/pull/6144)], with thanks to @njwhite for the contribution! \ No newline at end of file diff --git a/src/plots/gl3d/layout/axis_attributes.js b/src/plots/gl3d/layout/axis_attributes.js index 31b6a20eae0..64520c93dad 100644 --- a/src/plots/gl3d/layout/axis_attributes.js +++ b/src/plots/gl3d/layout/axis_attributes.js @@ -107,7 +107,6 @@ module.exports = overrideAll({ gridcolor: extendFlat({}, axesAttrs.gridcolor, // shouldn't this be on-par with 2D? {dflt: 'rgb(204, 204, 204)'}), gridwidth: axesAttrs.gridwidth, - griddash: axesAttrs.griddash, zeroline: axesAttrs.zeroline, zerolinecolor: axesAttrs.zerolinecolor, zerolinewidth: axesAttrs.zerolinewidth, diff --git a/src/plots/gl3d/layout/convert.js b/src/plots/gl3d/layout/convert.js index 494ad2eb761..b3bc7777d37 100644 --- a/src/plots/gl3d/layout/convert.js +++ b/src/plots/gl3d/layout/convert.js @@ -39,7 +39,6 @@ function AxesOptions() { this.gridEnable = [ true, true, true ]; this.gridWidth = [ 1, 1, 1 ]; - this.gridDash = [ '', '', '' ]; this.gridColor = [ [0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1] ]; this.zeroEnable = [ true, true, true ]; @@ -94,7 +93,6 @@ proto.merge = function(fullLayout, sceneLayout) { if('showgrid' in axes) opts.gridEnable[i] = axes.showgrid; if('gridcolor' in axes) opts.gridColor[i] = str2RgbaArray(axes.gridcolor); if('gridwidth' in axes) opts.gridWidth[i] = axes.gridwidth; - if('griddash' in axes) opts.gridDash[i] = axes.griddash; // Remove zeroline if axis type is log // otherwise the zeroline is incorrectly drawn at 1 on log axes From db4912ede87889a3398b2ece639b7da06fc54358 Mon Sep 17 00:00:00 2001 From: Nick White Date: Wed, 23 Mar 2022 22:05:19 +0000 Subject: [PATCH 21/27] more mocks --- src/traces/carpet/plot.js | 1 + ..._grid_dash.png => zz00-line_grid_dash.png} | Bin ...rid_dash.json => zz00-line_grid_dash.json} | 0 .../mocks/zz01-plot_types_grid_dash.json | 243 ++++++++++++++++++ test/image/mocks/zz02-carpet_grid_dash.json | 39 +++ test/plot-schema.json | 84 ++---- 6 files changed, 304 insertions(+), 63 deletions(-) rename test/image/baselines/{zz-line_grid_dash.png => zz00-line_grid_dash.png} (100%) rename test/image/mocks/{zz-line_grid_dash.json => zz00-line_grid_dash.json} (100%) create mode 100644 test/image/mocks/zz01-plot_types_grid_dash.json create mode 100644 test/image/mocks/zz02-carpet_grid_dash.json diff --git a/src/traces/carpet/plot.js b/src/traces/carpet/plot.js index f12c30b8b3a..f8b944e7d66 100644 --- a/src/traces/carpet/plot.js +++ b/src/traces/carpet/plot.js @@ -102,6 +102,7 @@ function drawGridLines(xaxis, yaxis, layer, axis, axisLetter, gridlines) { el.attr('d', path) .style('stroke-width', gridline.width) .style('stroke', gridline.color) + .style('stroke-dasharray', Drawing.dashStyle(gridline.dash, gridline.width)) .style('fill', 'none'); }); diff --git a/test/image/baselines/zz-line_grid_dash.png b/test/image/baselines/zz00-line_grid_dash.png similarity index 100% rename from test/image/baselines/zz-line_grid_dash.png rename to test/image/baselines/zz00-line_grid_dash.png diff --git a/test/image/mocks/zz-line_grid_dash.json b/test/image/mocks/zz00-line_grid_dash.json similarity index 100% rename from test/image/mocks/zz-line_grid_dash.json rename to test/image/mocks/zz00-line_grid_dash.json diff --git a/test/image/mocks/zz01-plot_types_grid_dash.json b/test/image/mocks/zz01-plot_types_grid_dash.json new file mode 100644 index 00000000000..480cdf1e8a3 --- /dev/null +++ b/test/image/mocks/zz01-plot_types_grid_dash.json @@ -0,0 +1,243 @@ +{ + "data": [ + { + "x": [ + 1, + 2, + 3 + ], + "y": [ + 2, + 1, + 2 + ] + }, + { + "type": "scattersmith", + "real": [ + 0, + 0, + 1, + 1, + 2, + 5, + 10 + ], + "imag": [ + 0, + 1, + 0, + -2, + -2, + -5, + -10 + ], + "subplot": "smith" + }, + { + "type": "scatterpolar", + "r": [ + 2, + 3, + 4, + 5, + 2 + ], + "theta": [ + 90, + 180, + 250, + 300, + 90 + ], + "subplot": "polar" + }, + { + "type": "scattergeo", + "mode": "markers+lines", + "lon": [ + -100, + 0, + 100 + ], + "lat": [ + -45, + 0, + 45 + ], + "subplot": "geo" + }, + { + "type": "scatterternary", + "a": [ + 2, + 1, + 1 + ], + "b": [ + 1, + 2, + 1 + ], + "c": [ + 1, + 1, + 2.12345 + ], + "subplot": "ternary" + } + ], + "layout": { + "xaxis": { + "domain": [ + 0, + 0.33 + ], + "type": "linear", + "range": [ + 0.8719530783206721, + 3.128046921679328 + ], + "autorange": true, + "griddash": "longdash", + "gridcolor": "black" + }, + "yaxis": { + "domain": [ + 0, + 0.5 + ], + "type": "linear", + "range": [ + 0.9202898550724637, + 2.079710144927536 + ], + "autorange": true, + "griddash": "dashdot", + "gridcolor": "black" + }, + "smith": { + "realaxis": { + "tickfont": { + "size": 8 + }, + "griddash": "dot", + "gridcolor": "black" + }, + "imaginaryaxis": { + "tickfont": { + "size": 8 + }, + "griddash": "dash", + "gridcolor": "black" + }, + "domain": { + "x": [ + 0.33, + 0.66 + ], + "y": [ + 0.5, + 1 + ] + } + }, + "polar": { + "sector": [ + 0, + 360 + ], + "domain": { + "x": [ + 0, + 0.33 + ], + "y": [ + 0.55, + 1 + ] + }, + "radialaxis": { + "tickfont": { + "size": 8 + }, + "griddash": "4px,10px,2px,2px", + "gridcolor": "black" + }, + "angularaxis": { + "tickfont": { + "size": 8 + }, + "rotation": -90, + "direction": "clockwise", + "griddash": "dot", + "gridcolor": "black" + } + }, + "geo": { + "domain": { + "x": [ + 0.35, + 0.66 + ], + "y": [ + 0, + 0.5 + ] + }, + "lataxis": { + "showgrid": true, + "griddash": "dash", + "gridcolor": "black" + }, + "lonaxis": { + "showgrid": true, + "griddash": "dot", + "gridcolor": "black" + } + }, + "ternary": { + "domain": { + "x": [ + 0.7, + 1 + ], + "y": [ + 0, + 1 + ] + }, + "aaxis": { + "title": { + "text": "A" + }, + "griddash": "longdashdot", + "gridcolor": "black" + }, + "baxis": { + "title": { + "text": "B" + }, + "griddash": "40px", + "gridcolor": "black" + }, + "caxis": { + "title": { + "text": "C" + }, + "griddash": "dashdot", + "gridcolor": "black" + } + }, + "margin": { + "t": 25, + "l": 25, + "r": 25, + "b": 25 + }, + "showlegend": false, + "height": 450, + "width": 1000, + "autosize": true + } +} diff --git a/test/image/mocks/zz02-carpet_grid_dash.json b/test/image/mocks/zz02-carpet_grid_dash.json new file mode 100644 index 00000000000..5d4322d2347 --- /dev/null +++ b/test/image/mocks/zz02-carpet_grid_dash.json @@ -0,0 +1,39 @@ +{ + "data": [ + { + "type": "carpet", + "a": [0, 5e-7, 0.000001], + "b": [0, 500000, 1000000], + "y": [ + [1.00000, 1.32287, 1.73205], + [1.32287, 1.58113, 1.93649], + [1.73205, 1.93649, 2.23606] + ], + "aaxis": { + "minorgridcount": 3, + "gridcolor": "black", + "minorgridcolor": "red", + "griddash": "dot", + "minorgriddash": "dash" + }, + "baxis": { + "minorgridcount": 3, + "gridcolor": "black", + "minorgridcolor": "red", + "griddash": "dash", + "minorgriddash": "dot" + } + } + ], + "layout": { + "width": 500, + "height": 500, + "margin": { + "t": 40, + "r": 20, + "b": 40, + "l": 40 + }, + "dragmode": "pan" + } +} diff --git a/test/plot-schema.json b/test/plot-schema.json index 1a02ff171e5..a27fa752f29 100644 --- a/test/plot-schema.json +++ b/test/plot-schema.json @@ -1936,7 +1936,7 @@ }, "griddash": { "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", - "dflt": "", + "dflt": "solid", "editType": "plot", "valType": "string", "values": [ @@ -1999,7 +1999,7 @@ }, "griddash": { "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", - "dflt": "", + "dflt": "solid", "editType": "plot", "valType": "string", "values": [ @@ -3607,7 +3607,7 @@ }, "griddash": { "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", - "dflt": "", + "dflt": "solid", "editType": "plot", "valType": "string", "values": [ @@ -4181,7 +4181,7 @@ }, "griddash": { "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", - "dflt": "", + "dflt": "solid", "editType": "plot", "valType": "string", "values": [ @@ -5290,20 +5290,6 @@ "editType": "plot", "valType": "color" }, - "griddash": { - "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", - "dflt": "", - "editType": "plot", - "valType": "string", - "values": [ - "solid", - "dot", - "dash", - "longdash", - "dashdot", - "longdashdot" - ] - }, "gridwidth": { "description": "Sets the width (in px) of the grid lines.", "dflt": 1, @@ -5866,20 +5852,6 @@ "editType": "plot", "valType": "color" }, - "griddash": { - "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", - "dflt": "", - "editType": "plot", - "valType": "string", - "values": [ - "solid", - "dot", - "dash", - "longdash", - "dashdot", - "longdashdot" - ] - }, "gridwidth": { "description": "Sets the width (in px) of the grid lines.", "dflt": 1, @@ -6442,20 +6414,6 @@ "editType": "plot", "valType": "color" }, - "griddash": { - "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", - "dflt": "", - "editType": "plot", - "valType": "string", - "values": [ - "solid", - "dot", - "dash", - "longdash", - "dashdot", - "longdashdot" - ] - }, "gridwidth": { "description": "Sets the width (in px) of the grid lines.", "dflt": 1, @@ -7545,7 +7503,7 @@ }, "griddash": { "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", - "dflt": "", + "dflt": "solid", "editType": "plot", "valType": "string", "values": [ @@ -7738,7 +7696,7 @@ }, "griddash": { "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", - "dflt": "", + "dflt": "solid", "editType": "plot", "valType": "string", "values": [ @@ -8019,7 +7977,7 @@ }, "griddash": { "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", - "dflt": "", + "dflt": "solid", "editType": "plot", "valType": "string", "values": [ @@ -8417,7 +8375,7 @@ }, "griddash": { "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", - "dflt": "", + "dflt": "solid", "editType": "plot", "valType": "string", "values": [ @@ -8821,7 +8779,7 @@ }, "griddash": { "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", - "dflt": "", + "dflt": "solid", "editType": "plot", "valType": "string", "values": [ @@ -9941,8 +9899,8 @@ }, "griddash": { "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", - "dflt": "", - "editType": "none", + "dflt": "solid", + "editType": "ticks", "valType": "string", "values": [ "solid", @@ -11073,8 +11031,8 @@ }, "griddash": { "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", - "dflt": "", - "editType": "none", + "dflt": "solid", + "editType": "ticks", "valType": "string", "values": [ "solid", @@ -16797,8 +16755,8 @@ }, "griddash": { "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", - "dflt": "", - "editType": "none", + "dflt": "solid", + "editType": "calc", "valType": "string", "values": [ "solid", @@ -16868,8 +16826,8 @@ }, "minorgriddash": { "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", - "dflt": "", - "editType": "none", + "dflt": "solid", + "editType": "calc", "valType": "string", "values": [ "solid", @@ -17359,8 +17317,8 @@ }, "griddash": { "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", - "dflt": "", - "editType": "none", + "dflt": "solid", + "editType": "calc", "valType": "string", "values": [ "solid", @@ -17430,8 +17388,8 @@ }, "minorgriddash": { "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*).", - "dflt": "", - "editType": "none", + "dflt": "solid", + "editType": "calc", "valType": "string", "values": [ "solid", From 980568ad8b77343db5e159d3a7f6a20a942449e6 Mon Sep 17 00:00:00 2001 From: Nick White Date: Wed, 23 Mar 2022 22:33:08 +0000 Subject: [PATCH 22/27] generate baselines --- .../baselines/zz01-plot_types_grid_dash.png | Bin 0 -> 89125 bytes .../image/baselines/zz02-carpet_grid_dash.png | Bin 0 -> 31911 bytes test/image/mocks/zz02-carpet_grid_dash.json | 30 +++++++++++++++--- 3 files changed, 25 insertions(+), 5 deletions(-) create mode 100644 test/image/baselines/zz01-plot_types_grid_dash.png create mode 100644 test/image/baselines/zz02-carpet_grid_dash.png diff --git a/test/image/baselines/zz01-plot_types_grid_dash.png b/test/image/baselines/zz01-plot_types_grid_dash.png new file mode 100644 index 0000000000000000000000000000000000000000..faeabbba42acf900cf4e836b15d8fb6a9d9219e3 GIT binary patch literal 89125 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 z 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 z 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 WqEhF*`Hmg|e>au2luB+`h5Rp+;Wg<1 literal 0 HcmV?d00001 diff --git a/test/image/mocks/zz02-carpet_grid_dash.json b/test/image/mocks/zz02-carpet_grid_dash.json index 5d4322d2347..0696566aab0 100644 --- a/test/image/mocks/zz02-carpet_grid_dash.json +++ b/test/image/mocks/zz02-carpet_grid_dash.json @@ -2,12 +2,32 @@ "data": [ { "type": "carpet", - "a": [0, 5e-7, 0.000001], - "b": [0, 500000, 1000000], + "a": [ + 0, + 5e-07, + 1e-06 + ], + "b": [ + 0, + 500000, + 1000000 + ], "y": [ - [1.00000, 1.32287, 1.73205], - [1.32287, 1.58113, 1.93649], - [1.73205, 1.93649, 2.23606] + [ + 1, + 1.32287, + 1.73205 + ], + [ + 1.32287, + 1.58113, + 1.93649 + ], + [ + 1.73205, + 1.93649, + 2.23606 + ] ], "aaxis": { "minorgridcount": 3, From e73ab393ba291604d98ffa1c0a928091d2eb5980 Mon Sep 17 00:00:00 2001 From: Nick White Date: Wed, 23 Mar 2022 22:43:53 +0000 Subject: [PATCH 23/27] fix tests --- test/image/mocks/zz01-plot_types_grid_dash.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/image/mocks/zz01-plot_types_grid_dash.json b/test/image/mocks/zz01-plot_types_grid_dash.json index 480cdf1e8a3..82e294d05bc 100644 --- a/test/image/mocks/zz01-plot_types_grid_dash.json +++ b/test/image/mocks/zz01-plot_types_grid_dash.json @@ -64,8 +64,7 @@ -45, 0, 45 - ], - "subplot": "geo" + ] }, { "type": "scatterternary", From 75f18fdc2b528406bb3c5f086fe562f46212a1ae Mon Sep 17 00:00:00 2001 From: Nick White Date: Wed, 23 Mar 2022 22:52:40 +0000 Subject: [PATCH 24/27] renaming things --- ...t_grid_dash.png => z-carpet_grid_dash.png} | Bin ...id_dash.png => z-plot_types_grid_dash.png} | Bin test/image/baselines/zz00-line_grid_dash.png | Bin 24090 -> 0 bytes ...grid_dash.json => z-carpet_grid_dash.json} | 0 ..._dash.json => z-plot_types_grid_dash.json} | 0 test/image/mocks/zz00-line_grid_dash.json | 39 ------------------ 6 files changed, 39 deletions(-) rename test/image/baselines/{zz02-carpet_grid_dash.png => z-carpet_grid_dash.png} (100%) rename test/image/baselines/{zz01-plot_types_grid_dash.png => z-plot_types_grid_dash.png} (100%) delete mode 100644 test/image/baselines/zz00-line_grid_dash.png rename test/image/mocks/{zz02-carpet_grid_dash.json => z-carpet_grid_dash.json} (100%) rename test/image/mocks/{zz01-plot_types_grid_dash.json => z-plot_types_grid_dash.json} (100%) delete mode 100644 test/image/mocks/zz00-line_grid_dash.json diff --git a/test/image/baselines/zz02-carpet_grid_dash.png b/test/image/baselines/z-carpet_grid_dash.png similarity index 100% rename from test/image/baselines/zz02-carpet_grid_dash.png rename to test/image/baselines/z-carpet_grid_dash.png diff --git a/test/image/baselines/zz01-plot_types_grid_dash.png b/test/image/baselines/z-plot_types_grid_dash.png similarity index 100% rename from test/image/baselines/zz01-plot_types_grid_dash.png rename to test/image/baselines/z-plot_types_grid_dash.png diff --git a/test/image/baselines/zz00-line_grid_dash.png b/test/image/baselines/zz00-line_grid_dash.png deleted file mode 100644 index 585db572cb1fb0eb1fa4bfd5cbba537354826920..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24090 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 Date: Wed, 23 Mar 2022 23:02:51 +0000 Subject: [PATCH 25/27] no gl2d --- src/plots/gl2d/convert.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/plots/gl2d/convert.js b/src/plots/gl2d/convert.js index 0101e523c2b..ed909999452 100644 --- a/src/plots/gl2d/convert.js +++ b/src/plots/gl2d/convert.js @@ -68,7 +68,6 @@ function Axes2DOptions(scene) { [0, 0, 0, 0.5] ]; this.gridLineWidth = [1, 1]; - this.gridLineDash = ['', '']; this.zeroLineEnable = [true, true]; this.zeroLineWidth = [1, 1]; From a1b7a86cf1f1c63b7c093c61d52d45d3da45b199 Mon Sep 17 00:00:00 2001 From: Nick White Date: Wed, 23 Mar 2022 23:03:26 +0000 Subject: [PATCH 26/27] no gl2d --- src/plots/gl2d/convert.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/plots/gl2d/convert.js b/src/plots/gl2d/convert.js index ed909999452..34b79d17d6e 100644 --- a/src/plots/gl2d/convert.js +++ b/src/plots/gl2d/convert.js @@ -162,7 +162,6 @@ proto.merge = function(options) { this.gridLineEnable[i] = ax.showgrid; this.gridLineColor[i] = str2RGBArray(ax.gridcolor); this.gridLineWidth[i] = ax.gridwidth; - this.gridLineDash[i] = ax.griddash; this.zeroLineEnable[i] = ax.zeroline; this.zeroLineColor[i] = str2RGBArray(ax.zerolinecolor); From 0bafc90bad0316ca14333d8e15f4c950eb30f3b6 Mon Sep 17 00:00:00 2001 From: Nick White Date: Wed, 23 Mar 2022 23:04:33 +0000 Subject: [PATCH 27/27] no gl2d --- draftlogs/6144_add.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/draftlogs/6144_add.md b/draftlogs/6144_add.md index 9bed4f08f35..10dd9871595 100644 --- a/draftlogs/6144_add.md +++ b/draftlogs/6144_add.md @@ -1,3 +1 @@ - - Add `griddash` axis property to cartesian, polar, smith, ternary, geo and gl2d subplots and - add `griddash` and `minorgriddash` to `carpet` trace [[6144](https://github.com/plotly/plotly.js/pull/6144)], - with thanks to @njwhite for the contribution! \ No newline at end of file + - Add `griddash` axis property to cartesian, polar, smith, ternary and geo subplots and add `griddash` and `minorgriddash` to `carpet` trace [[6144](https://github.com/plotly/plotly.js/pull/6144)], with thanks to @njwhite for the contribution! \ No newline at end of file