我有一个日期和分数的数据集,每月一个分数,看起来像这样:
Date Score
...
11/16/2012 14.30
12/14/2012 14.40
01/25/2013 12.10
02/22/2013 12.30
03/22/2013 16.10
04/26/2013 13.60
05/24/2013 16.80
06/21/2013 16.50
07/26/2013 16.20
08/23/2013 16.00
09/27/2013 13.60
10/25/2013 12.60
11/29/2013 8.00
我正在使用ZingChart在折线图上显示这些数据。我正在尝试为用户提供完全自定义功能,包括将数据从每月(默认)更改为季度或半年度的功能。如果用户选择“季度”,它应该只显示每3个月(向后移动 - 所以它将显示11 / 29,8 / 23,5 / 24等数据......)。
我怎样才能让ZingChart只显示每一个点? (并轻松地在这些增量之间切换)
答案 0 :(得分:5)
我发现这是一个较旧的问题,但希望如果您仍在与ZingChart合作,我的回答将对您有所帮助。
您可以通过调用setseriesdata api方法来修改系列数据,以便仅在用户更改间隔时显示所需的点。在this demo中,我实施了一个简单的HTML <select>
元素来创建下拉菜单。
<select id="interval">
<option value=1>Monthly</option>
<option value=2>Quarterly</option>
<option value=3>Semi-Annually</option>
</select>
我使用JQuery .change()事件在下拉菜单中进行更改,并根据选择的选项更改系列数据。
$('#interval').change(function(){
var select = document.getElementById("interval");
var selVal = select.options[select.selectedIndex].value;
if(selVal==1){
zingchart.exec("zc", "setseriesdata", {
"plotindex":0,
"data":{
"values":[[1353024000000,14.3],[1355443200000,14.4],[1359072000000,12.1],[1361491200000,12.3],[1363910400000,16.1],[1366934400000,13.6],[1369353600000,16.8],[1371772800000,16.5],[1374796800000,16.2],[1377216000000,16.0],[1380240000000,13.6],[1382659200000,12.6],[1385683200000,8.0]]
}
});
}
else if(selVal==2){
//setseriesdata API call with quarter data here
}
else if(selVal==3){
//setseriesdata API call with semi-annual data here
}
});
还有一些事情:
您可以使用&#34;镜像&#34;您的&#34; scale-x&#34;中的布尔属性反对按该比例反转数据的对象。
ZingChart使用Unix时间(以毫秒为单位)表示时间/日期系列。
请务必查看演示的页面来源以查看完整代码。