Google 图表 - 如何在轴上添加固定刻度
Google Charts - how to add a fixed scale on an axis
我无法正确缩放图表。我的图表以 24 小时格式表示一天中每个小时的数据,这意味着我的折线图上需要数字 0-24。
我已经尝试将 logScale
、minValue
和 maxValue
属性添加到 hAxis
,但没有任何效果。
正如您在图表上看到的,hour
轴不是跨越 0-24
小时的固定轴,而是跨越 9-15
小时的固定轴。
我的数据集中也只有 3 行,分别位于 9
、14
和 15
时间。尽管如此,这些线从 9-14
跨越,就好像它们有值一样;但是那里没有数据,所以线应该是 运行 沿着底部 0
在这两点之间。
如何在我的图表上放置一个固定的水平刻度,并在我的线条上显示每小时的单独值?
这是我的代码:
google.load('visualization', '1.1', {packages: ['line']});
google.setOnLoadCallback(drawChart);
function drawChart()
{
var json = $.getJSON('my JSON data link', function(data)
{
var chartStructure = new google.visualization.DataTable();
var chartData = [];
chartStructure.addColumn('number', 'Hour');
chartStructure.addColumn('number', 'Pageviews');
chartStructure.addColumn('number', 'Unique Pageviews');
chartStructure.addColumn('number', 'Sales');
chartStructure.addColumn('number', 'Earnings in $AUD');
for (i = 0; i < data.length; i++)
{
chartData[i] = [];
chartData[i][0] = parseInt(data[i].hour);
chartData[i][1] = parseFloat(data[i].profit);
chartData[i][2] = parseFloat(data[i].profit);
chartData[i][3] = parseFloat(data[i].sales);
chartData[i][4] = parseFloat(data[i].profit);
// These chartData values are not correct because I am testing
chartStructure.addRows(chartData);
}
var options = {
hAxis: {
'minValue': 0,
'maxValue': 24
}
};
var chart = new google.charts.Line(document.getElementById('todays-total-sales'));
chart.draw(chartStructure, options);
});
}
$(window).resize(function()
{
drawChart();
});
使用viewWindow
.
hAxis: {
title: 'Time',
viewWindow:{
max:1000,
min:-100
}
},
更新
如果您使用的是 MaterialCharts,请注意选项有 different syntax!
为了让您能够使用经典选项,您需要更改
chart.draw(data, options);
到
chart.draw(data, google.charts.Line.convertOptions(options));
HERE 是您更新后的 fiddle.
var options = {
title: "Posted Memes",
width: 450,
height: 300,
is3D:true,
bar: { groupWidth: "95%" },
legend: { position: "none" },
vAxis: {
title: 'No of Memes',
viewWindowMode: 'explicit',
viewWindow: {
max: 180,
min: 0,
interval: 1,
},
}
};
我无法正确缩放图表。我的图表以 24 小时格式表示一天中每个小时的数据,这意味着我的折线图上需要数字 0-24。
我已经尝试将 logScale
、minValue
和 maxValue
属性添加到 hAxis
,但没有任何效果。
正如您在图表上看到的,hour
轴不是跨越 0-24
小时的固定轴,而是跨越 9-15
小时的固定轴。
我的数据集中也只有 3 行,分别位于 9
、14
和 15
时间。尽管如此,这些线从 9-14
跨越,就好像它们有值一样;但是那里没有数据,所以线应该是 运行 沿着底部 0
在这两点之间。
如何在我的图表上放置一个固定的水平刻度,并在我的线条上显示每小时的单独值?
这是我的代码:
google.load('visualization', '1.1', {packages: ['line']});
google.setOnLoadCallback(drawChart);
function drawChart()
{
var json = $.getJSON('my JSON data link', function(data)
{
var chartStructure = new google.visualization.DataTable();
var chartData = [];
chartStructure.addColumn('number', 'Hour');
chartStructure.addColumn('number', 'Pageviews');
chartStructure.addColumn('number', 'Unique Pageviews');
chartStructure.addColumn('number', 'Sales');
chartStructure.addColumn('number', 'Earnings in $AUD');
for (i = 0; i < data.length; i++)
{
chartData[i] = [];
chartData[i][0] = parseInt(data[i].hour);
chartData[i][1] = parseFloat(data[i].profit);
chartData[i][2] = parseFloat(data[i].profit);
chartData[i][3] = parseFloat(data[i].sales);
chartData[i][4] = parseFloat(data[i].profit);
// These chartData values are not correct because I am testing
chartStructure.addRows(chartData);
}
var options = {
hAxis: {
'minValue': 0,
'maxValue': 24
}
};
var chart = new google.charts.Line(document.getElementById('todays-total-sales'));
chart.draw(chartStructure, options);
});
}
$(window).resize(function()
{
drawChart();
});
使用viewWindow
.
hAxis: {
title: 'Time',
viewWindow:{
max:1000,
min:-100
}
},
更新
如果您使用的是 MaterialCharts,请注意选项有 different syntax!
为了让您能够使用经典选项,您需要更改
chart.draw(data, options);
到
chart.draw(data, google.charts.Line.convertOptions(options));
HERE 是您更新后的 fiddle.
var options = {
title: "Posted Memes",
width: 450,
height: 300,
is3D:true,
bar: { groupWidth: "95%" },
legend: { position: "none" },
vAxis: {
title: 'No of Memes',
viewWindowMode: 'explicit',
viewWindow: {
max: 180,
min: 0,
interval: 1,
},
}
};