我使用AngularJS和海军报绘制一个条形图:与AngularJS海军报条形图:酒吧没有排队蜱
见的jsfiddle:http://jsfiddle.net/juliejones/DwMwJ/3/
的指令:
App.directive('barChart', function(){
return{
restrict: 'E',
link: function(scope, elem, attrs){
var weekday=new Array();
weekday[0]="Su";
weekday[1]="Mo";
weekday[2]="Tu";
weekday[3]="We";
weekday[4]="Th";
weekday[5]="Fr";
weekday[6]="Sa";
var options = {
bars: {
show: true,
barWidth: 1000 * 60 * 60 * 24 * 0.7,
align: 'center'
},
colors: ["#F90"],
xaxis: {
mode: 'time',
tickSize: [1, 'day'],
minTickSize: [1, 'day'],
tickFormatter: function (val, axis) {
var d = new Date(val);
return weekday[d.getUTCDay()] + '<br />' + d.getUTCDate();
}
},
yaxis: {
minTickSize: 1,
tickDecimals: 0,
min: 0
}
};
var chart = null;
scope.$watch(attrs.ngModel, function(v){
if(!chart){
chart = $.plot(elem, v , options);
elem.show();
}else{
chart.setData(v);
chart.setupGrid();
chart.draw();
}
});
}
};
});
数据(除第一项的值相同外):
var data1 = [[
[1364774400000, ],
[1365206400000, 5],
[1365292800000, 2],
[1365379200000, 2]
]];
var data2 = [[
[1364774400000, 0],
[1365206400000, 5],
[1365292800000, 2],
[1365379200000, 2]
]];
图表外观很好,只要第一个数据点有一个空值。 3个酒吧完美地对准他们的蜱。看到jsFiddle。
单击“更改数据”按钮以加载第一个数据点中具有零值的第二组数据。三根钢筋移动,因此它们不再居中,并且现在远离它们应该在x轴上的位置。
为什么在使用第二组数据时,条形图不会集中在正确的刻度上?我该如何纠正这一点?
编辑:这对AngularJS不参与时完美适合我。见jsFiddle:http://jsfiddle.net/juliejones/fC3zs/1/
在此先感谢!
感谢您的回复,但不是alignTicksWithAxis只有当你有2个Y轴有用吗?一个在左边,一个在右边?无论如何,它似乎并没有帮助我的情况。第二组数据仍然不以tick为中心。在第一组数据中,值为5的条以'Sa 6'为中心。在第二组数据中,该栏位于'Fr 5'的右侧。 – sculptnz 2013-04-08 21:28:54