所以我有一个highcharts设置更换空,我希望能够与0Highcharts - 0
更换空在的jsfiddle你可以看到18和19(周末)没有人做过任何搜索,但它进行下一步。
是否有可能用0代替这些空值,而不是在每一行中都没有那么美观的间隙? 我怀疑我可能不得不使用formatter
标签来执行此操作。
所以我有一个highcharts设置更换空,我希望能够与0Highcharts - 0
更换空在的jsfiddle你可以看到18和19(周末)没有人做过任何搜索,但它进行下一步。
是否有可能用0代替这些空值,而不是在每一行中都没有那么美观的间隙? 我怀疑我可能不得不使用formatter
标签来执行此操作。
Altough Higcharts有connectNulls
选项,它将直接连接前一个值和下一个值。我能想到的唯一方法是对数据进行预处理,将其附加到系列和转换空值为零,这样才读值:
// var seriesdatagorfromsomewhere
for (var i = 0; i < seriesdatagorfromsomewhere.length; i++) {
if (seriesdatagorfromsomewhere[i][1] === null) {
seriesdatagorfromsomewhere[i][1] = 0;
}
}
然后追加的数据与平时一样的系列。
如果你的代码不生成空值,你可以通过两种方式来完成:按照某种方式检查服务器日期中的点,并检查系列之间的点。
这个想法是逐个处理点,得到每一个(日期)的第一个参数。当遇到不存在的日期时,只需将其添加为零值即可。当你到达停止日期时(从服务器或你提出的显示信息的请求,你应该停止processng信息)
另一个是相同的方法,但当任何系列没有价值时停止。与此有关的一个问题是,如果任何系列具有周末的数据,那么您将不会为其创建任何零。
实施例:
// var seriesdatagorfromsomewhere
// var stopdate (from server/request or highest date value from all series)
// var startdate (from server/request or lowest date value from all series)
// var currentseriespos = 0;
while (startdate <= stopdate) {
var date = seriesdatagorfromsomewhere[currentseriespos][0];
if (startdate != date) {
seriesdatagorfromsomewhere.splice(currentseriespos, [startdate, 0]);
}
startdate = increaseOneDay(startdate);
currentseriespos++;
}
未测试。当然循环不会像这样工作,你会得到一个无限循环,但你明白了。
啊,谢谢。您所制作的代码在我感激不尽的情况下不起作用。该系列数据不包含任何空值的条目,因此无法进行比较。它只是忽略它并转到下一组数据。 数据来自数据库,在搜索完成后生成。然后它通过运行SQL查询对它们进行计数,按名称和日期对它们进行分组,以便每天计算一次。因此,检查是否在连续的每一天,如果没有数据,生成0是非常复杂的。我将不得不查看是否有可能在后端的某处添加0代。 – Slopax
哦,我明白了。然后我认为我有另外两个前端解决方案。去编辑。 –
@Slopax编辑。 –