アノテーション グラフ

概要

アノテーション グラフは、アノテーションをサポートするインタラクティブな時系列折れ線グラフです。アノテーション付きタイムラインでは自動的にアノテーション チャートが使用されるようになりました。

混同アラート: 現在、Google アノテーション チャートは、他の Google グラフ(面グラフ、棒グラフ、列、コンボ、折れ線、散布図)でサポートされているアノテーションとは異なります。これらのグラフでは、アノテーションは個別の datatable 列で指定され、ユーザーがカーソルを合わせると完全なアノテーション テキストが表示される短いテキストとして表示されます。一方、アノテーション チャートは、以下に示すように、完全なアノテーションを右側に表示します。

<html>
  <head>
    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
    <script type='text/javascript'>
      google.charts.load('current', {'packages':['annotationchart']});
      google.charts.setOnLoadCallback(drawChart);

      function drawChart() {
        var data = new google.visualization.DataTable();
        data.addColumn('date', 'Date');
        data.addColumn('number', 'Kepler-22b mission');
        data.addColumn('string', 'Kepler title');
        data.addColumn('string', 'Kepler text');
        data.addColumn('number', 'Gliese 163 mission');
        data.addColumn('string', 'Gliese title');
        data.addColumn('string', 'Gliese text');
        data.addRows([
          [new Date(2314, 2, 15), 12400, undefined, undefined,
                                  10645, undefined, undefined],
          [new Date(2314, 2, 16), 24045, 'Lalibertines', 'First encounter',
                                  12374, undefined, undefined],
          [new Date(2314, 2, 17), 35022, 'Lalibertines', 'They are very tall',
                                  15766, 'Gallantors', 'First Encounter'],
          [new Date(2314, 2, 18), 12284, 'Lalibertines', 'Attack on our crew!',
                                  34334, 'Gallantors', 'Statement of shared principles'],
          [new Date(2314, 2, 19), 8476, 'Lalibertines', 'Heavy casualties',
                                  66467, 'Gallantors', 'Mysteries revealed'],
          [new Date(2314, 2, 20), 0, 'Lalibertines', 'All crew lost',
                                  79463, 'Gallantors', 'Omniscience achieved']
        ]);

        var chart = new google.visualization.AnnotationChart(document.getElementById('chart_div'));

        var options = {
          displayAnnotations: true
        };

        chart.draw(data, options);
      }
    </script>
  </head>

  <body>
    <div id='chart_div' style='width: 900px; height: 600px;'></div>
  </body>
</html>

読み込み中

google.charts.load パッケージ名は "annotationchart" です。

  google.charts.load("current", {packages: ['annotationchart']});

ビジュアリゼーションのクラス名は google.visualization.AnnotationChart です。

  var visualization = new google.visualization.AnnotationChart(container);

データ形式

グラフには 1 つ以上の折れ線を表示できます。各行は、グラフ上の X 位置、つまり特定の時間を表します。各行は 1 ~ 3 列のセットで表されます。

  • 最初の列は date 型または datetime 型で、グラフ上の点の X 値を指定します。この列の型が datedatetime ではない)の場合、X 軸の最小時間解像度は 1 日になります。
  • 各データ行は、次に説明するように、1 ~ 3 列の追加列で記述されます。
    • Y 値 - [必須、数値] 各セットの最初の列は、最初の列の対応する時間の線の値を表します。縦棒グラフは、折れ線のタイトルとしてグラフに表示されます。
    • アノテーション タイトル - [省略可、文字列] 文字列の列が値の列の後にあり、displayAnnotations オプションが true の場合、この列にはその点を表す短いタイトルが保持されます。たとえば、このラインがブラジルの気温を表しており、このポイントが非常に高い数である場合、タイトルは「記録日が最も暑い日」となります。
    • アノテーション テキスト - (省略可)文字列このシリーズの 2 つ目の文字列列が存在する場合は、この時点でその説明文を追加のセルとして使用します。この列を使用するには、オプション displayAnnotations を true に設定する必要があります。allowHtmltrue に設定すると、HTML タグを使用できますが、基本的にサイズの制限はありませんが、エントリが長すぎると表示セクションにオーバーフローする可能性があります。この時点でアノテーション タイトル列がある場合でも、この列は必要ありません。列ラベルはグラフで使用されていません。たとえば、最も暑い日を記録した場合、「次は 1 日の気温が 10 度下がった」のように言ってみてください。

