我正在使用 Ext4 js 创建图表。 我的图表是显示事件随时间演变的折线图,因此我的底轴是时间轴:
{
type: 'Time',
position: 'bottom',
grid: grid,
fields: 'name',
title: false,
dateFormat: 'd/m/y',
groupBy: 'year,month,day',
aggregateOp: 'sum',
label: {
orientation: 'horizontal',
rotate: {
degrees: label_rotation
}
}
我有更改比例的链接。 单击这些链接之一应更改日期格式和分组依据选项。 代码如下:
scaleGroups = {
'DAY': {
dateFormat: 'd/m/y',
groupBy: 'year,month,day'
},
'MONTH' :{
dateFormat: 'M Y',
groupBy: 'year,month'
},
'YEAR' :{
dateFormat: 'Y',
groupBy: 'year'
}
};
function changeChartScale(chart_id, scale) {
var chart = Ext.getCmp(chart_id);
var axis = chart.axes.get(1);
selectedGroup = scaleGroups[scale];
axis.dateFormat = selectedGroup.dateFormat;
axis.groupBy = selectedGroup.groupBy;
chart.redraw();
}
问题在于,从一个规模到另一个规模的变化,例如从几天到几个月的变化,以前的标签仍然存在。所以该行是正确的,但我看到了日期标签和月份标签。
有谁知道为什么吗?
提前致谢, 萨布丽娜
更新 07/06/2011: 示例 html 页面上的相同代码,仅导入此 javascript 库,可以正常工作。
也许这是与我使用的其他 javascript 库(Jquery、googlempas...)的兼容性问题。 有人遇到过同样的问题吗?
最佳答案
我找到了一种解决方法,因为 Chart.redraw() 方法不会自动重绘轴比例/值。
为坐标区设置新的最大值,然后在重新绘制图表之前使用 axis.drawAxis() 方法...
当用户对绑定(bind)网格上的列进行排序时,我的图表将重新绘制。
chart.axes.items[0].fields = [column.dataIndex];
chart.series.items[0].yField = [column.dataIndex];
var s = Ext.data.StoreManager.lookup('myStore');
var max = s.max(column.dataIndex);
chart.axes.items[0].maximum = max;
chart.axes.items[0].drawAxis();
chart.redraw();
关于charts - ExtJs图表带时间轴,更新问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6203324/