【问题标题】:How to present the retrieved data on a sencha pie chart如何在煎茶饼图上显示检索到的数据
【发布时间】:2013-03-22 09:54:48
【问题描述】:

我一直在到处寻找可以帮助我的人,因为我无法展示从我为此目的创建的 JSON 数据存储发送到我的 Sencha 饼图的数据。

我正在显示包含以下值集的变量数组的打印形式的以下结果:

Array ([0] => Array ( [0] => 19 [nombre] => 19 [1] => Chargé de mission [type] => Charge de mission )[1] => Array ( [0] => 204 [nombre] => 204 [1] => Pré-adhérent [type] => Pre-adherent )[2] => Array ( [0] => 1 [nombre] => 1 [1] => Administrateur [type] => Administrateur )[3] => Array ( [0] => 25 [nombre] => 25 [1] => Auto-entrepreneur [type] => Auto-entrepreneur )[4] => Array ( [0] => 1157 [nombre] => 1157 [1] => Adhérent [type] => Adherent )[5] => Array ( [0] => 429 [nombre] => 429 [1] => Salarié [type] => Salarie ))

同时将它发送到我的煎茶派,我使用下面编码的 JSON:

{"success":true,"total":"0","data":[{"0":"19","nombre":"19","1":null,"type":"Charge de mission"},{"0":"204","nombre":"204","1":null,"type":"Pre-adherent"},{"0":"1","nombre":"1","1":"Administrateur","type":"Administrateur"},{"0":"25","nombre":"25","1":"Auto-entrepreneur","type":"Auto-entrepreneur"},{"0":"1157","nombre":"1157","1":null,"type":"Adherent"},{"0":"429","nombre":"429","1":null,"type":"Salarie"}]}

我按如下方式创建了我的 JSON 存储和饼图:

var userStore = new Ext.data.JsonStore({
    url: 'rapport/chartTypeProfils.php',
    fields: [{name:'nombre', type:'int'},'type'],
    root: 'data'
    //totalProperty:'total'
});

userPie = Ext.extend( Ext.ux.Portlet,{
    constructor: function(config) {
        Ext.apply(this, {
            //width: 400,
            height: 300,
            title: 'Utilisateur',
            tools: tools,
            //renderTo: 'user',
            items: {
                itemId: 'userStore',
                store: userStore,
                xtype: 'piechart',
                dataField: 'nombre',
                categoryField: 'type',
                //extra styles get applied to the chart defaults
                extraStyle: {
                    legend: {
                        display: 'left',
                        padding: 5,
                        font: {
                           family: 'Tahoma',
                           size: 13
                        }
                    }
                }
            }
        });
        userPie.superclass.constructor.apply(this, arguments);
    }
});

但是,这不会显示饼图。

【问题讨论】:

    标签: extjs pie-chart sencha-charts


    【解决方案1】:

    您使用的是哪个版本的 ExtJS 框架?我找不到关于JsonStoreroot 属性或饼图系列的dataFieldcategoryFields 的任何文档,这让我觉得您在谈论Sencha 的其他产品之一(GXT可能吗?)

    话虽如此,我想我会使用您提供的数据和 JSFiddle (4.1) 上可用的最新 ExtJS 框架来绘制一个饼图。该示例可在此处找到:http://jsfiddle.net/fgX74/(该示例的代码在本文底部)。

    以您的代码为起点,我进行了以下更改以使其正常工作:

    • JsonStore 的root 属性不存在。它当然没有记录,所以我改变了进来的数据以适应。输入的数据现在只是一个对象数组(必须更改您提供的 url 才能以相同格式返回数据)。
    • 我已经摆脱了 portlet 并用实际图表替换。我无权访问 Ext.ux.Portlet 对象来扩展它。
    • dataField 已替换为 angleFieldcategoryField 已替换为 label,这使您可以定义实际标签中显示的内容。

    最后,这是实际的示例代码:

    Ext.onReady(function(){    
        var userStore = new Ext.data.JsonStore({
            data: [{"0":"19","nombre":"19","1":null,"type":"Charge de mission"},{"0":"204","nombre":"204","1":null,"type":"Pre-adherent"},{"0":"1","nombre":"1","1":"Administrateur","type":"Administrateur"},{"0":"25","nombre":"25","1":"Auto-entrepreneur","type":"Auto-entrepreneur"},{"0":"1157","nombre":"1157","1":null,"type":"Adherent"},{"0":"429","nombre":"429","1":null,"type":"Salarie"}],
            fields: [{name:'nombre', type:'int'},'type'],
            root: 'data'
        });
    
        Ext.create('Ext.chart.Chart', {
            renderTo: Ext.getBody(),
            width: 500,
            height: 350,
            animate: true,
            store: userStore,
            series: [{
                type: 'pie',
                angleField: 'nombre',
                showInLegend: true,
                label: {
                    field: 'type',
                    display: 'rotate',
                    contrast: true,
                    font: '18px Arial'
                }
            }]
        });
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多