# 時間笛卡爾軸
時間刻度用於顯示時間和日期。資料點會根據資料點之間的時間間隔來分散。在建立刻度時,它會根據刻度的大小自動計算最合適的單位。
# 日期轉接器
時間刻度**需要**同時存在日期函式庫和相應的轉接器。請從可用的轉接器中選擇 (在新視窗中開啟)。
# 資料集
# 輸入資料
請參閱資料結構。
# 日期格式
當為時間刻度提供資料時,Chart.js 在內部使用時間戳記,定義為自 epoch(UTC 1970 年 1 月 1 日午夜)以來的毫秒數。但是,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 | 顏色 | 刻度區域的背景顏色。 | |
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
方法處理的類型。
# 最小值/最大值設定
對於 min
和 max
屬性,其值必須是可由您的日期轉接器解析的 string
字串,或是自 UNIX epoch 以來經過的毫秒數的數值。在以下範例中,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'
};
# 內部資料格式
時間刻度在內部使用自 epoch 以來的毫秒數