zoukankan      html  css  js  c++  java
  • ExtJS 饼状图报表

    简单的ExtJS饼状图报表。

    先上源码,咱再慢慢解析:

    Ext.onReady(function(){
                    var store = Ext.create('Ext.data.JsonStore', {
                        fields: ['name', 'data'],
                        data: [
                            { 'name': '北京',   'data': 10 },
                            { 'name': '天津',   'data':  5},
                            { 'name': '上海',   'data':  8 },
                            { 'name': '深圳',   'data':  7 },
                            { 'name': '广州',   'data':  6 },
                            { 'name': '济南',   'data':  5 },
                            { 'name': '郑州',   'data':  4 },
                            { 'name': '石家庄',   'data':  3 }
                        ]
                    });
                    Ext.create("Ext.panel.Panel",{
                        600,
                        height:500,
                        title:"饼状图",
                        layout:"fit",
                        renderTo:Ext.getBody(),
                        items:[{
                            xtype:"chart",
                            store:store,
                            animate:true,
                            legend: {
                                position: 'right'
                            },
                            series:[{
                                type:"pie",
                                field:"data",
                                donut:true,
                                showInLegend: true,
                                label:{
                                    display:"name",
                                    contrast:true,
                                },
                                tips:{
                                    trackMouse:true,
                                    renderer:function(storeItem,item){
                                        var total = 0;
                                        store.each(function(rec) {
                                            total += rec.get('data');
                                        });
                                        this.setTitle(storeItem.get("data"));
                                    }
                                },
                                highlight:{
                                    segment:{
                                        margin:20
                                    }
                                },
                                listeners:{
                                    itemclick:function(o){
                                        var rec=store.getAt(o.index);
                                        alert(rec.get("data"));
                                    }
                                }
                                
                            }]
                        }]
                    });
                })

    上述代码便是一个简单的饼状图,数据这里我采用的是本地数据。

    示例效果如下图所示:

    现在我们来解析一下上面的代码:

    里面的store存储数据,这里我就不详细解释了。我这里采用的是本地的数据。

    如效果图所示,我采用了一个panel来包含该饼状图。

    xtype:"chart" :创建一个图表

    series:是为所有图标系列包含公共逻辑抽象类。属性type:"pie",用来表示采用的是饼状报表。

    field:"data":当前饼状图块中的数据值。

    display:"name":如上图所示,是用来显示饼状图中的文字的。

    tips:这里是用来显示鼠标放在饼状图上的时候,给你的一个提示。用来显示当前图块的信息。

    trackMouse:true:此属性设置为true表示提示框跟随你的鼠标而动。

    segment:该属性是用来控制,当鼠标放在当前图块中的时候分开的距离。这里margin一般为20 当数值比20 大或者小的时候则会出现一些空白。具体效果可以自己稍微尝试一下。

    lengend和showInLegend:这两个必须同时设置,操作右侧的小图例。

    itemclick:点击事件。这个事件需要设置在series中,否则无法触发。

    以上是我对这个饼状图的一些个人理解。如有什么不足还请各位大神指教。

  • 相关阅读:
    jQuery形式可以计算,它包含了无线电的变化价格,select价格变化,删除行动态计算加盟
    Codeforces 420 B. Online Meeting
    网站压力测试工具Webbench介绍
    【设计模式】外观模式
    Saiku一个简短的引论
    【iOS】MD5数据加密和网络安全
    FFmpeg资料来源简单分析:libswscale的sws_getContext()
    Unity3D脚本--真实1
    [Android]BaseExpandableListAdapter实现可折叠列表
    如何解决android logcat不打印信息在android开发中
  • 原文地址:https://www.cnblogs.com/dolphin-gjh/p/4146956.html
Copyright © 2011-2022 走看看