我有一个XML,其中包含x轴中的“日期”和样条线系列的数据点。 xaxis:包含当前日期的最后一年日期(仅限市场日),表示一年250天。 系列:每个日期250点
新:(我删除了所有<samples>
0)
现在dates
和sample
的数字不均匀。我可以绘制这些数据吗?
我的XML:
<categories>
<dates>2014-10-10</dates>
.........
<dates>2015-10-10</dates>
</categories>
<series>
<name>Apples</name>
<data>
<sample>67</sample>
....
</data>
</series>
<series>
<name>Mangoes</name>
<data>
<sample>10</sample>
<sample>67</sample>
....
</data>
</series>
OLD:
我的XML:
<categories>
<dates>2014-10-10</dates>
.........
<dates>2015-10-10</dates>
</categories>
<series>
<name>Apples</name>
<data>
<sample>0</sample>
<sample>0</sample>
<sample>67</sample>
....
</data>
</series>
<series>
<name>Mangoes</name>
<data>
<sample>10</sample>
<sample>0</sample >
<sample>67</sample>
....
</data>
</series>
我的JQuery:
$xml.find("dates").each (function(i,cat){
options.xAxis.categories.push($(cat).text());
});
$xml.find('series').each (function(i,series){
var s = {
name : $ (series).find('name').text(),
data: []
}
$(series).find('data sample').each (function(i,sample){
s.data.push($(sample).text());
});
});
options.series.push(s);
我将每个样本分成不同的系列,因此每个系列的第一个样本与第一个
日期。 现在我必须从所有系列的'sample'中仅收集非零值来绘制
反对相应的日期。 那可能吗?请指导我。提前谢谢。
答案 0 :(得分:1)
您可以在设置系列后(在选项对象中)执行此操作。
一开始你应该通过ie $ .each()函数迭代你拥有的所有类别。
$.each(options.xAxis.categories, function(i, cat){}
在此函数内部创建一个容器,用于存储具有实际类别索引索引的所有系列数据的总和。然后使用each()迭代所有系列,并添加实际索引上的每个数据值。
$.each(options.xAxis.categories, function(i, cat){
sum=0;
$.each(options.series, function(j,data){
sum+=data.data[i];
});
检查sum是否等于0.在true上使用splice(index,1)删除实际索引上的类别,其中索引均值索引开始拼接,1表示拼接单元格数。同时使用each()迭代所有序列,并使用splice(index,1)删除索引上的每个数据单元。
if(x===0){
options.xAxis.categories.splice(i,1);
$.each(options.series, function(j,data){
data.data.splice(i,1);
});
}
所有代码如下所示:
var x;
$.each(options.xAxis.categories, function(i, cat){
x=0;
$.each(options.series, function(j,data){
x+=data.data[i];
});
if(x===0){
options.xAxis.categories.splice(i,1);
$.each(options.series, function(j,data){
data.data.splice(i,1);
});
}
});