最近在做一个医院的项目,需要出一个年度统计图,考虑用EXT做。
需要的效果如图所示:
那么,肯定得有个store,data应该从数据库中取,不过这里做范例用,我们就写死了。
//年度统计的折线图 var ndtjStore = new Ext.data.JsonStore({ fields:['name','num1','num2','num3','num4'], data:[ {name:'一月',num1:3500,num2:3000,num3:3700,num4:4000}, {name:'二月',num1:2000,num2:1500,num3:3800,num4:3000}, {name:'三月',num1:1500,num2:2000,num3:2500,num4:4000}, {name:'四月',num1:500,num2:0,num3:1600,num4:3000}, {name:'五月',num1:3500,num2:4000,num3:2900,num4:4000}, {name:'六月',num1:2000,num2:1500,num3:2900,num4:4000}, {name:'七月',num1:1500,num2:1000,num3:3700,num4:4000}, {name:'八月',num1:500,num2:1000,num3:2500,num4:4000}, {name:'九月',num1:3500,num2:3000,num3:2300,num4:4000}, {name:'十月',num1:2000,num2:2500,num3:2100,num4:3900}, {name:'十一月',num1:1500,num2:2000,num3:2000,num4:3800}, {name:'十二月',num1:500,num2:1000,num3:1500,num4:3700} ] });
然后定义LineChart的Ext.Panel:
var ndtjPanel = new Ext.Panel({ title: '年度统计', renderTo: ndtjDiv, width:'100%', height:300, layout:'fit', style:'margin-left:2%', items:{ xtype: 'linechart', url:'/ext3/resources/charts.swf', store: ndtjStore, xField: 'name', series:[ {type:'line',displayName:'宫颈',yField:'num1',style:{color:0xCCFF00}}, {type:'line',displayName:'卵巢',yField:'num2',style:{color:0xCC0000}}, {type:'line',displayName:'子宫',yField:'num3',style:{color:0x0033FF}}, {type:'line',displayName:'其他',yField:'num4',style:{color:0x66CC00}} ], extraStyle: { legend: { display: 'bottom', padding: 5, font: { family: 'Tahoma', size: 13 } } } } });
series对应多条折线。而displayName和extraStyle的legend对折线进行标注。