我有线图,可以及时显示价值变化。它可以工作,但我认为如果我可以添加积分来显示悬停工具提示会很棒。这样的事情: 但是我不能直接在其中一个点上使用工具提示。
var data = google.visualization.arrayToDataTable([
['time', 'value'],
['12:00', 1],
['13:00', 5],
['14:00', 8],
['15:00', 12],
['16:00', 11],
['17:00', 15],
]);
new google.visualization.LineChart(document.getElementById('visualization')).
draw(data, {});
答案 0 :(得分:16)
如我comment所述,您可以使用annotation role执行此操作。
您的原始代码:
var data = google.visualization.arrayToDataTable([
['time', 'value'],
['12:00', 1],
['13:00', 5],
['14:00', 8],
['15:00', 12],
['16:00', 11],
['17:00', 15],
]);
new google.visualization.LineChart(document.getElementById('visualization')).
draw(data, {});
您需要添加两列 - 一列用于注释标记,一列用于注释文本。假设您希望在14:00和16:00发表两条评论,例如:
function drawVisualization() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'time');
data.addColumn('number', 'value');
data.addColumn({type: 'string', role:'annotation'});
data.addColumn({type: 'string', role:'annotationText'});
data.addRows([
['12:00', 1, null, null],
['13:00', 5, null, null],
['14:00', 8, 'A', 'This is Point A'],
['15:00', 12, null, null],
['16:00', 11, 'B', 'This is Point B'],
['17:00', 15, null, null],
]);
new google.visualization.LineChart(document.getElementById('visualization')).
draw(data, {});
}
结果如下:
要添加asgallant's solution以向图表添加点,您可以执行以下操作:
function drawVisualization() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'time');
data.addColumn('number', 'value');
data.addColumn('number', 'points');
data.addColumn({type: 'string', role:'annotation'});
data.addColumn({type: 'string', role:'annotationText'});
data.addRows([
['12:00', 1, null, null, null],
['13:00', 5, null, null, null],
['14:00', 8, 8, 'A', 'This is Point A'],
['15:00', 12, null, null, null],
['16:00', 11, 11, 'B', 'This is Point B'],
['17:00', 15, null, null, null],
]);
new google.visualization.LineChart(document.getElementById('visualization')).
draw(data, {
series: {
0: {
// set any applicable options on the first series
},
1: {
// set the options on the second series
lineWidth: 0,
pointSize: 5,
visibleInLegend: false
}
}
});
}
结果如下:
答案 1 :(得分:12)
如果我正确地阅读了您的问题,您希望每个数据点都显示在点上,并且将鼠标悬停在这些点上会产生工具提示。如果这就是你所追求的,那么图表已经完成了这两件事,你只是看不到这些点,因为默认情况下它们的大小为0.在LineChart中设置“pointSize”选项以使点更大:
new google.visualization.LineChart(document.getElementById('visualization')).
draw(data, {
pointSize: 5
});
编辑:
要仅强调图表中的某些点,您需要添加一个仅包含这些值的新数据系列(您可以将此系列直接添加到DataTable,或者如果您使用DataView动态创建它可以某种方式区分你想要强调的点与其他点。然后你想设置图表的series
选项来隐藏第二个系列中的线,从图例中删除第二个系列,并使其点更大(如果你想匹配颜色,你也可以在这里设置它的颜色) ,像这样:
series: {
0: {
// set any applicable options on the first series
},
1: {
// set the options on the second series
lineWidth: 0,
pointSize: 5,
visibleInLegend: false
}
}