設定オプション

名前
allowHTML

true に設定すると、HTML タグを含むアノテーション テキストは HTML としてレンダリングされます。

型: boolean
デフォルト: false
すべての値の接尾辞

凡例のすべての値と、縦軸の目盛りに追加するサフィックス。

型: string
デフォルト: なし
アノテーションの幅

グラフ領域全体に対するアノテーション領域の幅(パーセント)。5 ~ 80 の範囲の数値にする必要があります。

タイプ: 数値
デフォルト: 25

グラフの線とラベルに使用する色。文字列の配列。各要素は、有効な HTML カラー形式の文字列です。たとえば、「red」や「#00cc00」などです。

型: 文字列の配列
デフォルト: デフォルトの色
dateFormat

右上に日付情報を表示するために使用される形式。このフィールドの形式は、java SimpleDateFormat クラスで指定されています。

型: string
デフォルト: 最初の列のタイプ(それぞれ日付、日時)に応じて、「MMMM dd」、「yyyy」または「HH:mm MMMM dd, yyyy」。
displayAnnotations

false に設定すると、グラフにはアノテーション テーブルが非表示になり、アノテーションとアノテーション テキストが表示されなくなります(このオプションにかかわらず、データ内にアノテーションがない場合も、アノテーション テーブルは表示されません)。このオプションを true に設定すると、すべての数値列の後に、アノテーション タイトル用とアノテーション テキスト用の 2 つのオプションのアノテーション文字列列を追加できます。

型: boolean
デフォルト: true
displayAnnotationsFilter

true に設定すると、グラフにアノテーションをフィルタするコントロールが表示されます。アノテーションが多い場合は、このオプションを使用します。

型: boolean
デフォルト: false
displayDateBarSeparator

系列値と凡例の日付の間に小さなバー区切り文字(|)を表示するかどうかを指定します。true は「はい」を意味します。

型: boolean
デフォルト: true
displayExactValues

スペースを短くするために、値の短縮版をグラフの上部に表示するかどうかを指定します。false は、指定できることを示します。たとえば、false に設定すると、56,123.45 は 56.12k として表示されます。

型: boolean
デフォルト: false
displayLegendDots

凡例のテキストの値の横にドットを表示するかどうかを指定します。true は「はい」を意味します。

型: boolean
デフォルト: true
displayLegendValues

凡例でハイライト表示された値を表示するかどうかを指定します。true は「はい」を意味します。

型: boolean
デフォルト: true
displayRangeSelector

ズーム範囲の選択領域(グラフの下部にある領域)を表示するかどうかを指定します。false の場合、「いいえ」になります。

ズーム セレクタの枠線は、グラフの最初の系列の対数スケール バージョンで、ズーム セレクタの高さに合わせてスケーリングされます。

型: boolean
デフォルト: true
displayZoomButtons

ズームボタン(「1d 5d 1m」など)を表示するかどうかを指定します。false の場合、「いいえ」になります。

型: boolean
デフォルト: true
fill

折れ線グラフの各線の下にある塗りつぶしのアルファを指定する 0 ~ 100 の数値。100 は不透明度 100%、0 は塗りつぶしがないことを示します。塗りつぶしの色は、その上の線と同じ色になります。

タイプ: 数値
デフォルト: 0
凡例の位置

