`
atian25
  • 浏览: 469697 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

ExtJS 3.0 Chart 小用一下

阅读更多

实际上就是YUI CHART, 具体的文档可以看: http://developer.yahoo.com/yui/charts/

而YUI CHART就是把Yahoo的Astra-Chart给封装了下而已:http://developer.yahoo.com/flash/astra-flash/

 

先上个图:



 

代码如下:

1.定义store

 

//定义store
var chartStore = new Ext.data.JsonStore({
      root:'data',
      fields:[
        {
          //似乎有bug,labelfunction不好用,就自己处理一个field来当x轴标签
          name:'label',
          mapping:'endTime',
          convert:function(v,record){
            return Date.parseDate(v, 'Y-m-d H:i:s').format('H:i');
          }
        },
        {name:'startTime',type:'date',dateFormat:'Y-m-d H:i:s'},
        {name:'endTime',type:'date',dateFormat:'Y-m-d H:i:s'},
        {name:'alarmCount',type:'int'},
        {name:'eventCount',type:'int'}
      ],
      sortInfo:{field: 'startTime', direction: 'ASC'}
    });

//测试数据
var obj={
        startTime:'2009-06-22 01:00:00',
        endTime:'2009-06-23 01:00:00',
        interval:60,
        data:[
          {startTime:'2009-06-22 01:00:00',endTime:'2009-06-22 02:00:00',alarmCount:02,eventCount:15},
          {startTime:'2009-06-22 02:00:00',endTime:'2009-06-22 03:00:00',alarmCount:03,eventCount:0},
          {startTime:'2009-06-22 03:00:00',endTime:'2009-06-22 04:00:00',alarmCount:04,eventCount:15},
          {startTime:'2009-06-22 04:00:00',endTime:'2009-06-22 05:00:00',alarmCount:15,eventCount:25},
          {startTime:'2009-06-22 05:00:00',endTime:'2009-06-22 06:00:00',alarmCount:06,eventCount:15},
          {startTime:'2009-06-22 06:00:00',endTime:'2009-06-22 07:00:00',alarmCount:0,eventCount:20},
          {startTime:'2009-06-22 07:00:00',endTime:'2009-06-22 08:00:00',alarmCount:0,eventCount:0},
          {startTime:'2009-06-22 08:00:00',endTime:'2009-06-22 09:00:00',alarmCount:09,eventCount:15},
          {startTime:'2009-06-22 09:00:00',endTime:'2009-06-22 10:00:00',alarmCount:10,eventCount:15},
          {startTime:'2009-06-22 10:00:00',endTime:'2009-06-22 11:00:00',alarmCount:11,eventCount:25},
          {startTime:'2009-06-22 11:00:00',endTime:'2009-06-22 12:00:00',alarmCount:12,eventCount:75},
          {startTime:'2009-06-22 12:00:00',endTime:'2009-06-22 13:00:00',alarmCount:13,eventCount:12},
          {startTime:'2009-06-22 13:00:00',endTime:'2009-06-22 14:00:00',alarmCount:14,eventCount:10},
          {startTime:'2009-06-22 14:00:00',endTime:'2009-06-22 15:00:00',alarmCount:45,eventCount:60},
          {startTime:'2009-06-22 15:00:00',endTime:'2009-06-22 16:00:00',alarmCount:16,eventCount:25},
          {startTime:'2009-06-22 16:00:00',endTime:'2009-06-22 17:00:00',alarmCount:17,eventCount:8},
          {startTime:'2009-06-22 17:00:00',endTime:'2009-06-22 18:00:00',alarmCount:18,eventCount:47},
          {startTime:'2009-06-22 18:00:00',endTime:'2009-06-22 19:00:00',alarmCount:29,eventCount:35},
          {startTime:'2009-06-22 19:00:00',endTime:'2009-06-22 20:00:00',alarmCount:20,eventCount:15},
          {startTime:'2009-06-22 20:00:00',endTime:'2009-06-22 21:00:00',alarmCount:21,eventCount:10},
          {startTime:'2009-06-22 21:00:00',endTime:'2009-06-22 22:00:00',alarmCount:22,eventCount:5},
          {startTime:'2009-06-22 22:00:00',endTime:'2009-06-22 23:00:00',alarmCount:53,eventCount:15},
          {startTime:'2009-06-22 23:00:00',endTime:'2009-06-23 00:00:00',alarmCount:24,eventCount:33},
          {startTime:'2009-06-23 00:00:00',endTime:'2009-06-23 01:00:00',alarmCount:11,eventCount:0}
        ]
      }

//载入数据
chartStore.loadData(obj);
 

 

2.定义chart

 

var chartWin = new Ext.Window({
      title:'::近24小时告警分布图表::',
      layout:'fit',
      closeAction:'hide',
      plain: true,
      height:300,
      width:1000,
      items:[{
        xtype:'linechart',
        url: '/js/extjs/3.0/resources/charts.swf',
        store:chartStore,
        //xField: 'label',
        //yField:'alarmCount',
        
        //定义tip内容
        tipRenderer : function(chart, record){
          var startTime = record.get('startTime').format('y-m-d H:i');
          var endTime = record.get('endTime').format('y-m-d H:i');
          var str = String.format('开始时间:{0}\n结束时间:{1}\n告警数:{2}\n事件数:{3}',startTime,endTime,record.get('alarmCount'),record.get('eventCount'))
          return str;
        },
        //定义两个图表,一个是柱状图,一个是折线图
        series: [{
            type: 'column',
            displayName: '事件个数',
            xField: 'label',
            yField: 'eventCount',
            style: {
              color:0x99BBE8,
              size: 20
            }
        },{
            type:'line',
            displayName: '告警',
            xField: 'label',
            yField: 'alarmCount',
            style: {
              color: 0x15428B
            }
        }],
        //定义图表样式
        chartStyle: {
          //不知道为啥没出来这个图示
          legend:{
            display: "top"
          },
          xAxis: {
            color: 0x69aBc8,
            majorTicks: {color: 0x69aBc8, length:4},
            minorTicks: {color: 0x69aBc8, length: 2},
            majorGridLines:{size: 1, color: 0xeeeeee}
          },
          yAxis: {
            color: 0x69aBc8,
            majorTicks: {color: 0x69aBc8, length: 4},
            minorTicks: {color: 0x69aBc8, length: 2},
            majorGridLines: {size: 1, color: 0xdfe8f6}
          }
        }
      }]
    });
 

更多的样式定义可以看上面给出的连接。

 

 

PS: 有谁知道如何偏移图表内容不?

就是想把整个图表的内容左移一点,以便让标签和gridline处于每个点的图表的中间.

如下图,我是希望柱状是居中的,也就是以标签为中心,两边扩展
翻了yui chart的文档,没找到接口.

 

有知道的兄弟帮忙回答下: http://www.iteye.com/problems/19444


 

090712 补充:

ExtJS3.0正式版后就解决我的问题了...看来估计是chart swf的bug..

如下图,没有修改任何代码,图表就居中,而且图示也出来了.


  • 大小: 45.9 KB
  • 大小: 19.4 KB
  • 大小: 51.4 KB
分享到:
评论
17 楼 wanghaitao 2012-09-20  
amygg 写道
不错,在服务器下运行就ok了,但是不管是ie还是其他浏览器必须指定swf。

很棒。。
16 楼 lijunlong 2011-12-03  
15 楼 goodfifa08 2009-09-25  
atian25 写道
firebug检查下你的swf的路径是否正确

<object id="extflashcmp1001" height="100%" width="100%" type="application/x-shockwave-flash" data="http://localhost:8088/Project/js/Ext/resources/charts.swf" style="visibility: visible;">
<param name="allowScriptAccess" value="always"/>
<param name="bgcolor" value="#ffffff"/>
<param name="wmode" value="opaque"/>
<param name="flashvars" value="allowedDomain=localhost&elementID=extflashcmp1001&eventHandler=Ext.FlashEventProxy.onEvent"/>
</object>


路径是对的

14 楼 atian25 2009-09-24  
firebug检查下你的swf的路径是否正确
13 楼 goodfifa08 2009-09-24  
amygg 写道
不错,在服务器下运行就ok了,但是不管是ie还是其他浏览器必须指定swf。

我在ff里面指定了URL也无法显示:
Ext.chart.Chart.CHART_URL = '../Ext/resources/charts.swf';

12 楼 love_cy 2009-09-24  
legend:{ 
   display: "top" 
},

这个是“事件个数”和“告警个数”的标示吧。
11 楼 amygg 2009-09-22  
不错,在服务器下运行就ok了,但是不管是ie还是其他浏览器必须指定swf。
10 楼 goodfifa08 2009-09-22  
并不是url的问题,是浏览器,用谷歌浏览器就显示不出来,我换成IE和遨游都可以显示。
结果不用指定swf都行,但是不知道会不会有什么影响。
9 楼 goodfifa08 2009-09-22  
我郁闷,example-charts-charts.js的第一个panel没有指定URL!!!
加上url就行了。
8 楼 atian25 2009-09-21  
指定下swf的位置:
如url: '/js/extjs/3.0/resources/charts.swf',
7 楼 goodfifa08 2009-09-21  

$(document).ready(function(){
				var store = new Ext.data.JsonStore({
					fields: ['name', 'visits', 'views'],
					data: [{
						name: 'Jul 07',
						visits: 245000,
						views: 3000000
					}, {
						name: 'Aug 07',
						visits: 240000,
						views: 3500000
					}, {
						name: 'Sep 07',
						visits: 355000,
						views: 4000000
					}, {
						name: 'Oct 07',
						visits: 375000,
						views: 4200000
					}, {
						name: 'Nov 07',
						visits: 490000,
						views: 4500000
					}, {
						name: 'Dec 07',
						visits: 495000,
						views: 5800000
					}, {
						name: 'Jan 08',
						visits: 520000,
						views: 6000000
					}, {
						name: 'Feb 08',
						visits: 620000,
						views: 7500000
					}]
				});
				
				// extra extra simple
				new Ext.Panel({
					title: 'ExtJS.com Visits Trend, 2007/2008 (No styling)',
					renderTo: 'container',
					width: 500,
					height: 300,
					layout: 'fit',
					
					items: {
						xtype: 'linechart',
						store: store,
						xField: 'name',
						yField: 'visits',
						listeners: {
							itemclick: function(o){
								var rec = store.getAt(o.index);
								Ext.example.msg('Item Selected', 'You chose {0}.', rec.get('name'));
							}
						}
					}
				});
				
			});



这是我在容器里面加的,现在不是提示红色字体的错误了,而是一片空白
6 楼 atian25 2009-09-21  
goodfifa08 写道
我直接打开3.0example里的charts,显示不出来曲线图,只有一些红色的字:
communication between YUI Charts and JavaScript. YUI Charts must be served from HTTP and cannot be viewed locally with file:/// protocol unless location is trusted by Flash Player.
这是什么原因呢?


提示文字写的很清楚了,只能在web容器下执行.
你直接双击,本地播放是不行的.

如果你写过flash就知道了.
5 楼 goodfifa08 2009-09-21  
我直接打开3.0example里的charts,显示不出来曲线图,只有一些红色的字:
communication between YUI Charts and JavaScript. YUI Charts must be served from HTTP and cannot be viewed locally with file:/// protocol unless location is trusted by Flash Player.
这是什么原因呢?
4 楼 会飞的狗 2009-08-23  
atian25 写道
实际上就是YUI CHART, 具体的文档可以看: http://developer.yahoo.com/yui/charts/

而YUI CHART就是把Yahoo的Astra-Chart给封装了下而已:[url]http://developer.yahoo.com/flash/astra-flash/ [/url]

本来希望他们能自己搞提要的华丽的图表的,封装别人的东西。。而已
3 楼 atian25 2009-08-06  
实际上就是YUI CHART, 具体的文档可以看: http://developer.yahoo.com/yui/charts/

而YUI CHART就是把Yahoo的Astra-Chart给封装了下而已:[url]http://developer.yahoo.com/flash/astra-flash/ [/url]
2 楼 yourgame 2009-08-04  
不错.学习了:)
1 楼 damoqiongqiu 2009-06-26  
效果不错,关注。

相关推荐

    extJS3.0完整包

    extJS3.0 extJS3.0 extJS3.0 extJS3.0 extJS3.0 extJS3.0 extJS3.0

    ExtJS3.0中文API

    绝对的ExtJS3.0中文API,本人在网上找了好久才找到的,在此奉献给大家!!解压后有30多兆!!

    ExtJS3.0 源码分析与开发实例宝典

    ExtJS3.0 源码分析与开发实例宝典

    extjs3.0开发包含示例api

    示例代码是学习EXTJS 3.0的重要途径,通过查看和分析示例,开发者可以快速掌握各种组件的使用方法和功能。示例通常包括以下内容: 1. **基础组件示例**:如创建基本的按钮、文本框、下拉列表等。 2. **高级组件...

    EXTJS3.0登陆DEMO

    EXTJS3.0登录DEMO是一个基于EXTJS...对于理解EXTJS3.0的API使用,以及STRUTS2、SPRING、IBATIS在实际项目中的工作原理都有很大帮助。同时,这个DEMO也强调了前端与后端的协作,对于提升整体开发技能是非常有价值的。

    Extjs3.0 中文API帮助文档

    Extjs3.0中文API文档 够详细 够详细 够详细

    extjs3.0 组件

    EXTJS 3.0 版本是其历史上的一个重要里程碑,提供了丰富的组件库和强大的功能,为开发人员提供了构建复杂Web界面的能力。在这个课程中,我们将深入探讨EXTJS 3.0 的核心组件,这些组件是构建用户界面的基础。 首先...

    Extjs3.0 常用组件介绍及怎么安装开发利器Spket

    **ExtJS 3.0 常用组件介绍** ExtJS 是一款强大的JavaScript库,用于构建富客户端Web应用。在3.0版本中,它提供了一系列丰富的组件,这些组件可以帮助开发者构建功能丰富的用户界面。以下是一些ExtJS 3.0中的常用...

    EXTJS3.0中文API (离线)

    在使用EXTJS 3.0中文API.CHM时,开发者可以通过搜索功能查找所需的方法或类,理解其用法和参数,加快开发进程。"下载说明.htm"可能是关于如何获取和安装这个API文档的指南,而"readme.txt"通常包含了额外的信息,如...

    extjs3.0 中扩展的日期控件

    由于extjs3.0自己封装的时间不能够选择时分秒,给大家开发带来了一些麻烦。虽然网上有ext2.0的日期扩展控件,但...公司现在项目正用了,因此我就对extjs3.0时间控件的扩展,实现了可选择时分秒功能。希望对大家有帮助。

    EXTJS3.0多文件上传组件

    EXTJS3.0是一款强大的JavaScript框架,用于构建富客户端应用程序。它提供了丰富的组件库和灵活的布局管理,使得开发者能够创建功能丰富的Web应用界面。在"EXTJS3.0多文件上传组件"中,我们主要关注的是如何利用EXTJS...

    extjs3.0 API 中英

    这个压缩包包含了ExtJS 3.0的API文档,分别以中文和英文两种语言提供,对于学习和查阅非常便利。 在ExtJS 3.0的API中,我们可以找到以下几个重要的知识点: 1. **组件系统**:ExtJS的核心是它的组件模型,包括各种...

    ExtJS3.0可视化开发工具

    可视化开发工具对于ExtJS 3.0的使用尤为重要,因为它降低了开发门槛,使得非专业前端开发者也能通过图形化界面设计和配置应用程序。这种工具通常包含以下功能: 1. **界面设计器**:允许用户通过拖放操作创建和排列...

    ExtJS 3.0 API 文档离线包

    此“ExtJS 3.0 API 文档离线包”包含了所有开发者需要了解的关于3.0版本ExtJS框架的详细信息,以便在没有互联网连接的情况下进行学习和开发。 API文档是任何开发工具的核心部分,它提供了一个清晰的指南,解释了库...

    extjs3.0部分插件代码

    在"extjs3.0部分插件代码"这个资料中,我们可以期待学习到关于ExtJS 3.0版本的一些关键插件的实现细节。 首先,让我们关注一下"spinner"这个文件名。在ExtJS中,Spinner是一个常见的组件,它通常用作数值输入框,...

    安装ExtJS3.0开发环境

    在网络上搜集,自己安装成功后在使用的开发环境。因ExtJS3.0和spket-1.6.18.jar的开发包太大不能上传,里面有安装说明和下载路径 ext-jsb2.zip jsb2是最新的。。请所需者取之

    ExtJs3.0API

    ExtJs3.0API,希望对大家有所帮助

    ExtJS 3.0 学习资源

    ExtJS 3.0 学习资源,有兴趣的 可以下载看看!!!!

    extjs3.0框架

    ExtJS 3.0框架是Sencha公司推出的一款基于JavaScript的富客户端开发...不过,需要注意的是,ExtJS 3.0已经相对老旧,最新的版本为ExtJS 7.x,其中包含了许多性能优化和新功能,对于新项目,建议考虑使用更现代的版本。

    extjs3.0开发包以及文档

    extjs框架,学习,开发,extjs3.0开发包以及文档

Global site tag (gtag.js) - Google Analytics