我正在尝试使用ExtJS 4在折线图上绘制三个点,但没有一个点显示。我在控制台中没有收到任何Javascript错误。谁能告诉我我做错了什么?
var chartArray = [ {"date1":"2012-01-22", "count":1}, {"date1":"2012-01-23", "count":2}, {"date1":"2012-01-24", "count":3} ]; Ext.onReady(function() { var store1 = new Ext.data.ArrayStore({ fields: [ {name: 'date1', type: 'date', dateFormat: 'Y-m-d'}, {name: 'count', type: 'data'} ], data: chartArray }); Ext.create('widget.panel', { width: 500, height: 400, renderTo: 'chart1', layout: 'fit', items: { xtype: 'chart', animate: true, store: store1, insetPadding: 30, legend: { position: 'bottom' }, axes: [ { type: 'Numeric', minimum: 0, maximum: 10, position: 'left', fields: ['date1'], title: false, grid: { stroke: '#0F0', fill: '#0F0', 'stroke-width': 5 }, label: { font: '10px Arial', fill: '#80858D', color: '#FFFFFF', renderer: function(val) { return val; } } }, { type: 'Category', position: 'bottom', color: '#FFFFFF', grid: false, fields: ['date1'], fill: '#0F0', title: 'Daily Count', label: { font: '11px Arial', color: '#FFFFFF', fill: '#80858D', rotate: {degrees: 315}, renderer: function(date) { console.log("Date: " + date); return date; } } } ], series: [ { type: 'line', axis: 'left', xField: 'date1', yField: 'count', style: { fill: '#f47d23', stroke: '#f47d23', 'stroke-width': 3 }, markerConfig: { type: 'circle', size: 2, radius: 2, 'stroke-width': 0, fill: '#38B8BF', stroke: '#38B8BF' } } ] } }); });
这是没有ExtJS的html包括:
<!doctype html> <html> <head> <title>Line</title> <script type="text/javascript" src="line.js"></script> </head> <body> <div id="chart1"></div> </body> </html>
答案 0 :(得分:3)
首先,将您的ArrayStore更改为JsonStore,您的代码将起作用。
但无论如何,我不建议在ExtJs4中使用类别或时间轴。对Sencha感到羞耻,他们仍然无法使其稳定运行。我花了大约2个星期试图用时间X轴实现简单的折线图但没有成功。
然后我在这里找到了一个解决方案 - 用数字轴替换时间/类别轴,然后以时间戳的形式加载日期。您始终可以将时间戳转换为日期字符串(在标签和提示中)。我现在对这种方法感到满意,图表渲染速度更快!
答案 1 :(得分:0)
Ext JS 4.0.7有时间轴问题。这可能是你的问题。据报道here。也许你应该尝试使用v4.0.2,看它是否有效......