# 时间笛卡尔坐标轴

时间刻度用于显示时间和日期。数据根据数据点之间的时间间隔进行分布。在构建刻度时,它会根据刻度的尺寸自动计算最舒适的单位。

# 日期适配器

时间刻度**需要**同时存在日期库和相应的适配器。请从可用的适配器 (在新窗口中打开)中选择。

# 数据集

# 输入数据

参见数据结构.

# 日期格式

在为时间刻度提供数据时,Chart.js 在内部使用以毫秒为单位的自纪元以来的时间戳(1970 年 1 月 1 日午夜,UTC)。但是,Chart.js 也支持你选择的日期适配器接受的所有格式。如果你想设置 parsing: false 以获得更好的性能,则应使用时间戳。

# 配置选项

# 时间轴特定选项

命名空间:options.scales[scaleId]

名称 类型 默认值 描述
min number|string 要显示的最小项。 更多...
max number|string 要显示的最大项。 更多...
suggestedMin number|string 如果在它之前没有数据点,则要显示的最小项。 更多...
suggestedMax number|string 如果在它之后没有数据点,则要显示的最大项。 更多...
adapters.date object {} 如果外部日期库的适配器需要或支持选项,则为该适配器的选项
bounds string 'data' 确定刻度范围。 更多...
offsetAfterAutoskip boolean false 如果为 true,则柱状图偏移量将使用自动跳过的刻度进行计算。
ticks.source string 'auto' 刻度的生成方式。 更多...
time.displayFormats object 设置不同时间单位的显示方式。 更多...
time.isoWeekday boolean|number false 如果为 boolean 且为 true 且单位设置为 'week',则一周的第一天为星期一。否则,为星期日。如果为 number,则一周的第一天的索引(0 - 星期日,6 - 星期六)
time.parser string|function 日期的自定义解析器。 更多...
time.round string false 如果已定义,日期将四舍五入到此单位的开始。有关允许的单位,请参见下面的时间单位
time.tooltipFormat string 用于工具提示的格式字符串。
time.unit string false 如果已定义,将强制单位为特定类型。有关详细信息,请参见下面的时间单位部分。
time.minUnit string 'millisecond' 用于时间单位的最小显示格式。

# 所有笛卡尔坐标轴的通用选项

命名空间:options.scales[scaleId]

名称 类型 默认值 描述
bounds string 'ticks' 确定刻度范围。 更多...
clip boolean true 如果为 true,则将数据集绘制裁剪到刻度的大小,而不是图表区域
position string | object 坐标轴的位置。 更多...
stack string 堆叠组。在同一position且具有相同stack的坐标轴将被堆叠。
stackWeight number 1 堆叠组中刻度的权重。用于确定刻度在组中分配的空间量。
axis string 此坐标轴的类型。可能的值为:'x''y'。如果未设置,则从 ID 的第一个字符推断,第一个字符应为'x''y'
offset boolean false 如果为 true,则会在两侧添加额外的空间,并且刻度会按比例缩放以适合图表区域。默认情况下,对于柱状图,此项设置为 true
title object 刻度标题配置。 更多...

# 所有坐标轴的通用选项

命名空间:options.scales[scaleId]

名称 类型 默认值 描述
type string 正在使用的刻度类型。可以创建自定义刻度,并使用字符串键进行注册。这允许更改图表中坐标轴的类型。
alignToPixels boolean false 将像素值对齐到设备像素。
backgroundColor Color 刻度区域的背景颜色。
border object 边框配置。 更多...
display boolean|string true 控制坐标轴的全局可见性(true 时可见,false 时隐藏)。当 display: 'auto' 时,坐标轴仅在至少一个关联的数据集可见时才可见。
grid object 网格线配置。 更多...
min number 用户定义的刻度最小值,覆盖数据中的最小值。 更多...
max number 用户定义的刻度最大值,覆盖数据中的最大值。 更多...
reverse boolean false 反转刻度。
stacked boolean|string false 数据是否应堆叠。 更多...
suggestedMax number 在计算最大数据值时使用的调整值。 更多...
suggestedMin number 在计算最小数据值时使用的调整值。 更多...
ticks object 刻度配置。 更多...
weight number 0 用于对坐标轴进行排序的权重。权重越高,离图表区域越远。

# 时间单位

支持以下时间测量单位。这些名称可以作为字符串传递到 time.unit 配置选项以强制使用特定单位。

  • 'millisecond'
  • 'second'
  • 'minute'
  • 'hour'
  • 'day'
  • 'week'
  • 'month'
  • 'quarter'
  • 'year'

例如,要创建一个具有始终显示每月的单位的时间刻度的图表,可以使用以下配置。

const chart = new Chart(ctx, {
    type: 'line',
    data: data,
    options: {
        scales: {
            x: {
                type: 'time',
                time: {
                    unit: 'month'
                }
            }
        }
    }
});

# 显示格式

你可以使用每个单位的键指定显示格式的映射

  • millisecond
  • second
  • minute
  • hour
  • day
  • week
  • month
  • quarter
  • year

用作值的格式字符串取决于你选择使用的日期适配器。

例如,要将 quarter 单位的显示格式设置为显示月份和年份,可以将以下配置传递给图表构造函数。

const chart = new Chart(ctx, {
    type: 'line',
    data: data,
    options: {
        scales: {
            x: {
                type: 'time',
                time: {
                    displayFormats: {
                        quarter: 'MMM YYYY'
                    }
                }
            }
        }
    }
});

# 刻度来源

ticks.source 属性控制刻度的生成。

  • 'auto': 根据刻度大小和时间选项生成“最佳”刻度
  • 'data': 从数据生成刻度(包括来自数据 {x|y} 对象的标签)
  • 'labels': 从用户给定的 labels 仅生成刻度

# 解析器

如果此属性定义为字符串,则将其解释为日期适配器用于解析日期的自定义格式。

如果这是一个函数,则它必须返回日期适配器的 parse 方法可以处理的类型。

# 最小值和最大值配置

对于 minmax 属性,值必须是日期适配器可解析的 string,或一个自 UNIX 纪元以来经过的毫秒数的数字。在下面的示例中,x 轴将从 2021 年 11 月 7 日开始。

let chart = new Chart(ctx, {
    type: 'line',
    data: {
        datasets: [{
            data: [{
                x: '2021-11-06 23:39:30',
                y: 50
            }, {
                x: '2021-11-07 01:00:28',
                y: 60
            }, {
                x: '2021-11-07 09:00:28',
                y: 20
            }]
        }],
    },
    options: {
        scales: {
            x: {
                min: '2021-11-07 00:00:00',
            }
        }
    }
});

# 将刻度类型从时间刻度更改为对数/线性刻度。

将刻度类型从时间刻度更改为对数/线性刻度时,需要将 bounds: 'ticks' 添加到刻度选项中。更改 bounds 参数是必要的,因为它的默认值为时间刻度的 'data'

初始配置

const chart = new Chart(ctx, {
    type: 'line',
    data: data,
    options: {
        scales: {
            x: {
                type: 'time',
            }
        }
    }
});

刻度更新

chart.options.scales.x = {
    type: 'logarithmic',
    bounds: 'ticks'
};

# 内部数据格式

在内部,时间刻度使用自纪元以来的毫秒数

上次更新: 2024/5/17 下午 12:33:38