時間直交軸
時間スケールは、時間と日付を表示するために使用されます。目盛は、自動的にスケールの範囲で最も相応しい単位で作成されます。
データセット
入力データ
時間スケールを使用するとき、x軸のデータ点は、x
またはt
属性を介して指定します。
data: [{
x: new Date(),
y: 1
}, {
t: new Date(),
y: 10
}]
日付形式
時間スケールのデータ指定について、Chart.jsはMoment.jsが受け取るすべての形式をサポートしています。詳細については、Moment.js docsを参照してください。
設定オプション
以下のオプションは時間スケールで使用することができます。 共通の目盛設定で提供されるオプションを設定することもできます。
Name | Type | Default | Description |
---|---|---|---|
distribution |
String |
linear |
データのプロット方法。詳細... |
bounds |
String |
data |
スケールの範囲を決定します。詳細... |
ticks.source |
String |
auto |
目盛の生成方法。詳細... |
time.displayFormats |
Object |
表示される時間単位を設定します。詳細... | |
time.isoWeekday |
Boolean |
false |
trueで単位が 'week'に設定されている場合、その週の最初の曜日は月曜日になります。それ以外の場合は、日曜日になります。 |
time.max |
Time | 定義されている場合、これはデータの最大値を上書きします。 | |
time.min |
Time | 定義されている場合、これはデータの最小値を上書きします。 | |
time.parser |
String/Function |
日付用のカスタムパーサー。詳細... | |
time.round |
String |
false |
定義されている場合は、日時はこの単位の先頭値に丸められます(切り捨てられます)。許可される単位については、以下の時間単位を参照してください。 |
time.tooltipFormat |
String |
ツールチップに使用するmoment.js形式の文字列です。 | |
time.unit |
String |
false |
定義されている場合、単位を特定の形式に強制します。詳細については、時間単位のセクションを参照してください。 |
time.stepSize |
Number |
1 |
グリッド線間の単位の数。 |
time.minUnit |
String |
'millisecond' |
時間単位で使用される最小表示形式。 |
時間単位
次の時間単位がサポートされています。単位を指定する際には、これらの時間単位名を文字列としてtime.unit
設定オプションに渡します。
- millisecond
- second
- minute
- hour
- day
- week
- month
- quarter
- year
たとえば、時間スケールが月単位で表示されるチャートを作成するには、次のように設定します。
var chart = new Chart(ctx, {
type: 'line',
data: data,
options: {
scales: {
xAxes: [{
type: 'time',
time: {
unit: 'month'
}
}]
}
}
})
表示形式
次の表示形式は、軸目盛の文字列表現を設定するために使用します。使用できる形式については、moment.jsを参照してください。
名前 | 初期値 | 例 |
---|---|---|
millisecond | 'h:mm:ss.SSS a' | 11:20:01.123 AM |
second | 'h:mm:ss a' | 11:20:01 AM |
minute | 'h:mm a' | 11:20 AM |
hour | 'hA' | 11AM |
day | 'MMM D' | Sep 4 |
week | 'll' | Sep 4 2015 |
month | 'MMM YYYY' | Sep 2015 |
quarter | '[Q]Q - YYYY' | Q3 - 2015 |
year | 'YYYY' | 2015 |
たとえば、 'quarter'単位の表示形式において月と年を示すように設定するには、次の設定をチャートコンストラクタに渡します。
var chart = new Chart(ctx, {
type: 'line',
data: data,
options: {
scales: {
xAxes: [{
type: 'time',
time: {
displayFormats: {
quarter: 'MMM YYYY'
}
}
}]
}
}
})
スケール分布
distribution
プロパティは、スケールに沿ったデータ分布を制御します。
'linear'
: データは時間に応じて分布します(距離は変化する可能性があります)。'series'
: データは互いに同じ距離に分布します。
var chart = new Chart(ctx, {
type: 'line',
data: data,
options: {
scales: {
xAxes: [{
type: 'time',
distribution: 'series'
}]
}
}
})
目盛範囲
bounds
プロパティは、(min/max時間オプションが優先されますが)スケール境界を制御します。
'data'
: データが全て表示されるようにし、その範囲に入らないラベルは表示されない。'ticks'
: 目盛が全て表示されるようにし、その範囲に入らないデータは表示されない。
目盛線の生成
ticks.source
プロパティは目盛の生成を制御します。
'auto'
: スケール範囲と時間設定に基づいて「最適な」目盛を生成します。'auto'
: スケール範囲と時間設定に基づいて「最適な」目盛を生成します。'data'
: データ({t|x|y}
オブジェクトのラベルを含む)から目盛を生成します。'labels'
: ユーザーが渡したdata.labels
値のみから目盛を生成します。
パーサー
このプロパティが文字列で定義されている場合は、文字列は moment.js のカスタム形式とみなされパースされます。
これが関数の場合は、適切なデータ値を指定してmoment.jsオブジェクトを返す必要があります。