plotly.js
Version:
The open source javascript graphing library that powers plotly
1,120 lines • 3.82 MB
JSON
{
"animation": {
"direction": {
"description": "The direction in which to play the frames triggered by the animation call",
"dflt": "forward",
"valType": "enumerated",
"values": [
"forward",
"reverse"
]
},
"frame": {
"duration": {
"description": "The duration in milliseconds of each frame. If greater than the frame duration, it will be limited to the frame duration.",
"dflt": 500,
"min": 0,
"valType": "number"
},
"redraw": {
"description": "Redraw the plot at completion of the transition. This is desirable for transitions that include properties that cannot be transitioned, but may significantly slow down updates that do not require a full redraw of the plot",
"dflt": true,
"valType": "boolean"
},
"role": "object"
},
"fromcurrent": {
"description": "Play frames starting at the current frame instead of the beginning.",
"dflt": false,
"valType": "boolean"
},
"mode": {
"description": "Describes how a new animate call interacts with currently-running animations. If `immediate`, current animations are interrupted and the new animation is started. If `next`, the current frame is allowed to complete, after which the new animation is started. If `afterall` all existing frames are animated to completion before the new animation is started.",
"dflt": "afterall",
"valType": "enumerated",
"values": [
"immediate",
"next",
"afterall"
]
},
"transition": {
"duration": {
"description": "The duration of the transition, in milliseconds. If equal to zero, updates are synchronous.",
"dflt": 500,
"editType": "none",
"min": 0,
"valType": "number"
},
"easing": {
"description": "The easing function used for the transition",
"dflt": "cubic-in-out",
"editType": "none",
"valType": "enumerated",
"values": [
"linear",
"quad",
"cubic",
"sin",
"exp",
"circle",
"elastic",
"back",
"bounce",
"linear-in",
"quad-in",
"cubic-in",
"sin-in",
"exp-in",
"circle-in",
"elastic-in",
"back-in",
"bounce-in",
"linear-out",
"quad-out",
"cubic-out",
"sin-out",
"exp-out",
"circle-out",
"elastic-out",
"back-out",
"bounce-out",
"linear-in-out",
"quad-in-out",
"cubic-in-out",
"sin-in-out",
"exp-in-out",
"circle-in-out",
"elastic-in-out",
"back-in-out",
"bounce-in-out"
]
},
"ordering": {
"description": "Determines whether the figure's layout or traces smoothly transitions during updates that make both traces and layout change.",
"dflt": "layout first",
"editType": "none",
"valType": "enumerated",
"values": [
"layout first",
"traces first"
]
},
"role": "object"
}
},
"config": {
"autosizable": {
"description": "Determines whether the graphs are plotted with respect to layout.autosize:true and infer its container size.",
"dflt": false,
"valType": "boolean"
},
"displaylogo": {
"description": "Determines whether or not the plotly logo is displayed on the end of the mode bar.",
"dflt": true,
"valType": "boolean"
},
"displayModeBar": {
"description": "Determines the mode bar display mode. If *true*, the mode bar is always visible. If *false*, the mode bar is always hidden. If *hover*, the mode bar is visible while the mouse cursor is on the graph container.",
"dflt": "hover",
"valType": "enumerated",
"values": [
"hover",
true,
false
]
},
"doubleClick": {
"description": "Sets the double click interaction mode. Has an effect only in cartesian plots. If *false*, double click is disable. If *reset*, double click resets the axis ranges to their initial values. If *autosize*, double click set the axis ranges to their autorange values. If *reset+autosize*, the odd double clicks resets the axis ranges to their initial values and even double clicks set the axis ranges to their autorange values.",
"dflt": "reset+autosize",
"valType": "enumerated",
"values": [
false,
"reset",
"autosize",
"reset+autosize"
]
},
"doubleClickDelay": {
"description": "Sets the delay for registering a double-click in ms. This is the time interval (in ms) between first mousedown and 2nd mouseup to constitute a double-click. This setting propagates to all on-subplot double clicks (except for geo, mapbox and map) and on-legend double clicks.",
"dflt": 300,
"min": 0,
"valType": "number"
},
"editable": {
"description": "Determines whether the graph is editable or not. Sets all pieces of `edits` unless a separate `edits` config item overrides individual parts.",
"dflt": false,
"valType": "boolean"
},
"edits": {
"annotationPosition": {
"description": "Determines if the main anchor of the annotation is editable. The main anchor corresponds to the text (if no arrow) or the arrow (which drags the whole thing leaving the arrow length & direction unchanged).",
"dflt": false,
"valType": "boolean"
},
"annotationTail": {
"description": "Has only an effect for annotations with arrows. Enables changing the length and direction of the arrow.",
"dflt": false,
"valType": "boolean"
},
"annotationText": {
"description": "Enables editing annotation text.",
"dflt": false,
"valType": "boolean"
},
"axisTitleText": {
"description": "Enables editing axis title text.",
"dflt": false,
"valType": "boolean"
},
"colorbarPosition": {
"description": "Enables moving colorbars.",
"dflt": false,
"valType": "boolean"
},
"colorbarTitleText": {
"description": "Enables editing colorbar title text.",
"dflt": false,
"valType": "boolean"
},
"legendPosition": {
"description": "Enables moving the legend.",
"dflt": false,
"valType": "boolean"
},
"legendText": {
"description": "Enables editing the trace name fields from the legend",
"dflt": false,
"valType": "boolean"
},
"role": "object",
"shapePosition": {
"description": "Enables moving shapes.",
"dflt": false,
"valType": "boolean"
},
"titleText": {
"description": "Enables editing the global layout title.",
"dflt": false,
"valType": "boolean"
}
},
"editSelection": {
"description": "Enables moving selections.",
"dflt": true,
"valType": "boolean"
},
"fillFrame": {
"description": "When `layout.autosize` is turned on, determines whether the graph fills the container (the default) or the screen (if set to *true*).",
"dflt": false,
"valType": "boolean"
},
"frameMargins": {
"description": "When `layout.autosize` is turned on, set the frame margins in fraction of the graph size.",
"dflt": 0,
"max": 0.5,
"min": 0,
"valType": "number"
},
"linkText": {
"description": "Sets the text appearing in the `showLink` link.",
"dflt": "Edit chart",
"noBlank": true,
"valType": "string"
},
"locale": {
"description": "Which localization should we use? Should be a string like 'en' or 'en-US'.",
"dflt": "en-US",
"valType": "string"
},
"locales": {
"description": "Localization definitions Locales can be provided either here (specific to one chart) or globally by registering them as modules. Should be an object of objects {locale: {dictionary: {...}, format: {...}}} { da: { dictionary: {'Reset axes': 'Nulstil aksler', ...}, format: {months: [...], shortMonths: [...]} }, ... } All parts are optional. When looking for translation or format fields, we look first for an exact match in a config locale, then in a registered module. If those fail, we strip off any regionalization ('en-US' -> 'en') and try each (config, registry) again. The final fallback for translation is untranslated (which is US English) and for formats is the base English (the only consequence being the last fallback date format %x is DD/MM/YYYY instead of MM/DD/YYYY). Currently `grouping` and `currency` are ignored for our automatic number formatting, but can be used in custom formats.",
"dflt": {},
"valType": "any"
},
"logging": {
"description": "Turn all console logging on or off (errors will be thrown) This should ONLY be set via Plotly.setPlotConfig Available levels: 0: no logs 1: warnings and errors, but not informational messages 2: verbose logs",
"dflt": 1,
"max": 2,
"min": 0,
"valType": "integer"
},
"mapboxAccessToken": {
"description": "Mapbox access token (required to plot mapbox trace types) If using an Mapbox Atlas server, set this option to '' so that plotly.js won't attempt to authenticate to the public Mapbox server.",
"dflt": null,
"valType": "string"
},
"modeBarButtons": {
"description": "Define fully custom mode bar buttons as nested array, where the outer arrays represents button groups, and the inner arrays have buttons config objects or names of default buttons See ./components/modebar/buttons.js for more info.",
"dflt": false,
"valType": "any"
},
"modeBarButtonsToAdd": {
"description": "Add mode bar button using config objects See ./components/modebar/buttons.js for list of arguments. To enable predefined modebar buttons e.g. shape drawing, hover and spikelines, simply provide their string name(s). This could include: *v1hovermode*, *hoverclosest*, *hovercompare*, *togglehover*, *togglespikelines*, *drawline*, *drawopenpath*, *drawclosedpath*, *drawcircle*, *drawrect* and *eraseshape*. Please note that these predefined buttons will only be shown if they are compatible with all trace types used in a graph.",
"dflt": [],
"valType": "any"
},
"modeBarButtonsToRemove": {
"description": "Remove mode bar buttons by name. See ./components/modebar/buttons.js for the list of names.",
"dflt": [],
"valType": "any"
},
"notifyOnLogging": {
"description": "Set on-graph logging (notifier) level This should ONLY be set via Plotly.setPlotConfig Available levels: 0: no on-graph logs 1: warnings and errors, but not informational messages 2: verbose logs",
"dflt": 0,
"max": 2,
"min": 0,
"valType": "integer"
},
"plotGlPixelRatio": {
"description": "Set the pixel ratio during WebGL image export.",
"dflt": 2,
"max": 4,
"min": 1,
"valType": "number"
},
"plotlyServerURL": {
"description": "When set it determines base URL for the 'Edit in Chart Studio' `showEditInChartStudio`/`showSendToCloud` mode bar button and the showLink/sendData on-graph link. To enable sending your data to Chart Studio Cloud, you need to set both `plotlyServerURL` to 'https://chart-studio.plotly.com' and also set `showSendToCloud` to true.",
"dflt": "",
"valType": "string"
},
"queueLength": {
"description": "Sets the length of the undo/redo queue.",
"dflt": 0,
"min": 0,
"valType": "integer"
},
"responsive": {
"description": "Determines whether to change the layout size when window is resized. In v3, this option will be removed and will always be true.",
"dflt": false,
"valType": "boolean"
},
"scrollZoom": {
"description": "Determines whether mouse wheel or two-finger scroll zooms is enable. Turned on by default for gl3d, geo, mapbox and map subplots (as these subplot types do not have zoombox via pan), but turned off by default for cartesian subplots. Set `scrollZoom` to *false* to disable scrolling for all subplots.",
"dflt": "gl3d+geo+map",
"extras": [
true,
false
],
"flags": [
"cartesian",
"gl3d",
"geo",
"mapbox",
"map"
],
"valType": "flaglist"
},
"sendData": {
"description": "If *showLink* is true, does it contain data just link to a Chart Studio Cloud file?",
"dflt": true,
"valType": "boolean"
},
"setBackground": {
"description": "Set function to add the background color (i.e. `layout.paper_color`) to a different container. This function take the graph div as first argument and the current background color as second argument. Alternatively, set to string *opaque* to ensure there is white behind it.",
"dflt": "transparent",
"valType": "any"
},
"showAxisDragHandles": {
"description": "Set to *false* to omit cartesian axis pan/zoom drag handles.",
"dflt": true,
"valType": "boolean"
},
"showAxisRangeEntryBoxes": {
"description": "Set to *false* to omit direct range entry at the pan/zoom drag points, note that `showAxisDragHandles` must be enabled to have an effect.",
"dflt": true,
"valType": "boolean"
},
"showEditInChartStudio": {
"description": "Same as `showSendToCloud`, but use a pencil icon instead of a floppy-disk. Note that if both `showSendToCloud` and `showEditInChartStudio` are turned, only `showEditInChartStudio` will be honored.",
"dflt": false,
"valType": "boolean"
},
"showLink": {
"description": "Determines whether a link to Chart Studio Cloud is displayed at the bottom right corner of resulting graphs. Use with `sendData` and `linkText`.",
"dflt": false,
"valType": "boolean"
},
"showSendToCloud": {
"description": "Should we include a ModeBar button, labeled \"Edit in Chart Studio\", that sends this chart to chart-studio.plotly.com (formerly plot.ly) or another plotly server as specified by `plotlyServerURL` for editing, export, etc? Prior to version 1.43.0 this button was included by default, now it is opt-in using this flag. Note that this button can (depending on `plotlyServerURL` being set) send your data to an external server. However that server does not persist your data until you arrive at the Chart Studio and explicitly click \"Save\".",
"dflt": false,
"valType": "boolean"
},
"showSources": {
"description": "Adds a source-displaying function to show sources on the resulting graphs.",
"dflt": false,
"valType": "any"
},
"showTips": {
"description": "Determines whether or not tips are shown while interacting with the resulting graphs.",
"dflt": true,
"valType": "boolean"
},
"staticPlot": {
"description": "Determines whether the graphs are interactive or not. If *false*, no interactivity, for export or image generation.",
"dflt": false,
"valType": "boolean"
},
"toImageButtonOptions": {
"description": "Statically override options for toImage modebar button allowed keys are format, filename, width, height, scale see ../components/modebar/buttons.js",
"dflt": {},
"valType": "any"
},
"topojsonURL": {
"description": "Set the URL to topojson used in geo charts. By default, the topojson files are fetched from cdn.plot.ly. For example, set this option to: <path-to-plotly.js>/dist/topojson/ to render geographical feature using the topojson files that ship with the plotly.js module.",
"dflt": "https://cdn.plot.ly/",
"noBlank": true,
"valType": "string"
},
"typesetMath": {
"description": "Determines whether math should be typeset or not, when MathJax (either v2 or v3) is present on the page.",
"dflt": true,
"valType": "boolean"
},
"watermark": {
"description": "watermark the images with the company's logo",
"dflt": false,
"valType": "boolean"
}
},
"defs": {
"editType": {
"layout": {
"description": "layout attributes should include an `editType` string matching this flaglist. *calc* is the most extensive: a full (re)plot starting by clearing `gd.calcdata` to force it to be regenerated *plot* (re)plots 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.",
"extras": [
"none"
],
"flags": [
"calc",
"plot",
"legend",
"ticks",
"axrange",
"layoutstyle",
"modebar",
"camera",
"arraydraw",
"colorbars"
],
"valType": "flaglist"
},
"traces": {
"description": "trace attributes should include an `editType` string matching this flaglist. *calc* is the most extensive: a full (re)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* (re)plots 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.",
"extras": [
"none"
],
"flags": [
"calc",
"clearAxisTypes",
"plot",
"style",
"markerSize",
"colorbars"
],
"valType": "flaglist"
}
},
"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."
},
"metaKeys": [
"_isSubplotObj",
"_isLinkedToArray",
"_arrayAttrRegexps",
"_deprecated",
"description",
"role",
"editType",
"impliedEdits"
],
"valObjects": {
"angle": {
"description": "A number (in degree) between -180 and 180.",
"otherOpts": [
"dflt",
"arrayOk"
],
"requiredOpts": []
},
"any": {
"description": "Any type.",
"otherOpts": [
"dflt",
"values",
"arrayOk"
],
"requiredOpts": []
},
"boolean": {
"description": "A boolean (true/false) value.",
"otherOpts": [
"dflt"
],
"requiredOpts": []
},
"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)",
"otherOpts": [
"dflt",
"arrayOk"
],
"requiredOpts": []
},
"colorlist": {
"description": "A list of colors. Must be an {array} containing valid colors.",
"otherOpts": [
"dflt"
],
"requiredOpts": []
},
"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.",
"otherOpts": [
"dflt"
],
"requiredOpts": []
},
"data_array": {
"description": "An {array} of data. The value must represent an {array} or it will be ignored, but this array can be provided in several forms: (1) a regular {array} object (2) a typed array (e.g. Float32Array) (3) an object with keys dtype, bdata, and optionally shape. In this 3rd form, dtype is one of *f8*, *f4*. *i4*, *u4*, *i2*, *u2*, *i1*, *u1* or *u1c* for Uint8ClampedArray. In addition to shorthand `dtype` above one could also use the following forms: *float64*, *float32*, *int32*, *uint32*, *int16*, *uint16*, *int8*, *uint8* or *uint8c* for Uint8ClampedArray. `bdata` is either a base64-encoded string or the ArrayBuffer of an integer or float typed array. For either multi-dimensional arrays you must also provide its dimensions separated by comma via `shape`. For example using `dtype`: *f4* and `shape`: *5,100* you can declare a 2-D array that has 5 rows and 100 columns containing float32 values i.e. 4 bits per value. `shape` is optional for one dimensional arrays.",
"otherOpts": [
"dflt"
],
"requiredOpts": []
},
"enumerated": {
"description": "Enumerated value type. The available values are listed in `values`.",
"otherOpts": [
"dflt",
"coerceNumber",
"arrayOk"
],
"requiredOpts": [
"values"
]
},
"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.",
"otherOpts": [
"dflt",
"extras",
"arrayOk"
],
"requiredOpts": [
"flags"
]
},
"info_array": {
"description": "An {array} of plot information.",
"otherOpts": [
"dflt",
"freeLength",
"dimensions"
],
"requiredOpts": [
"items"
]
},
"integer": {
"description": "An integer or an integer inside a string. When applicable, values greater (less) than `max` (`min`) are coerced to the `dflt`.",
"otherOpts": [
"dflt",
"min",
"max",
"arrayOk",
"extras"
],
"requiredOpts": []
},
"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`.",
"otherOpts": [
"dflt",
"min",
"max",
"arrayOk"
],
"requiredOpts": []
},
"string": {
"description": "A string value. Numbers are converted to strings except for attributes with `strict` set to true.",
"otherOpts": [
"dflt",
"noBlank",
"strict",
"arrayOk",
"values"
],
"requiredOpts": []
},
"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', ...",
"otherOpts": [
"regex"
],
"requiredOpts": [
"dflt"
]
}
}
},
"frames": {
"items": {
"frames_entry": {
"baseframe": {
"description": "The name of the frame into which this frame's properties are merged before applying. This is used to unify properties and avoid needing to specify the same values for the same properties in multiple frames.",
"valType": "string"
},
"data": {
"description": "A list of traces this frame modifies. The format is identical to the normal trace definition.",
"valType": "any"
},
"group": {
"description": "An identifier that specifies the group to which the frame belongs, used by animate to select a subset of frames.",
"valType": "string"
},
"layout": {
"description": "Layout properties which this frame modifies. The format is identical to the normal layout definition.",
"valType": "any"
},
"name": {
"description": "A label by which to identify the frame",
"valType": "string"
},
"role": "object",
"traces": {
"description": "A list of trace indices that identify the respective traces in the data attribute",
"valType": "any"
}
}
},
"role": "object"
},
"layout": {
"layoutAttributes": {
"activeselection": {
"editType": "none",
"fillcolor": {
"description": "Sets the color filling the active selection' interior.",
"dflt": "rgba(0,0,0,0)",
"editType": "none",
"valType": "color"
},
"opacity": {
"description": "Sets the opacity of the active selection.",
"dflt": 0.5,
"editType": "none",
"max": 1,
"min": 0,
"valType": "number"
},
"role": "object"
},
"activeshape": {
"editType": "none",
"fillcolor": {
"description": "Sets the color filling the active shape' interior.",
"dflt": "rgb(255,0,255)",
"editType": "none",
"valType": "color"
},
"opacity": {
"description": "Sets the opacity of the active shape.",
"dflt": 0.5,
"editType": "none",
"max": 1,
"min": 0,
"valType": "number"
},
"role": "object"
},
"annotations": {
"items": {
"annotation": {
"align": {
"description": "Sets the horizontal alignment of the `text` within the box. Has an effect only if `text` spans two or more lines (i.e. `text` contains one or more <br> HTML tags) or if an explicit width is set to override the text width.",
"dflt": "center",
"editType": "arraydraw",
"valType": "enumerated",
"values": [
"left",
"center",
"right"
]
},
"arrowcolor": {
"description": "Sets the color of the annotation arrow.",
"editType": "arraydraw",
"valType": "color"
},
"arrowhead": {
"description": "Sets the end annotation arrow head style.",
"dflt": 1,
"editType": "arraydraw",
"max": 8,
"min": 0,
"valType": "integer"
},
"arrowside": {
"description": "Sets the annotation arrow head position.",
"dflt": "end",
"editType": "arraydraw",
"extras": [
"none"
],
"flags": [
"end",
"start"
],
"valType": "flaglist"
},
"arrowsize": {
"description": "Sets the size of the end annotation arrow head, relative to `arrowwidth`. A value of 1 (default) gives a head about 3x as wide as the line.",
"dflt": 1,
"editType": "calc+arraydraw",
"min": 0.3,
"valType": "number"
},
"arrowwidth": {
"description": "Sets the width (in px) of annotation arrow line.",
"editType": "calc+arraydraw",
"min": 0.1,
"valType": "number"
},
"ax": {
"description": "Sets the x component of the arrow tail about the arrow head. If `axref` is `pixel`, a positive (negative) component corresponds to an arrow pointing from right to left (left to right). If `axref` is not `pixel` and is exactly the same as `xref`, this is an absolute value on that axis, like `x`, specified in the same coordinates as `xref`.",
"editType": "calc+arraydraw",
"valType": "any"
},
"axref": {
"description": "Indicates in what coordinates the tail of the annotation (ax,ay) is specified. If set to a x axis id (e.g. *x* or *x2*), the `x` position refers to a x coordinate. If set to *paper*, the `x` position refers to the distance from the left of the plotting area in normalized coordinates where *0* (*1*) corresponds to the left (right). If set to a x axis ID followed by *domain* (separated by a space), the position behaves like for *paper*, but refers to the distance in fractions of the domain length from the left of the domain of that axis: e.g., *x2 domain* refers to the domain of the second x axis and a x position of 0.5 refers to the point between the left and the right of the domain of the second x axis. In order for absolute positioning of the arrow to work, *axref* must be exactly the same as *xref*, otherwise *axref* will revert to *pixel* (explained next). For relative positioning, *axref* can be set to *pixel*, in which case the *ax* value is specified in pixels relative to *x*. Absolute positioning is useful for trendline annotations which should continue to indicate the correct trend when zoomed. Relative positioning is useful for specifying the text offset for an annotated point.",
"dflt": "pixel",
"editType": "calc",
"valType": "enumerated",
"values": [
"pixel",
"/^x([2-9]|[1-9][0-9]+)?( domain)?$/"
]
},
"ay": {
"description": "Sets the y component of the arrow tail about the arrow head. If `ayref` is `pixel`, a positive (negative) component corresponds to an arrow pointing from bottom to top (top to bottom). If `ayref` is not `pixel` and is exactly the same as `yref`, this is an absolute value on that axis, like `y`, specified in the same coordinates as `yref`.",
"editType": "calc+arraydraw",
"valType": "any"
},
"ayref": {
"description": "Indicates in what coordinates the tail of the annotation (ax,ay) is specified. If set to a y axis id (e.g. *y* or *y2*), the `y` position refers to a y coordinate. If set to *paper*, the `y` position refers to the distance from the bottom of the plotting area in normalized coordinates where *0* (*1*) corresponds to the bottom (top). If set to a y axis ID followed by *domain* (separated by a space), the position behaves like for *paper*, but refers to the distance in fractions of the domain length from the bottom of the domain of that axis: e.g., *y2 domain* refers to the domain of the second y axis and a y position of 0.5 refers to the point between the bottom and the top of the domain of the second y axis. In order for absolute positioning of the arrow to work, *ayref* must be exactly the same as *yref*, otherwise *ayref* will revert to *pixel* (explained next). For relative positioning, *ayref* can be set to *pixel*, in which case the *ay* value is specified in pixels relative to *y*. Absolute positioning is useful for trendline annotations which should continue to indicate the correct trend when zoomed. Relative positioning is useful for specifying the text offset for an annotated point.",
"dflt": "pixel",
"editType": "calc",
"valType": "enumerated",
"values": [
"pixel",
"/^y([2-9]|[1-9][0-9]+)?( domain)?$/"
]
},
"bgcolor": {
"description": "Sets the background color of the annotation.",
"dflt": "rgba(0,0,0,0)",
"editType": "arraydraw",
"valType": "color"
},
"bordercolor": {
"description": "Sets the color of the border enclosing the annotation `text`.",
"dflt": "rgba(0,0,0,0)",
"editType": "arraydraw",
"valType": "color"
},
"borderpad": {
"description": "Sets the padding (in px) between the `text` and the enclosing border.",
"dflt": 1,
"editType": "calc+arraydraw",
"min": 0,
"valType": "number"
},
"borderwidth": {
"description": "Sets the width (in px) of the border enclosing the annotation `text`.",
"dflt": 1,
"editType": "calc+arraydraw",
"min": 0,
"valType": "number"
},
"captureevents": {
"description": "Determines whether the annotation text box captures mouse move and click events, or allows those events to pass through to data points in the plot that may be behind the annotation. By default `captureevents` is *false* unless `hovertext` is provided. If you use the event `plotly_clickannotation` without `hovertext` you must explicitly enable `captureevents`.",
"editType": "arraydraw",
"valType": "boolean"
},
"clicktoshow": {
"description": "Makes this annotation respond to clicks on the plot. If you click a data point that exactly matches the `x` and `y` values of this annotation, and it is hidden (visible: false), it will appear. In *onoff* mode, you must click the same point again to make it disappear, so if you click multiple points, you can show multiple annotations. In *onout* mode, a click anywhere else in the plot (on another data point or not) will hide this annotation. If you need to show/hide this annotation in response to different `x` or `y` values, you can set `xclick` and/or `yclick`. This is useful for example to label the side of a bar. To label markers though, `standoff` is preferred over `xclick` and `yclick`.",
"dflt": false,
"editType": "arraydraw",
"valType": "enumerated",
"values": [
false,
"onoff",
"onout"
]
},
"editType": "calc",
"font": {
"color": {
"editType": "arraydraw",
"valType": "color"
},
"description": "Sets the annotation text font.",
"editType": "calc+arraydraw",
"family": {
"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*.",
"editType": "calc+arraydraw",
"noBlank": true,
"strict": true,
"valType": "string"
},
"lineposition": {
"description": "Sets the kind of decoration line(s) with text, such as an *under*, *over* or *through* as well as combinations e.g. *under+over*, etc.",
"dflt": "none",
"editType": "calc+arraydraw",
"extras": [
"none"
],
"flags": [
"under",
"over",
"through"
],
"valType": "flaglist"
},
"role": "object",
"shadow": {
"description": "Sets the shape and color of the shadow behind text. *auto* places minimal shadow and applies contrast text font color. See https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow for additional options.",
"dflt": "none",
"editType": "calc+arraydraw",
"valType": "string"
},
"size": {
"editType": "calc+arraydraw",
"min": 1,
"valType": "number"
},
"style": {
"description": "Sets whether a font should be styled with a normal or italic face from its family.",
"dflt": "normal",
"editType": "calc+arraydraw",
"valType": "enumerated",
"values": [
"normal",
"italic"
]
},
"textcase": {
"description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.",
"dflt": "normal",
"editType": "calc+arraydraw",
"valType": "enumerated",
"values": [
"normal",
"word caps",
"upper",
"lower"
]
},
"variant": {
"description": "Sets the variant of the font.",
"dflt": "normal",
"editType": "calc+arraydraw",
"valType": "enumerated",
"values": [
"normal",
"small-caps",
"all-small-caps",
"all-petite-caps",
"petite-caps",
"unicase"
]
},
"weight": {
"description": "Sets the weight (or boldness) of the font.",
"dflt": "normal",
"editType": "calc+arraydraw",
"extras": [
"normal",
"bold"
],
"max": 1000,
"min": 1,
"valType": "integer"
}
},
"height": {
"description": "Sets an explicit height for the text box. null (default) lets the text set the box height. Taller text will be clipped.",
"dflt": null,
"editType": "calc+arraydraw",
"min": 1,
"valType": "number"
},
"hoverlabel": {
"bgcolor": {
"description": "Sets the background color of the hover label. By default uses the annotation's `bgcolor` made opaque, or white if it was transparent.",
"editType": "arraydraw",
"valType": "color"
},
"bordercolor": {
"description": "Sets the border color of the hover label. By default uses either dark grey or white, for maximum contrast with `hoverlabel.bgcolor`.",
"editType": "arraydraw",
"valType": "color"
},
"editType": "arraydraw",
"font": {
"color": {
"editType": "arraydraw",
"valType": "color"
},
"description": "Sets the hover label text font. By default uses the global hover font and size, with color from `hoverlabel.bordercolor`.",
"editType": "arraydraw",
"family": {
"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*.",
"editType": "arraydraw",
"noBlank": true,
"strict": true,
"valType": "string"
},
"lineposition": {
"description": "Sets the kind of decoration line(s) with text, such as an *under*, *over* or *through* as well as combinations e.g. *under+over*, etc.",
"dflt": "none",
"editType": "arraydraw",
"extras": [
"none"
],
"flags": [
"under",
"over",
"through"
],
"valType": "flaglist"
},
"role": "object",
"shadow": {
"description": "Sets the shape and color of the shadow behind text. *auto* places minimal shadow and applies contrast text font color. See https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow for additional options.",
"dflt": "none",
"editType": "arraydraw",
"valType": "string"
},
"size": {
"editType": "arraydraw",
"min": 1,
"valType": "number"
},
"style": {
"description": "Sets whether a font should be styled with a normal or italic face from its family.",
"dflt": "normal",
"editType": "arraydraw",
"valType": "enumerated",
"values": [
"normal",
"italic"
]
},
"textcase": {
"description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.",
"dflt": "normal",
"editType": "arraydraw",
"valType": "enumerated",
"values": [
"normal",
"word caps",
"upper",
"lower"
]
},
"variant": {
"description": "Sets the variant of the font.",
"dflt": "normal",
"editType": "arraydraw",
"valType": "enumerated",
"values": [
"normal",
"small-caps",
"all-small-caps",
"all-petite-caps",
"petite-caps",
"unicase"
]
},
"weight": {
"description": "Sets the weight (or boldness) of the font.",
"dflt": "normal",
"editType": "arraydraw",
"extras": [
"normal",
"bold"
],
"max": 1000,
"min": 1,
"valType": "integer"
}
},
"role": "object"
},
"hovertext": {
"description": "Sets text to appear when hovering over this annotation. If omitted or blank, no hover label will appear.",
"editType": "arraydraw",
"valType": "string"
},
"name": {
"description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template.",
"editType": "none",
"valType": "string"
},
"opacity": {
"description": "Sets the opacity of the annotation (text + arrow).",
"dflt": 1,
"editType": "arraydraw",
"max": 1,
"min": 0,
"valType": "number"
},
"role": "object",
"showarrow": {
"description": "Determines whether or not the annotation is drawn with an arrow. If *true*, `text` is placed near the arrow's tail. If *false*, `text` lines up with the `x` and `y` provided.",
"dflt": true,
"editType": "calc+arraydraw",
"valType": "boolean"
},
"standoff": {
"description": "Sets a distance, in pixels, to move the end arrowhead away from the position it is pointing at, for example to point at the edge of a marker independent of zoom. Note that this shortens the arrow from the `ax` / `ay` vector, in contrast to `xshift` / `yshift` which moves everything by this amount.",
"dflt": 0,
"editType": "calc+arraydraw",
"min": 0,
"valType": "number"
},
"startarrowhead": {
"description": "Sets the start annotation arrow head style.",
"dflt": 1,
"editType": "arraydraw",
"max": 8,
"min": 0,
"valType": "integer"
},
"startarrowsize": {
"description": "Sets the size of the start annotation arrow head, relative to `arrowwidth`. A value of 1 (default) gives a head about 3x as wide as the line.",
"dflt": 1,
"editType": "calc+arraydraw",
"min": 0.3,
"valType": "number"
},
"startstandoff": {
"description": "Sets a distance, in pixels, to move the start arrowhead away from the position it is pointing at, for example to point at the edge of a marker independent of zoom. Note that this shortens the arrow from the `ax` / `ay` vector, in contrast to `xshift` / `yshift` which moves everything by this amount.",
"dflt": 0,
"editType": "calc+arraydraw",
"min": 0,
"valType": "number"
},
"templateitemname": {
"description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`.",
"editType": "calc",
"valType": "string"
},
"text": {
"description": "Sets the text associated with this annotation. Plotly uses a subset of HTML tags to do things like newline (<br>), bold (<b></b>), italics (<i></i>), hyperlinks (<a href='...'></a>). Tags <em>, <sup>, <sub>, <s>, <u> <span> are also supported.",
"editType": "calc+arraydraw",
"valType": "string"
},
"textangle": {
"description": "Sets the angle at which the `text` is drawn with respect to the horizontal.",
"dflt": 0,
"editType": "calc+arraydraw",
"valType": "angle"
},
"valign": {
"description": "Sets the vertical alignment of the `text` within the box. Has an effect only if an explicit height is set to override the text height.",
"dflt": "middle",
"editType": "arraydraw",
"valType": "enumerated",
"values": [
"top",
"middle",
"bottom"
]
},
"visible": {
"description": "Determines whether or not this annotation is visible.",
"dflt": true,
"editType": "calc+arraydraw",
"valType": "boolean"
},
"width": {
"description": "Sets an explicit width for the text box. null (default) lets the text set the box width. Wider text will be clipped. There is no automatic wrapping; use <br> to start a new line.",
"dflt": null,
"editType": "calc+arraydraw",
"min": 1,
"valType": "number"
},
"x": {
"description": "Sets the annotation's x position. If the axis `type` is *log*, then you must take the log of your desired range. If the axis `type` is *date*, it should be date strings, like date data, though Date objects and unix milliseconds will be accepted and converted to strings. If the axis `type` is *category*, it should be numbers, using the scale where each category is assigned a serial number from zero in the order it appears.",
"editType": "calc+arraydraw",
"valType": "any"
},
"xanchor": {
"description": "Sets the text box's horizontal position anchor This anchor binds the `x` position to the *left*, *center* or *right* of the annotation. For example, if `x` is set to 1, `xref` to *paper* and `xanchor` to *right* then the right-most portion of the annotation lines up with the right-most edge of the plotting area. If *auto*, the anchor is equivalent to *center* for data-referenced annotations or if there is an arrow, whereas for paper-referenced with no arrow, the anchor picked corresponds to the closest side.",
"dflt": "auto",
"editType": "calc+arraydraw",
"valType": "enumerated",
"values": [
"auto",
"left",
"center",
"right"
]
},
"xclick": {
"description": "Toggle this annotation when clicking a data point whose `x` value is `xclick` rather than the annotation's `x` value.",
"editType": "arraydraw",
"valType": "any"
},
"xref": {
"description": "Sets the annotation's x coordinate axis. If set to a x axis id (e.g. *x* or *x2*), the `x` position refers to a x coordinate. If set to *paper*, the `x` position refers to the distance from the left of the plotting area in normalized coordinates where *0* (*1*) corresponds to the left (right). If set to a x axis ID followed by *domain* (separated by a space), the position behaves like for *paper*, but refers to the distance in fractions of the domain length from the left of the domain of that axis: e.g., *x2 domain* refers to the domain of the second x axis and a x position of 0.5 refers to the point between the left and the right of the domain of the second x axis.",
"editType": "calc",
"valType": "enumerated",
"values": [
"paper",
"/^x([2-9]|[1-9][0-9]+)?( domain)?$/"
]
},
"xshift": {
"description": "Shifts the position of the whole annotation and arrow to the right (positive) or left (negative) by this many pixels.",
"dflt": 0,
"editType": "calc+arraydraw",
"valType": "number"
},
"y": {
"description": "Sets the annotation's y position. If the axis `type` is *log*, then you must take the log of your desired range. If the axis `type` is *date*, it should be date strings, like date data, though Date objects and unix milliseconds will be accepted and converted to strings. If the axis `type` is *category*, it should be numbers, using the scale where each category is assigned a serial number from zero in the order it appears.",
"editType": "calc+arraydraw",
"valType": "any"
},
"yanchor": {
"description": "Sets the text box's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the annotation. For example, if `y` is set to 1, `yref` to *paper* and `yanchor` to *top* then the top-most portion of the annotation lines up with the top-most edge of the plotting area. If *auto*, the anchor is equivalent to *middle* for data-referenced annotations or if there is an arrow, whereas for paper-referenced with no arrow, the anchor picked corresponds to the closest side.",
"dflt": "auto",
"editType": "calc+arraydraw",
"valType": "enumerated",
"values": [
"auto",
"top",
"middle",
"bottom"
]
},
"yclick": {
"description": "Toggle this annotation when clicking a data point whose `y` value is `yclick` rather than the annotation's `y` value.",
"editType": "arraydraw",
"valType": "any"
},
"yref": {
"description": "Sets the annotation's y coordinate axis. If set to a y axis id (e.g. *y* or *y2*), the `y` position refers to a y coordinate. If set to *paper*, the `y` position refers to the distance from the bottom of the plotting area in normalized coordinates where *0* (*1*) corresponds to the bottom (top). If set to a y axis ID followed by *domain* (separated by a space), the position behaves like for *paper*, but refers to the distance in fractions of the domain length from the bottom of the domain of that axis: e.g., *y2 domain* refers to the domain of the second y axis and a y position of 0.5 refers to the point between the bottom and the top of the domain of the second y axis.",
"editType": "calc",
"valType": "enumerated",
"values": [
"paper",
"/^y([2-9]|[1-9][0-9]+)?( domain)?$/"
]
},
"yshift": {
"description": "Shifts the position of the whole annotation and arrow up (positive) or down (negative) by this many pixels.",
"dflt": 0,
"editType": "calc+arraydraw