私は、2つの線を示す折れ線グラフを持っています:1つは値のある日付範囲を表し、もう1つの線は前の値との前の期間(日付も)です。グーグルラインチャート複数の列データを持つツールヒント
各行のツールヒントに関連する日付と値を表示します。
ツールチップは、次のようになります。
function drawChart(chartData, elemId, chartWidth, chartHeight, startDate, endDate) {
var chartToDraw = new google.visualization.DataTable();
chartToDraw.addColumn('date', 'Date');
chartToDraw.addColumn('number', 'Value');
chartToDraw.addColumn({
type: 'string',
role: 'tooltip',
properties: {
html: true
},
calc: function (dt, row) { //doesn't get called for some reason
var date = dt.getValue(row, 2);
var val = dt.getValue(row, 1);
return '<div>' + date + ' </br><b>value:</b>' + val + '</div>';
}
});
chartToDraw.addColumn('number', 'Previous value');
chartToDraw.addColumn({
type: 'string',
role: 'tooltip',
properties: {
html: true
},
calc: function (dt, row) { //doesn't get called for some reason
var date = dt.getValue(row, 4);
var val = dt.getValue(row, 3);
return '<div>' + date + ' </br><b>value:</b>' + val + '</div>';
}
});
if (chartData['dataPoints'] != undefined) {
var currentDataArr = [];
for (var point in chartData['dataPoints']) {
currentDataArr.push([
chartData['dataPoints'][point].date,
chartData['dataPoints'][point].value,
chartData['dataPoints'][point].date,
chartData['dataPoints'][point].prevValue,
chartData['dataPoints'][point].prevDate
]);
}
}
chartToDraw.addRows(currentDataArr);
var timeFormatter = new google.visualization.DateFormat({
pattern: "MMM dd"
});
timeFormatter.format(chartToDraw, 0);
timeFormatter.format(chartToDraw, 2);
timeFormatter.format(chartToDraw, 4);
var options = {
legend: 'none',
'width': chartWidth,
'height': chartHeight,
pointSize: 4,
colors: ['#0289cb', '#01af8a'],
tooltip: {
isHtml: true
},
chartArea: {
width: '80%'
},
hAxis: {
slantedText: true,
slantedTextAngle: 30,
viewWindow: {
min: startDate,
max: endDate
},
gridlines: {
count: -1,
units: {
days: {format: ['MMM dd']},
hours: {format: ['HH:mm', 'ha']}
}
},
minorGridlines: {
units: {
hours: {format: ['hh:mm:ss a', 'ha']},
minutes: {format: ['HH:mm a Z', ':mm']}
}
}
},
vAxis: {
viewWindow: {
min: 0
}
}
};
var chart = new google.visualization.LineChart(document.getElementById(elemId));
chart.draw(chartToDraw, options);
}
問題はすべて、私はツール - 右今見ていることである。
これは私が今持っているものですヒントはちょうど正しい日付であり、私は価値を見逃しています。 ツールチップのタイプをstring
に変更すると、calc
が呼び出されない理由が分かりません。mismatch type
というエラーが表示されます。
Google Chart HTML Tooltip displays html text
が、私はそれらの答えをresambleするために行ったすべての変更に失敗しました:ここに
は、私がこれまで見てきたものです。 何が間違っていますか?列のみDataView Class
ないDataTable Class ...
、あなたのツールチップを追加するのDataView
使用setColumnsを作成し、あなたのDataTable最初のロード、使用するにして働く計算
ありがとう! 2番目のツールチップの '2 'の後に' 3'を追加し、 'var date = dt.getValue(')に変更しました。行、3); '、しかし、私はエラーが発生している:'与えられた軸上のすべてのシリーズは、同じデータ型でなければならない '任意のアイデアを解決するには? – FireBrand
はい、2番目の日付は物事を投げつけています。データに2つの日付を含める場合は、2つの軸を使用する必要があります。前の日付を使用して2番目の軸に前の値をプロットしますか?または、現在の日付の軸に前の値をプロットし、ツールチップに前の日付のみを表示しますか?後者の場合、データテーブルに前の日付を追加し、データビューに独自の列を含めず、単にツールチップで参照してください...(編集を参照) – WhiteHat
私は現在の日付の軸に前の値をプロットし、あなたがしたようにデータを追加し、データビューから '3'を削除し、ちょうどツールチップのリファレンスを使用しましたが、私は前と同じエラーが発生します – FireBrand