plotly.js
Version:
The open source javascript graphing library that powers plotly
937 lines (936 loc) • 4.13 MB
JSON
{
"defs": {
"valObjects": {
"data_array": {
"description": "An {array} of data. The value MUST be an {array}, or we ignore it. Note that typed arrays (e.g. Float32Array) are supported.",
"requiredOpts": [],
"otherOpts": [
"dflt"
]
},
"enumerated": {
"description": "Enumerated value type. The available values are listed in `values`.",
"requiredOpts": [
"values"
],
"otherOpts": [
"dflt",
"coerceNumber",
"arrayOk"
]
},
"boolean": {
"description": "A boolean (true/false) value.",
"requiredOpts": [],
"otherOpts": [
"dflt"
]
},
"number": {
"description": "A number or a numeric value (e.g. a number inside a string). When applicable, values greater (less) than `max` (`min`) are coerced to the `dflt`.",
"requiredOpts": [],
"otherOpts": [
"dflt",
"min",
"max",
"arrayOk"
]
},
"integer": {
"description": "An integer or an integer inside a string. When applicable, values greater (less) than `max` (`min`) are coerced to the `dflt`.",
"requiredOpts": [],
"otherOpts": [
"dflt",
"min",
"max",
"arrayOk"
]
},
"string": {
"description": "A string value. Numbers are converted to strings except for attributes with `strict` set to true.",
"requiredOpts": [],
"otherOpts": [
"dflt",
"noBlank",
"strict",
"arrayOk",
"values"
]
},
"color": {
"description": "A string describing color. Supported formats: - hex (e.g. '#d3d3d3') - rgb (e.g. 'rgb(255, 0, 0)') - rgba (e.g. 'rgb(255, 0, 0, 0.5)') - hsl (e.g. 'hsl(0, 100%, 50%)') - hsv (e.g. 'hsv(0, 100%, 100%)') - named colors (full list: http://www.w3.org/TR/css3-color/#svg-color)",
"requiredOpts": [],
"otherOpts": [
"dflt",
"arrayOk"
]
},
"colorlist": {
"description": "A list of colors. Must be an {array} containing valid colors.",
"requiredOpts": [],
"otherOpts": [
"dflt"
]
},
"colorscale": {
"description": "A Plotly colorscale either picked by a name: (any of Greys, YlGnBu, Greens, YlOrRd, Bluered, RdBu, Reds, Blues, Picnic, Rainbow, Portland, Jet, Hot, Blackbody, Earth, Electric, Viridis, Cividis ) customized as an {array} of 2-element {arrays} where the first element is the normalized color level value (starting at *0* and ending at *1*), and the second item is a valid color string.",
"requiredOpts": [],
"otherOpts": [
"dflt"
]
},
"angle": {
"description": "A number (in degree) between -180 and 180.",
"requiredOpts": [],
"otherOpts": [
"dflt"
]
},
"subplotid": {
"description": "An id string of a subplot type (given by dflt), optionally followed by an integer >1. e.g. if dflt='geo', we can have 'geo', 'geo2', 'geo3', ...",
"requiredOpts": [
"dflt"
],
"otherOpts": [
"regex"
]
},
"flaglist": {
"description": "A string representing a combination of flags (order does not matter here). Combine any of the available `flags` with *+*. (e.g. ('lines+markers')). Values in `extras` cannot be combined.",
"requiredOpts": [
"flags"
],
"otherOpts": [
"dflt",
"extras",
"arrayOk"
]
},
"any": {
"description": "Any type.",
"requiredOpts": [],
"otherOpts": [
"dflt",
"values",
"arrayOk"
]
},
"info_array": {
"description": "An {array} of plot information.",
"requiredOpts": [
"items"
],
"otherOpts": [
"dflt",
"freeLength",
"dimensions"
]
}
},
"metaKeys": [
"_isSubplotObj",
"_isLinkedToArray",
"_arrayAttrRegexps",
"_deprecated",
"description",
"role",
"editType",
"impliedEdits"
],
"editType": {
"traces": {
"valType": "flaglist",
"extras": [
"none"
],
"flags": [
"calc",
"clearAxisTypes",
"plot",
"style",
"markerSize",
"colorbars"
],
"description": "trace attributes should include an `editType` string matching this flaglist. *calc* is the most extensive: a full `Plotly.plot` starting by clearing `gd.calcdata` to force it to be regenerated *clearAxisTypes* resets the types of the axes this trace is on, because new data could cause the automatic axis type detection to change. Log type will not be cleared, as that is never automatically chosen so must have been user-specified. *plot* calls `Plotly.plot` but without first clearing `gd.calcdata`. *style* only calls `module.style` (or module.editStyle) for all trace modules and redraws the legend. *markerSize* is like *style*, but propagate axis-range changes due to scatter `marker.size` *colorbars* only redraws colorbars."
},
"layout": {
"valType": "flaglist",
"extras": [
"none"
],
"flags": [
"calc",
"plot",
"legend",
"ticks",
"axrange",
"layoutstyle",
"modebar",
"camera",
"arraydraw",
"colorbars"
],
"description": "layout attributes should include an `editType` string matching this flaglist. *calc* is the most extensive: a full `Plotly.plot` starting by clearing `gd.calcdata` to force it to be regenerated *plot* calls `Plotly.plot` but without first clearing `gd.calcdata`. *legend* only redraws the legend. *ticks* only redraws axis ticks, labels, and gridlines. *axrange* minimal sequence when updating axis ranges. *layoutstyle* reapplies global and SVG cartesian axis styles. *modebar* just updates the modebar. *camera* just updates the camera settings for gl3d scenes. *arraydraw* allows component arrays to invoke the redraw routines just for the component(s) that changed. *colorbars* only redraws colorbars."
}
},
"impliedEdits": {
"description": "Sometimes when an attribute is changed, other attributes must be altered as well in order to achieve the intended result. For example, when `range` is specified, it is important to set `autorange` to `false` or the new `range` value would be lost in the redraw. `impliedEdits` is the mechanism to do this: `impliedEdits: {autorange: false}`. Each key is a relative paths to the attribute string to change, using *^* to ascend into the parent container, for example `range[0]` has `impliedEdits: {*^autorange*: false}`. A value of `undefined` means that the attribute will not be changed, but its previous value should be recorded in case we want to reverse this change later. For example, `autorange` has `impliedEdits: {*range[0]*: undefined, *range[1]*:undefined} because the range will likely be changed by redraw."
}
},
"traces": {
"scatter": {
"meta": {
"description": "The scatter trace type encompasses line charts, scatter charts, text charts, and bubble charts. The data visualized as scatter point or lines is set in `x` and `y`. Text (appearing either on the chart or on hover only) is via `text`. Bubble charts are achieved by setting `marker.size` and/or `marker.color` to numerical arrays."
},
"categories": [
"cartesian",
"svg",
"symbols",
"errorBarsOK",
"showLegend",
"scatter-like",
"zoomScale"
],
"animatable": true,
"type": "scatter",
"attributes": {
"type": "scatter",
"visible": {
"valType": "enumerated",
"values": [
true,
false,
"legendonly"
],
"role": "info",
"dflt": true,
"editType": "calc",
"description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)."
},
"showlegend": {
"valType": "boolean",
"role": "info",
"dflt": true,
"editType": "style",
"description": "Determines whether or not an item corresponding to this trace is shown in the legend."
},
"legendgroup": {
"valType": "string",
"role": "info",
"dflt": "",
"editType": "style",
"description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items."
},
"opacity": {
"valType": "number",
"role": "style",
"min": 0,
"max": 1,
"dflt": 1,
"editType": "style",
"description": "Sets the opacity of the trace."
},
"name": {
"valType": "string",
"role": "info",
"editType": "style",
"description": "Sets the trace name. The trace name appear as the legend item and on hover."
},
"uid": {
"valType": "string",
"role": "info",
"editType": "plot",
"anim": true,
"description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions."
},
"ids": {
"valType": "data_array",
"editType": "calc",
"anim": true,
"description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.",
"role": "data"
},
"customdata": {
"valType": "data_array",
"editType": "calc",
"description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements",
"role": "data"
},
"meta": {
"valType": "any",
"arrayOk": true,
"role": "info",
"editType": "plot",
"description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index."
},
"selectedpoints": {
"valType": "any",
"role": "info",
"editType": "calc",
"description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect."
},
"hoverinfo": {
"valType": "flaglist",
"role": "info",
"flags": [
"x",
"y",
"z",
"text",
"name"
],
"extras": [
"all",
"none",
"skip"
],
"arrayOk": true,
"dflt": "all",
"editType": "none",
"description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired."
},
"hoverlabel": {
"bgcolor": {
"valType": "color",
"role": "style",
"editType": "none",
"description": "Sets the background color of the hover labels for this trace",
"arrayOk": true
},
"bordercolor": {
"valType": "color",
"role": "style",
"editType": "none",
"description": "Sets the border color of the hover labels for this trace.",
"arrayOk": true
},
"font": {
"family": {
"valType": "string",
"role": "style",
"noBlank": true,
"strict": true,
"editType": "none",
"description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.",
"arrayOk": true
},
"size": {
"valType": "number",
"role": "style",
"min": 1,
"editType": "none",
"arrayOk": true
},
"color": {
"valType": "color",
"role": "style",
"editType": "none",
"arrayOk": true
},
"editType": "none",
"description": "Sets the font used in hover labels.",
"role": "object",
"familysrc": {
"valType": "string",
"role": "info",
"description": "Sets the source reference on Chart Studio Cloud for family .",
"editType": "none"
},
"sizesrc": {
"valType": "string",
"role": "info",
"description": "Sets the source reference on Chart Studio Cloud for size .",
"editType": "none"
},
"colorsrc": {
"valType": "string",
"role": "info",
"description": "Sets the source reference on Chart Studio Cloud for color .",
"editType": "none"
}
},
"align": {
"valType": "enumerated",
"values": [
"left",
"right",
"auto"
],
"dflt": "auto",
"role": "style",
"editType": "none",
"description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines",
"arrayOk": true
},
"namelength": {
"valType": "integer",
"min": -1,
"dflt": 15,
"role": "style",
"editType": "none",
"description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.",
"arrayOk": true
},
"editType": "none",
"role": "object",
"bgcolorsrc": {
"valType": "string",
"role": "info",
"description": "Sets the source reference on Chart Studio Cloud for bgcolor .",
"editType": "none"
},
"bordercolorsrc": {
"valType": "string",
"role": "info",
"description": "Sets the source reference on Chart Studio Cloud for bordercolor .",
"editType": "none"
},
"alignsrc": {
"valType": "string",
"role": "info",
"description": "Sets the source reference on Chart Studio Cloud for align .",
"editType": "none"
},
"namelengthsrc": {
"valType": "string",
"role": "info",
"description": "Sets the source reference on Chart Studio Cloud for namelength .",
"editType": "none"
}
},
"stream": {
"token": {
"valType": "string",
"noBlank": true,
"strict": true,
"role": "info",
"editType": "calc",
"description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details."
},
"maxpoints": {
"valType": "number",
"min": 0,
"max": 10000,
"dflt": 500,
"role": "info",
"editType": "calc",
"description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot."
},
"editType": "calc",
"role": "object"
},
"transforms": {
"items": {
"transform": {
"editType": "calc",
"description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.",
"role": "object"
}
},
"role": "object"
},
"uirevision": {
"valType": "any",
"role": "info",
"editType": "none",
"description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves."
},
"x": {
"valType": "data_array",
"editType": "calc+clearAxisTypes",
"anim": true,
"description": "Sets the x coordinates.",
"role": "data"
},
"x0": {
"valType": "any",
"dflt": 0,
"role": "info",
"editType": "calc+clearAxisTypes",
"anim": true,
"description": "Alternate to `x`. Builds a linear space of x coordinates. Use with `dx` where `x0` is the starting coordinate and `dx` the step."
},
"dx": {
"valType": "number",
"dflt": 1,
"role": "info",
"editType": "calc",
"anim": true,
"description": "Sets the x coordinate step. See `x0` for more info."
},
"y": {
"valType": "data_array",
"editType": "calc+clearAxisTypes",
"anim": true,
"description": "Sets the y coordinates.",
"role": "data"
},
"y0": {
"valType": "any",
"dflt": 0,
"role": "info",
"editType": "calc+clearAxisTypes",
"anim": true,
"description": "Alternate to `y`. Builds a linear space of y coordinates. Use with `dy` where `y0` is the starting coordinate and `dy` the step."
},
"dy": {
"valType": "number",
"dflt": 1,
"role": "info",
"editType": "calc",
"anim": true,
"description": "Sets the y coordinate step. See `y0` for more info."
},
"xperiod": {
"valType": "any",
"dflt": 0,
"role": "info",
"editType": "calc",
"description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M<n>* on the x axis. Special values in the form of *M<n>* could be used to declare the number of months. In this case `n` must be a positive integer."
},
"yperiod": {
"valType": "any",
"dflt": 0,
"role": "info",
"editType": "calc",
"description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M<n>* on the y axis. Special values in the form of *M<n>* could be used to declare the number of months. In this case `n` must be a positive integer."
},
"xperiod0": {
"valType": "any",
"role": "info",
"editType": "calc",
"description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the x0 axis. When `x0period` is round number of weeks, the `x0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01."
},
"yperiod0": {
"valType": "any",
"role": "info",
"editType": "calc",
"description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the y0 axis. When `y0period` is round number of weeks, the `y0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01."
},
"xperiodalignment": {
"valType": "enumerated",
"values": [
"start",
"middle",
"end"
],
"dflt": "middle",
"role": "style",
"editType": "calc",
"description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the x axis."
},
"yperiodalignment": {
"valType": "enumerated",
"values": [
"start",
"middle",
"end"
],
"dflt": "middle",
"role": "style",
"editType": "calc",
"description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the y axis."
},
"stackgroup": {
"valType": "string",
"role": "info",
"dflt": "",
"editType": "calc",
"description": "Set several scatter traces (on the same subplot) to the same stackgroup in order to add their y values (or their x values if `orientation` is *h*). If blank or omitted this trace will not be stacked. Stacking also turns `fill` on by default, using *tonexty* (*tonextx*) if `orientation` is *h* (*v*) and sets the default `mode` to *lines* irrespective of point count. You can only stack on a numeric (linear or log) axis. Traces in a `stackgroup` will only fill to (or be filled to) other traces in the same group. With multiple `stackgroup`s or some traces stacked and some not, if fill-linked traces are not already consecutive, the later ones will be pushed down in the drawing order."
},
"orientation": {
"valType": "enumerated",
"role": "info",
"values": [
"v",
"h"
],
"editType": "calc",
"description": "Only relevant when `stackgroup` is used, and only the first `orientation` found in the `stackgroup` will be used - including if `visible` is *legendonly* but not if it is `false`. Sets the stacking direction. With *v* (*h*), the y (x) values of subsequent traces are added. Also affects the default value of `fill`."
},
"groupnorm": {
"valType": "enumerated",
"values": [
"",
"fraction",
"percent"
],
"dflt": "",
"role": "info",
"editType": "calc",
"description": "Only relevant when `stackgroup` is used, and only the first `groupnorm` found in the `stackgroup` will be used - including if `visible` is *legendonly* but not if it is `false`. Sets the normalization for the sum of this `stackgroup`. With *fraction*, the value of each trace at each location is divided by the sum of all trace values at that location. *percent* is the same but multiplied by 100 to show percentages. If there are multiple subplots, or multiple `stackgroup`s on one subplot, each will be normalized within its own set."
},
"stackgaps": {
"valType": "enumerated",
"values": [
"infer zero",
"interpolate"
],
"dflt": "infer zero",
"role": "info",
"editType": "calc",
"description": "Only relevant when `stackgroup` is used, and only the first `stackgaps` found in the `stackgroup` will be used - including if `visible` is *legendonly* but not if it is `false`. Determines how we handle locations at which other traces in this group have data but this one does not. With *infer zero* we insert a zero at these locations. With *interpolate* we linearly interpolate between existing values, and extrapolate a constant beyond the existing values."
},
"text": {
"valType": "string",
"role": "info",
"dflt": "",
"arrayOk": true,
"editType": "calc",
"description": "Sets text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels."
},
"texttemplate": {
"valType": "string",
"role": "info",
"dflt": "",
"editType": "calc",
"description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. ",
"arrayOk": true
},
"hovertext": {
"valType": "string",
"role": "info",
"dflt": "",
"arrayOk": true,
"editType": "style",
"description": "Sets hover text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag."
},
"mode": {
"valType": "flaglist",
"flags": [
"lines",
"markers",
"text"
],
"extras": [
"none"
],
"role": "info",
"editType": "calc",
"description": "Determines the drawing mode for this scatter trace. If the provided `mode` includes *text* then the `text` elements appear at the coordinates. Otherwise, the `text` elements appear on hover. If there are less than 20 points and the trace is not stacked then the default is *lines+markers*. Otherwise, *lines*."
},
"hoveron": {
"valType": "flaglist",
"flags": [
"points",
"fills"
],
"role": "info",
"editType": "style",
"description": "Do the hover effects highlight individual points (markers or line points) or do they highlight filled regions? If the fill is *toself* or *tonext* and there are no markers or text, then the default is *fills*, otherwise it is *points*."
},
"hovertemplate": {
"valType": "string",
"role": "info",
"dflt": "",
"editType": "none",
"description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `<extra>` is displayed in the secondary box, for example \"<extra>{fullData.name}</extra>\". To hide the secondary box completely, use an empty tag `<extra></extra>`.",
"arrayOk": true
},
"line": {
"color": {
"valType": "color",
"role": "style",
"editType": "style",
"anim": true,
"description": "Sets the line color."
},
"width": {
"valType": "number",
"min": 0,
"dflt": 2,
"role": "style",
"editType": "style",
"anim": true,
"description": "Sets the line width (in px)."
},
"shape": {
"valType": "enumerated",
"values": [
"linear",
"spline",
"hv",
"vh",
"hvh",
"vhv"
],
"dflt": "linear",
"role": "style",
"editType": "plot",
"description": "Determines the line shape. With *spline* the lines are drawn using spline interpolation. The other available values correspond to step-wise line shapes."
},
"smoothing": {
"valType": "number",
"min": 0,
"max": 1.3,
"dflt": 1,
"role": "style",
"editType": "plot",
"description": "Has an effect only if `shape` is set to *spline* Sets the amount of smoothing. *0* corresponds to no smoothing (equivalent to a *linear* shape)."
},
"dash": {
"valType": "string",
"values": [
"solid",
"dot",
"dash",
"longdash",
"dashdot",
"longdashdot"
],
"dflt": "solid",
"role": "style",
"editType": "style",
"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*)."
},
"simplify": {
"valType": "boolean",
"dflt": true,
"role": "info",
"editType": "plot",
"description": "Simplifies lines by removing nearly-collinear points. When transitioning lines, it may be desirable to disable this so that the number of points along the resulting SVG path is unaffected."
},
"editType": "plot",
"role": "object"
},
"connectgaps": {
"valType": "boolean",
"dflt": false,
"role": "info",
"editType": "calc",
"description": "Determines whether or not gaps (i.e. {nan} or missing values) in the provided data arrays are connected."
},
"cliponaxis": {
"valType": "boolean",
"dflt": true,
"role": "info",
"editType": "plot",
"description": "Determines whether or not markers and text nodes are clipped about the subplot axes. To show markers and text nodes above axis lines and tick labels, make sure to set `xaxis.layer` and `yaxis.layer` to *below traces*."
},
"fill": {
"valType": "enumerated",
"values": [
"none",
"tozeroy",
"tozerox",
"tonexty",
"tonextx",
"toself",
"tonext"
],
"role": "style",
"editType": "calc",
"description": "Sets the area to fill with a solid color. Defaults to *none* unless this trace is stacked, then it gets *tonexty* (*tonextx*) if `orientation` is *v* (*h*) Use with `fillcolor` if not *none*. *tozerox* and *tozeroy* fill to x=0 and y=0 respectively. *tonextx* and *tonexty* fill between the endpoints of this trace and the endpoints of the trace before it, connecting those endpoints with straight lines (to make a stacked area graph); if there is no trace before it, they behave like *tozerox* and *tozeroy*. *toself* connects the endpoints of the trace (or each segment of the trace if it has gaps) into a closed shape. *tonext* fills the space between two traces if one completely encloses the other (eg consecutive contour lines), and behaves like *toself* if there is no trace before it. *tonext* should not be used if one trace does not enclose the other. Traces in a `stackgroup` will only fill to (or be filled to) other traces in the same group. With multiple `stackgroup`s or some traces stacked and some not, if fill-linked traces are not already consecutive, the later ones will be pushed down in the drawing order."
},
"fillcolor": {
"valType": "color",
"role": "style",
"editType": "style",
"anim": true,
"description": "Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available."
},
"marker": {
"symbol": {
"valType": "enumerated",
"values": [
0,
"0",
"circle",
100,
"100",
"circle-open",
200,
"200",
"circle-dot",
300,
"300",
"circle-open-dot",
1,
"1",
"square",
101,
"101",
"square-open",
201,
"201",
"square-dot",
301,
"301",
"square-open-dot",
2,
"2",
"diamond",
102,
"102",
"diamond-open",
202,
"202",
"diamond-dot",
302,
"302",
"diamond-open-dot",
3,
"3",
"cross",
103,
"103",
"cross-open",
203,
"203",
"cross-dot",
303,
"303",
"cross-open-dot",
4,
"4",
"x",
104,
"104",
"x-open",
204,
"204",
"x-dot",
304,
"304",
"x-open-dot",
5,
"5",
"triangle-up",
105,
"105",
"triangle-up-open",
205,
"205",
"triangle-up-dot",
305,
"305",
"triangle-up-open-dot",
6,
"6",
"triangle-down",
106,
"106",
"triangle-down-open",
206,
"206",
"triangle-down-dot",
306,
"306",
"triangle-down-open-dot",
7,
"7",
"triangle-left",
107,
"107",
"triangle-left-open",
207,
"207",
"triangle-left-dot",
307,
"307",
"triangle-left-open-dot",
8,
"8",
"triangle-right",
108,
"108",
"triangle-right-open",
208,
"208",
"triangle-right-dot",
308,
"308",
"triangle-right-open-dot",
9,
"9",
"triangle-ne",
109,
"109",
"triangle-ne-open",
209,
"209",
"triangle-ne-dot",
309,
"309",
"triangle-ne-open-dot",
10,
"10",
"triangle-se",
110,
"110",
"triangle-se-open",
210,
"210",
"triangle-se-dot",
310,
"310",
"triangle-se-open-dot",
11,
"11",
"triangle-sw",
111,
"111",
"triangle-sw-open",
211,
"211",
"triangle-sw-dot",
311,
"311",
"triangle-sw-open-dot",
12,
"12",
"triangle-nw",
112,
"112",
"triangle-nw-open",
212,
"212",
"triangle-nw-dot",
312,
"312",
"triangle-nw-open-dot",
13,
"13",
"pentagon",
113,
"113",
"pentagon-open",
213,
"213",
"pentagon-dot",
313,
"313",
"pentagon-open-dot",
14,
"14",
"hexagon",
114,
"114",
"hexagon-open",
214,
"214",
"hexagon-dot",
314,
"314",
"hexagon-open-dot",
15,
"15",
"hexagon2",
115,
"115",
"hexagon2-open",
215,
"215",
"hexagon2-dot",
315,
"315",
"hexagon2-open-dot",
16,
"16",
"octagon",
116,
"116",
"octagon-open",
216,
"216",
"octagon-dot",