diff --git a/draftlogs/6144_add.md b/draftlogs/6144_add.md new file mode 100644 index 00000000000..10dd9871595 --- /dev/null +++ b/draftlogs/6144_add.md @@ -0,0 +1 @@ + - 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 diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js index 3f6784d04a3..24a9283a730 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 @@ -2918,6 +2919,7 @@ axes.drawGrid = function(gd, ax, opts) { grid.attr('transform', opts.transFn) .attr('d', opts.path) .call(Color.stroke, ax.gridcolor || '#ddd') + .style('stroke-dasharray', Drawing.dashStyle(ax.griddash, ax.gridwidth)) .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..219e2b314e9 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, {editType: 'ticks'}), 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..fe04c508c8f 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..97ef64786e6 100644 --- a/src/plots/geo/layout_attributes.js +++ b/src/plots/geo/layout_attributes.js @@ -2,6 +2,7 @@ var colorAttrs = require('../../components/color/attributes'); var domainAttrs = require('../domain').attributes; +var dash = require('../../components/drawing/attributes').dash; var constants = require('./constants'); var overrideAll = require('../../plot_api/edit_types').overrideAll; var sortObjectKeys = require('../../lib/sort_object_keys'); @@ -50,7 +51,8 @@ var geoAxesAttrs = { description: [ 'Sets the graticule\'s stroke width (in px).' ].join(' ') - } + }, + griddash: dash }; 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/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..cfc1b10dfd4 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, {editType: 'calc'}), 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, {editType: 'calc'}), minorgridcolor: { valType: 'color', dflt: colorAttrs.lightLine, diff --git a/src/traces/carpet/axis_defaults.js b/src/traces/carpet/axis_defaults.js index 62e01c0776e..18ffc955405 100644 --- a/src/traces/carpet/axis_defaults.js +++ b/src/traces/carpet/axis_defaults.js @@ -138,11 +138,13 @@ 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); @@ -166,13 +168,16 @@ module.exports = function handleAxisDefaults(containerIn, containerOut, options) 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/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/z-carpet_grid_dash.png b/test/image/baselines/z-carpet_grid_dash.png new file mode 100644 index 00000000000..3bd7ca4f2c2 Binary files /dev/null and b/test/image/baselines/z-carpet_grid_dash.png differ diff --git a/test/image/baselines/z-plot_types_grid_dash.png b/test/image/baselines/z-plot_types_grid_dash.png new file mode 100644 index 00000000000..faeabbba42a Binary files /dev/null and b/test/image/baselines/z-plot_types_grid_dash.png differ diff --git a/test/image/mocks/z-carpet_grid_dash.json b/test/image/mocks/z-carpet_grid_dash.json new file mode 100644 index 00000000000..0696566aab0 --- /dev/null +++ b/test/image/mocks/z-carpet_grid_dash.json @@ -0,0 +1,59 @@ +{ + "data": [ + { + "type": "carpet", + "a": [ + 0, + 5e-07, + 1e-06 + ], + "b": [ + 0, + 500000, + 1000000 + ], + "y": [ + [ + 1, + 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/image/mocks/z-plot_types_grid_dash.json b/test/image/mocks/z-plot_types_grid_dash.json new file mode 100644 index 00000000000..82e294d05bc --- /dev/null +++ b/test/image/mocks/z-plot_types_grid_dash.json @@ -0,0 +1,242 @@ +{ + "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 + ] + }, + { + "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/plot-schema.json b/test/plot-schema.json index 4276ca92c8f..a27fa752f29 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": "solid", + "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": "solid", + "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": "solid", + "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": "solid", + "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 +7501,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": "solid", + "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 +7694,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": "solid", + "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 +7975,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": "solid", + "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 +8373,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": "solid", + "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 +8777,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": "solid", + "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 +9897,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": "solid", + "editType": "ticks", + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ] + }, "gridwidth": { "description": "Sets the width (in px) of the grid lines.", "dflt": 1, @@ -10889,6 +11029,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": "solid", + "editType": "ticks", + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ] + }, "gridwidth": { "description": "Sets the width (in px) of the grid lines.", "dflt": 1, @@ -16599,6 +16753,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": "solid", + "editType": "calc", + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ] + }, "gridwidth": { "description": "Sets the width (in px) of the axis line.", "dflt": 1, @@ -16656,6 +16824,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": "solid", + "editType": "calc", + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ] + }, "minorgridwidth": { "description": "Sets the width (in px) of the grid lines.", "dflt": 1, @@ -17133,6 +17315,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": "solid", + "editType": "calc", + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ] + }, "gridwidth": { "description": "Sets the width (in px) of the axis line.", "dflt": 1, @@ -17190,6 +17386,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": "solid", + "editType": "calc", + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ] + }, "minorgridwidth": { "description": "Sets the width (in px) of the grid lines.", "dflt": 1,