我有一张图表有两个视图,第一个视图:6个月,第二个:12个月。所有这两个视图应该具有相同的数据,但实际上它们没有。
首先,让我告诉你我的打印屏幕:
Obs。:它是葡萄牙语,所以我最后会放一些字幕。
所以,这是12个月的图表:
现在让我们看看6个月的图表。这是:
您可以清楚地看到,6个月图表中的最后三个月不再显示为12。
让我告诉你安装所有这些东西的代码。 负责任的代码是:
var someEvolutionChart = {};
someEvolutionChart.container = document.getElementById('chart-div');
someEvolutionChart.setupChartData = function (objects) {
var items = [['Day', 'Visits', 'Received Calls']];
if(objects['objects'].length < 1) {
items.push(['Some text', 0, 0]);
return items;
}
$.each(objects['objects'], function(index, val) {
items.push([val.date, val.visited, val.calls]);
});
return items;
};
someEvolutionChart.getMaxValue = function (objects) {
var max_value = 0;
$.each(objects['objects'], function(index, val) {
max_value = Math.max(max_value, val.visited, val.calls);
});
return max_value;
};
someEvolutionChart.setVAxisMax = function(value, options) {
options['vAxis']['maxValue'] = findMaxAxisValue(value, 0, false);
};
/* The interval is the quantity of months, 6 and 12, but it starts from 0 to 5 and 0 to 11. */
function loadsomeEvolutionChart(interval){
var days = 1000 * 60 * 60 * 24;
var months = days * 30;
var initial_date = new Date();
initial_date = new Date(initial_date - (months * interval));
var period = initial_date.getFullYear() + "-" + (initial_date.getMonth() + 1);
var spinner = new Spinner({
'top': '100'
}).spin(someEvolutionChart.container);
var url = '/api/v1/.../?format=json&period__gte=' + period;
$.getJSON(url, someEvolutionChart.callback);
}
someEvolutionChart.callback = function (objects) {
var items = someEvolutionChart.setupChartData(objects);
var max_value = someEvolutionChart.getMaxValue(objects);
var data = google.visualization.arrayToDataTable(items);
var options = {
pointSize: 5,
height: 300,
chartArea: { width: "100%", left: 40, top: 20 },
legend: { position: "bottom" },
bar: { groupWidth: 50 },
fontSize: 12,
vAxis: {
minValue: 0,
viewWindowMode: "explicit",
viewWindow: { min: 0 }
},
hAxis: { },
colors: [chart_color_scheme.blue, chart_color_scheme.brown]
};
someEvolutionChart.setVAxisMax(max_value, options);
setHAxisFontSize(data, options);
var chart = new google.visualization.ColumnChart(someEvolutionChart.container);
chart.draw(data, options);
};
$(".reload-chart").click(function(){
var item_header = $(this).parent().parent().parent().find(".dropdown-toggle");
item_header.html($(this).text() + ' <i class="icon-chevron-down"></i>');
var interval = $(this).attr('data-interval');
loadsomeEvolutionChart(interval);
});
屏幕截图明确表示有什么问题。所以,如果你曾经遇到过这个问题,那么你就是有帮助的人。我会很有意思的。谢谢你!
答案 0 :(得分:2)
您似乎正在为不同的时间间隔创建不同的数据集:
url:
/api/v1/.../?format=json&period__gte=2013-12
url: /api/v1/.../?format=json&period__gte=2013-6
url: /api/v1/.../?format=json&period__gte=2012-12
。不同的一年。我手动构建json文件,并且使用您的代码生成的图表具有相同的数据,因此问题出在另一方面:您作为objects
数据发送的内容。
参见图表,间隔为12,间隔为6,范围为7-12。 x轴上的数字应该是几个月,但我不想花太多时间来完全正确。