Chart.js 选项
选项解析
Chart.js 使用上下文相关的路由从上到下解析选项。
图表级别选项
- options
- overrides[config.type]
- defaults
数据集级别选项
如果未指定 dataset.type
的值则默认为 config.type
。
dataset
options.datasets[dataset.type]
options
overrides[config.type].datasets[dataset.type]
defaults.datasets[dataset.type]
defaults
数据集动画选项
dataset.animation
options.datasets[dataset.type].animation
options.animation
overrides[config.type].datasets[dataset.type].animation
defaults.datasets[dataset.type].animation
defaults.animation
数据集元素级别选项
首先在选项名称中使用 elementType
前缀查找每个范围,然后不使用前缀。 例如,使用 pointRadius 查找点元素的半径,如果没有命中,则使用半径。
- dataset
- options.datasets[dataset.type]
- options.datasets[dataset.type].elements[elementType]
- options.elements[elementType]
- options
- overrides[config.type].datasets[dataset.type]
- overrides[config.type].datasets[dataset.type].elements[elementType]
- defaults.datasets[dataset.type]
- defaults.datasets[dataset.type].elements[elementType]
- defaults.elements[elementType]
- defaults
比例选项
- options.scales
- overrides[config.type].scales
- defaults.scales
- defaults.scale
插件选项
插件可以提供额外的OptionScopes 路径数组以在其中额外查找其选项。对于根范围,请使用空字符串:''。 大多数核心插件也采用根范围的选项。
- options.plugins[plugin.id]
- (options.[...plugin.additionalOptionScopes])
- overrides[config.type].plugins[plugin.id]
- defaults.plugins[plugin.id]
- (defaults.[...plugin.additionalOptionScopes])
可编写脚本的选项
可编写脚本的选项还接受为每个基础数据值调用的函数,该函数采用表示上下文信息的唯一参数上下文(请参阅选项上下文)。 解析器作为第二个参数传递,可用于访问同一上下文中的其他选项。
注意
:上下文参数应该在可编写脚本的函数中进行验证,因为该函数可以在不同的上下文中调用。 type 字段是此验证的理想选择。
color: function(context) {
const index = context.dataIndex;
const value = context.dataset.data[index];
return value < 0 ? 'red' : // draw negative values in red
index % 2 ? 'blue' : // else, alternate values in blue and green
'green';
},
borderColor: function(context, options) {
const color = options.color; // resolve the value of another scriptable option: 'red', 'blue' or 'green'
return Chart.helpers.color(color).lighten(0.2);
}
可索引选项
可索引选项还接受一个数组,其中每个项目对应于同一索引处的元素。 请注意,如果项目少于数据,则项目将被循环。 在许多情况下,如果支持,使用函数更合适。
color: [
'red', // color for data at index 0
'blue', // color for data at index 1
'green', // color for data at index 2
'black', // color for data at index 3
//...
]
选项上下文
选项上下文用于在解析选项时提供上下文信息,目前仅适用于可编写脚本的选项。 该对象被保留,因此可用于在调用之间存储和传递信息。
有多个级别的上下文对象:
- chart
- dataset
- data
- dataset
- scale
- tick
- pointLabel (only used in the radial linear scale)
- tooltip
每个级别都继承其父级,并且存储在父级中的任何上下文信息都可以通过子级获得。
上下文对象包含以下属性:
chart
- chart: 相关图表
- type: 'chart'
dataset
- active: 如果元素处于活动状态(hover),则为 true
- dataset: 索引 datasetIndex 处的数据集
- datasetIndex: 当前数据集的索引
- index: 与 datasetIndex 相同
- mode: 更新模式
- type: 'dataset'
data
- active: 如果元素处于活动状态(hover),则为 true
- dataIndex: 当前数据集的索引
- parsed: 给定 dataIndex 和 datasetIndex 的解析数据值
- raw: 给定 dataIndex 和 datasetIndex 的原始数据值
- element: 此数据的元素(点、弧、线等)
- index: 与 dataIndex 相同
- type: 'data'
scale
- scale: 相关量表
- type: 'scale'
tick
- tick: 关联的 tick 对象
- index: tick 索引
- type: 'tick'
tooltip
- tooltip: tooltip 对象
- tooltipItems: tooltip 显示的项目