如何在 Google 折线图中动态更改线宽?
How to dynamically change line width in Google Line Chart?
我有一个复杂的折线图,我想在将鼠标移到数据集上时突出显示(加粗)线条。事件 "select" 和 "onmouseover" 我可以捕捉到,但我如何动态更改数据集的线宽?或者是否有其他可能性来突出显示所选行?
根据 Customizing Lines,Google 图表中的行可以通过两种不同的方式自定义:使用 colors
选项更改图表调色板,或使用 series
选项指定特定系列的颜色。
以下示例演示了如何在选择事件中突出显示行:
google.load('visualization', '1.1', { packages: ['corechart'] });
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('number', 'Day');
data.addColumn('number', 'Guardians of the Galaxy');
data.addColumn('number', 'The Avengers');
data.addColumn('number', 'Transformers: Age of Extinction');
data.addRows([
[1, 37.8, 80.8, 41.8],
[2, 30.9, 69.5, 32.4],
[3, 25.4, 57, 25.7],
[4, 11.7, 18.8, 10.5],
[5, 11.9, 17.6, 10.4],
[6, 8.8, 13.6, 7.7],
[7, 7.6, 12.3, 9.6],
[8, 12.3, 29.2, 10.6],
[9, 16.9, 42.9, 14.8],
[10, 12.8, 30.9, 11.6],
[11, 5.3, 7.9, 4.7],
[12, 6.6, 8.4, 5.2],
[13, 4.8, 6.3, 3.6],
[14, 4.2, 6.2, 3.4]
]);
var options = {
chart: {
title: 'Box Office Earnings in First Two Weeks of Opening',
subtitle: 'in millions of dollars (USD)'
},
series: {
0: { lineWidth: 1 },
1: { lineWidth: 1 },
2: { lineWidth: 1 }
},
width: 900,
height: 500
};
var chart = new google.visualization.LineChart(document.getElementById('chart'));
google.visualization.events.addListener(chart, 'select', function() { highlightLine(chart,data, options); });
chart.draw(data, options);
}
function highlightLine(chart,data,options) {
var selectedLineWidth = 4;
var selectedItem = chart.getSelection()[0];
//reset series line width to default value
for(var i in options.series) {
options.series[i].lineWidth = 1;
}
options.series[selectedItem.column-1].lineWidth = selectedLineWidth; //set selected line width
chart.draw(data, options); //redraw
}
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<div id="chart"></div>
我有一个复杂的折线图,我想在将鼠标移到数据集上时突出显示(加粗)线条。事件 "select" 和 "onmouseover" 我可以捕捉到,但我如何动态更改数据集的线宽?或者是否有其他可能性来突出显示所选行?
根据 Customizing Lines,Google 图表中的行可以通过两种不同的方式自定义:使用 colors
选项更改图表调色板,或使用 series
选项指定特定系列的颜色。
以下示例演示了如何在选择事件中突出显示行:
google.load('visualization', '1.1', { packages: ['corechart'] });
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('number', 'Day');
data.addColumn('number', 'Guardians of the Galaxy');
data.addColumn('number', 'The Avengers');
data.addColumn('number', 'Transformers: Age of Extinction');
data.addRows([
[1, 37.8, 80.8, 41.8],
[2, 30.9, 69.5, 32.4],
[3, 25.4, 57, 25.7],
[4, 11.7, 18.8, 10.5],
[5, 11.9, 17.6, 10.4],
[6, 8.8, 13.6, 7.7],
[7, 7.6, 12.3, 9.6],
[8, 12.3, 29.2, 10.6],
[9, 16.9, 42.9, 14.8],
[10, 12.8, 30.9, 11.6],
[11, 5.3, 7.9, 4.7],
[12, 6.6, 8.4, 5.2],
[13, 4.8, 6.3, 3.6],
[14, 4.2, 6.2, 3.4]
]);
var options = {
chart: {
title: 'Box Office Earnings in First Two Weeks of Opening',
subtitle: 'in millions of dollars (USD)'
},
series: {
0: { lineWidth: 1 },
1: { lineWidth: 1 },
2: { lineWidth: 1 }
},
width: 900,
height: 500
};
var chart = new google.visualization.LineChart(document.getElementById('chart'));
google.visualization.events.addListener(chart, 'select', function() { highlightLine(chart,data, options); });
chart.draw(data, options);
}
function highlightLine(chart,data,options) {
var selectedLineWidth = 4;
var selectedItem = chart.getSelection()[0];
//reset series line width to default value
for(var i in options.series) {
options.series[i].lineWidth = 1;
}
options.series[selectedItem.column-1].lineWidth = selectedLineWidth; //set selected line width
chart.draw(data, options); //redraw
}
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<div id="chart"></div>