色付きの凡例を、ズームボタンと日付(同じ行)を使用して同じ行に配置するか、新しい行(「newRow」)に配置するかを指定します。

型: string
デフォルト: 'sameRow'
最高

Y 軸に表示する最大値。最大データポイント数がこの値を超えると、この設定は無視され、最大データポイントを超えて次のメジャー ティック チャートが表示されるようグラフが調整されます。これは、scaleType によって決定される Y 軸の最大値よりも優先されます。

コアチャートの maxValue に似ています。

タイプ: 数値
デフォルト: 自動

Y 軸に表示する最小値。最小データポイントがこの値より小さい場合、この設定は無視され、グラフは最小データポイントより下に大きい目盛りが表示されます。これは scaleType によって決定される最小値の Y 軸よりも優先されます。

コアチャートの minValue に似ています。

タイプ: 数値
デフォルト: 自動
数値形式

グラフの上部で値をフォーマットするために使用される数値形式のパターンを指定します。

パターンは、java DecimalFormat クラスで指定された形式である必要があります。

  • 指定しない場合は、デフォルトの形式パターンが使用されます。
  • 1 つの文字列パターンを指定すると、すべての値で使用されます。
  • マップを指定した場合、キーは系列のインデックス(ゼロベース)であり、値は指定した系列のフォーマットに使用されるパターンです。

    グラフにすべての系列の形式を含める必要はありません。指定されていない系列ではデフォルトの形式が使用されます。

このオプションを指定すると、displayExactValues オプションは無視されます。

型: 文字列、または数値と文字列のペアのマップ
デフォルト: 自動
scaleColumn

グラフの Y 軸の目盛りに表示する値を指定します。デフォルトでは、右側に 1 つの目盛りがありますが、これは両方の系列に適用されます。ただし、グラフの別の辺を異なる系列値にスケーリングできます。

このオプションは、スケール値として使用する系列の(0 から始まる)インデックスを指定する 0 ~ 3 の数値の配列を受け取ります。これらの値が表示される場所は、配列に含まれる値の数によって異なります。

  • 空の配列を指定すると、グラフの横に目盛り Y の値が表示されません。
  • 値を 1 つ指定すると、指定したグラフの縮尺がグラフの右側だけに表示されます。
  • 2 つの値を指定すると、2 番目の系列の目盛りがグラフの右側に追加されます。
  • 3 つの値を指定すると、グラフの中央に 3 つ目の系列の目盛りが追加されます。
  • 配列の 3 番目の値以外は無視されます。

複数の体重計を表示する場合は、scaleType オプションを「allfixed」または「allmaximized」に設定することをおすすめします。

型: 数値の配列
デフォルト: 自動
scaleFormat

軸の目盛りに使用する数値形式。'#' のデフォルトは整数として表示されます。

型: string
デフォルト: 「#」
スケールタイプ

Y 軸の最大値と最小値を設定します。以下のオプションを使用できます。

  • 「maximized」- Y 軸は系列の最小値から最大値まで広がります。シリーズが複数ある場合は、maxmaxed を使用します。
  • 'fixed'default - Y 軸は、データの値の値に応じて変化します。
    • すべての値が 0 以上の場合、Y 軸はゼロから最大データ値まで広がります。
    • すべての値が 0 以下の場合、Y 軸はゼロから最小データ値まで広がります。
    • 値が正と負の両方の場合、Y 軸は系列の最大値から最小値の範囲内になります。
      複数のシリーズの場合は、「allfixed」を使用します。
  • 「allmaximized」 - 「maximized」と同じですが、複数のスケールが表示されるときに使用されます。どちらのグラフも同じスケールで最大化されます。つまり、一方のグラフは Y 軸に対して誤って表示されますが、各系列にカーソルを合わせると真の値が表示されます。
  • 「allfixed」 - 「fixed」と同じですが、複数の縮尺が表示されるときに使用されます。この設定により、適用するスケールに合わせて各スケールが調整されます(scaleColumns と組み合わせて使用します)。

