绘制 Google 具有多个缺失值的折线图
Draw Google Line Chart with multiple missing values
我从 Google 折线图参考中复制了这段代码并做了一些小改动:
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('number', 'Dag');
data.addColumn('number', 'Målvikt');
data.addColumn('number', 'Uppmätt vikt');
data.addRows([
[1, 37.8, 55.0],
[2, null, 69.5],
[3, null, 57],
[4, null, 18.8],
[5, null, 17.6],
[6, null, 13.6],
[7, null, 12.3],
[8, null, 29.2],
[9, null, 42.9],
[10, null, 30.9],
[11, null, 7.9],
[12, null, 8.4],
[13, null, 6.3],
[14, 30.8, 6.2]
]);
var options = {
chart: {
title: 'Box Office Earnings in First Two Weeks of Opening',
subtitle: 'in millions of dollars (USD)',
interpolateNulls: true
},
width: 900,
height: 500
};
var chart = new google.charts.Line(document.getElementById('linechart_material'));
chart.draw(data, options);
}
我的第一行根本没有生成。
如您所见,我只想为名为 "Målvikt" 的曲线提供第一个和最后一个值,并在它们之间画一条直线。我找到了 this related question 并添加了 interpolateNulls: true
但实际上它并没有解决我的问题。
然后我将除一个以外的所有空值都更改为某个值,但它的邻居之间仍然没有线。我做错了什么?
似乎 google.charts.Line
组件不支持 interpolateNulls
选项。
其次,指定 interpolateNulls
选项时有错字。
由于interpolateNulls
属性根据Configuration Options不属于chart
属性,行:
var options = {
chart: {
interpolateNulls: true
}
};
应替换为:
var options = {
interpolateNulls: true
};
话虽如此,我建议使用 corechart
包中的 google.visualization.LineChart
而不是 line
包中的 google.charts.Line
组件。在这种情况下,可以应用 interpolateNulls
选项,如下所示:
工作示例
google.load('visualization', '1.1', { packages: ['corechart'] });
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('number', 'Dag');
data.addColumn('number', 'Målvikt');
data.addColumn('number', 'Uppmätt vikt');
data.addRows([
[1, 37.8, 55.0],
[2, null, 69.5],
[3, null, 57],
[4, null, 18.8],
[5, null, 17.6],
[6, null, 13.6],
[7, null, 12.3],
[8, null, 29.2],
[9, null, 42.9],
[10, null, 30.9],
[11, null, 7.9],
[12, null, 8.4],
[13, null, 6.3],
[14, 30.8, 6.2]
]);
var options = {
title: 'Box Office Earnings in First Two Weeks of Opening',
subtitle: 'in millions of dollars (USD)',
interpolateNulls: true,
width: 900,
height: 500
};
//var chart = new google.charts.Line(document.getElementById('linechart_material'));
var chart = new google.visualization.LineChart(document.getElementById('linechart_material'));
chart.draw(data, options);
}
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<div id="linechart_material" style="width: 640px; height: 480px"></div>
我从 Google 折线图参考中复制了这段代码并做了一些小改动:
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('number', 'Dag');
data.addColumn('number', 'Målvikt');
data.addColumn('number', 'Uppmätt vikt');
data.addRows([
[1, 37.8, 55.0],
[2, null, 69.5],
[3, null, 57],
[4, null, 18.8],
[5, null, 17.6],
[6, null, 13.6],
[7, null, 12.3],
[8, null, 29.2],
[9, null, 42.9],
[10, null, 30.9],
[11, null, 7.9],
[12, null, 8.4],
[13, null, 6.3],
[14, 30.8, 6.2]
]);
var options = {
chart: {
title: 'Box Office Earnings in First Two Weeks of Opening',
subtitle: 'in millions of dollars (USD)',
interpolateNulls: true
},
width: 900,
height: 500
};
var chart = new google.charts.Line(document.getElementById('linechart_material'));
chart.draw(data, options);
}
我的第一行根本没有生成。
如您所见,我只想为名为 "Målvikt" 的曲线提供第一个和最后一个值,并在它们之间画一条直线。我找到了 this related question 并添加了 interpolateNulls: true
但实际上它并没有解决我的问题。
然后我将除一个以外的所有空值都更改为某个值,但它的邻居之间仍然没有线。我做错了什么?
似乎 google.charts.Line
组件不支持 interpolateNulls
选项。
其次,指定 interpolateNulls
选项时有错字。
由于interpolateNulls
属性根据Configuration Options不属于chart
属性,行:
var options = {
chart: {
interpolateNulls: true
}
};
应替换为:
var options = {
interpolateNulls: true
};
话虽如此,我建议使用 corechart
包中的 google.visualization.LineChart
而不是 line
包中的 google.charts.Line
组件。在这种情况下,可以应用 interpolateNulls
选项,如下所示:
工作示例
google.load('visualization', '1.1', { packages: ['corechart'] });
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('number', 'Dag');
data.addColumn('number', 'Målvikt');
data.addColumn('number', 'Uppmätt vikt');
data.addRows([
[1, 37.8, 55.0],
[2, null, 69.5],
[3, null, 57],
[4, null, 18.8],
[5, null, 17.6],
[6, null, 13.6],
[7, null, 12.3],
[8, null, 29.2],
[9, null, 42.9],
[10, null, 30.9],
[11, null, 7.9],
[12, null, 8.4],
[13, null, 6.3],
[14, 30.8, 6.2]
]);
var options = {
title: 'Box Office Earnings in First Two Weeks of Opening',
subtitle: 'in millions of dollars (USD)',
interpolateNulls: true,
width: 900,
height: 500
};
//var chart = new google.charts.Line(document.getElementById('linechart_material'));
var chart = new google.visualization.LineChart(document.getElementById('linechart_material'));
chart.draw(data, options);
}
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<div id="linechart_material" style="width: 640px; height: 480px"></div>