最小値や最大値を指定すると、スケールタイプによって決定される最小値と最大値よりも優先されます。

型: string
デフォルト: 「fixed」
table

アノテーション テーブルに関連するオプションが含まれています。このオブジェクトのプロパティを指定するには、オブジェクト リテラル表記を使用します。

var options: {
  table: {
    sortAscending: true,
    sortColumn: 1
  }
};
      
タイプ: オブジェクト
デフォルト: null
table.sortAscending

true に設定すると、アノテーション テーブルの順序が逆になり、それが昇順で表示されます。

型: boolean
デフォルト: false
table.sortColumn

アノテーションを並べ替えるためのアノテーション テーブルの列インデックス。アノテーション ラベル列の場合はインデックスが 0、アノテーション テキスト列の場合は 1 である必要があります。

タイプ: 数値
デフォルト: 0
太さ

線の太さを 0 ~ 10 の数値で示します。0 は最も細いものです。

タイプ: 数値
デフォルト: 0
ズーム終了時間

選択したズーム範囲の終了日時を設定します。

タイプ: 日付
デフォルト: なし
ズーム開始時間

選択したズーム範囲の開始日時を設定します。

タイプ: 日付
デフォルト: なし

メソッド

メソッド
clearChart()

グラフをクリアし、割り当てられているすべてのリソースを解放します。

戻り値の型: なし
draw(data, options, state)

グラフを描画します。

戻り値の型: なし
getContainer()

アノテーション チャートを含むコンテナ要素へのハンドルを取得します。

戻り値の型: DOM 要素を処理する
getSelection()

標準の getSelection() 実装。選択した要素はセル要素です。 ユーザーは一度に 1 つのセルのみを選択できます。

戻り値の型: 選択要素の配列
getVisibleChartRange()

start プロパティと end プロパティを含むオブジェクトを返します。各プロパティは、現在の時間選択を表す Date オブジェクトです。

戻り値の型: start プロパティと end プロパティを持つオブジェクト。
hideDataColumns(columnIndexes)

指定したデータ系列をグラフで非表示にします。数値または数値の配列のいずれか 1 つのパラメータを受け入れます。0 は最初のデータ系列を示します。

戻り値の型: なし
setVisibleChartRange(start, end)

表示範囲(ズーム)を指定の範囲に設定します。Date 型の 2 つのパラメータを受け入れます。これらは、選択した選択した表示範囲の最初と最後の時刻を表します。start を null に設定すると、最も早い日付から end までのすべてが含まれます。end を null に設定すると、start から最後の日付までのすべてが含まれます。

戻り値の型: なし
showDataColumns(columnIndexes)

hideDataColumns メソッドを使用して非表示にされた後の、グラフから指定されたデータ系列を表示します。1 つのパラメータ(数値または数値の配列)を指定できます。0 は最初のデータ系列を示します。

戻り値の型: なし

イベント

名前
rangechange

ユーザーが範囲スライダーを変更すると呼び出されます。新しい範囲エンドポイントは、event['start'] および event['end'] として利用できます。

google.visualization.events.addListener(chart, 'rangechange', rangechange_handler);

function rangechange_handler(e) {
  console.log('You changed the range to ', e['start'], ' and ', e['end']);
}
プロパティ: start、end
ready

外部メソッド呼び出しのグラフの準備が完了しました。グラフを描画し、描画後にメソッドを呼び出す場合は、draw メソッドを呼び出す前に、このイベントのリスナーを設定して、イベントが発生した後にのみ呼び出す必要があります。

プロパティ: なし
select

ユーザーがビジュアル エンティティをクリックすると呼び出されます。選択内容を確認するには、getSelection() を呼び出します。

プロパティ: なし

データポリシー

すべてのコードとデータはブラウザで処理され、レンダリングされます。データがサーバーに送信されることはありません。