棒グラフの日付範囲セレクター

ソナルクマールステ

棒グラフに日付範囲セレクターを実装したいのですが、以下は私が書いたコードの一部です。積み上げ棒グラフを表示しています。選択した日付範囲に応じて動的に更新されます。これに関する提案。前もって感謝します

            _onDataLoadedfirst: function() {
                Ext.create('Ext.panel.Panel', {
                    title: 'Choose a future date:',
                    width: 200,
                    bodyPadding: 10,
                    renderTo: Ext.getBody(),
                    items: [{
                        xtype: 'datepicker',
                        minDate: new Date(),
                        handler: function(picker, date) {
                            // do something with the selected date
                        }
                    }]
                });         
            },  
            _onDataLoaded: function(store, data) {
                this.add(
                    {
                        xtype: 'rallychart',                                
                        height: new_height,
                        //width: 500,
                        series: [
                            {
                                type: 'bar',
                                dataIndex: 'ObjectCount',
                                name: 'Count',
                                visible: true
                            }
                        ],
                        //store: severityStore,
                        calculatorType: 'My.TrendCalc',
                        calculatorConfig : {},
                        chartConfig: {
                            chart: {
                                    zoomType: 'xy',
                                    type:'bar'
                            },
                            title: {
                                text: ' Open Defects(per Team and Severity)',
                                //align: 'center'
                            },
                            legend: {
                                reversed: true
                            },
                            //xField: 'Project',
                            xAxis: {
                                categories: new_projects,
                                type: 'text',
                                title: { text: 'Teams'},
                                minTickInterval: 5,
                                //labels : { rotation: 90 }
                            },
                            //yField: 'Severity',
                            yAxis: { 
                                min: 0,
                                //categories: teamGroups,
                                title: {
                                    text: 'Quantity of Defects'
                                }
                            },                                  
                            plotOptions: {
                                area: {
                                    stacking: 'percent',
                                    lineColor: 'black',
                                    lineWidth: 1,
                                    marker: {
                                        enabled: false
                                    },
                                    step: true,
                                    size: '100%'
                                },  
                                bar: {
                                    borderColor: "#000000",
                                    borderWidth: 0.2
                                },  
                                series: {
                                    stacking: 'normal',
                                    dataLabels: {
                                        enabled: true,
                                        color: 'white',
                                        align: 'center',
                                        x: 2,
                                        y: 5,                                           
                                        formatter:function(){
                                            if(this.y > 0)
                                                return this.y;
                                        },                                              
                                        style: {
                                            textShadow: '0 0 2px black, 0 0 2px black'
                                        }
                                    }
                                }
                            },
                        },      
                            //categories: teamGroups, 
                        series: [{  
                            name: "None",
                            data: get_values(proj_records, 0),
                            color: "#7CAED5"
                        },{
                            name: "Critical",
                            data: get_values(proj_records, 1),
                            color: "#66dacf"
                        },{
                            name: "Major",
                            data: get_values(proj_records, 2),
                            color: "#87c540"
                        },{ 
                            name: "Minor",
                            data: get_values(proj_records, 3),
                            color: "#9863b2"
                        },{                             
                            //Ext.Array.each(proj_records[0], function(rec) {
                            name: "Incidental",
                            data: get_values(proj_records, 4),
                            color: "#d73249"
                                //data: record.data;
                            //});
                        }]
                    }
                );
             }
ニックム

これは、日付ピッカーで別の日付が選択されたときに新しいデータで再ロードされるオープン/クローズの欠陥のチャートの例です。metrics環境の[状態]ドロップダウンで許可された値を反映するようにオブジェクトを変更する必要があります。

Ext.define('CustomApp', {
    extend: 'Rally.app.App',
    componentCls: 'app',
    launch: function() {
        var that = this;
        var minDate = new Date(new Date() - 86400000*90); //milliseconds in day = 86400000
        var datePicker = Ext.create('Ext.panel.Panel', {
            title: 'Choose a date:',
            width: 200,
            bodyPadding: 10,
            renderTo: Ext.getBody(),
            items: [{
                xtype: 'rallydatepicker',
                minDate: minDate,
                handler: function(picker, date) {
                     that.onDateSelected(date);
                }
            }]
        });        
        this.add(datePicker);
    },
    onDateSelected:function(date){
        this._date = date;
        this.defineCalculator();
        this.makeChart();
   },    

    defineCalculator: function(){
        var that = this;
        Ext.define("MyDefectCalculator", { 
            extend: "Rally.data.lookback.calculator.TimeSeriesCalculator",
            getMetrics: function () {
                var metrics = [
                   {
                        field: "State",
                        as: "Open",
                        display: "column",
                        f: "filteredCount",
                        filterField: "State",
                        filterValues: ["Submitted","Open"]
                   },
                    {
                        field: "State",
                        as: "Closed",
                        display: "column",
                        f: "filteredCount",
                        filterField: "State",
                        filterValues: ["Fixed","Closed"]
                    }
                ];  
                return metrics;
            }
        });
    },

    makeChart: function(){
        if (this.down('#myChart')) {
                this.remove('myChart');
        }
        var timePeriod = new Date(new Date() - this._date);

        var project = this.getContext().getProject().ObjectID;

        var storeConfig = this.createStoreConfig(project,timePeriod);

        this.chartConfig.calculatorConfig.startDate = this._date;
        this.chartConfig.calculatorConfig.endDate = new Date();
        this.chartConfig.storeConfig = storeConfig;
        this.add(this.chartConfig); 
    },

    createStoreConfig : function(project, validFrom ) {
        return {
            listeners : { 
                load : function(store,data) {
                    console.log("data",data.length);
                }
            },
            filters: [
                {
                    property: '_ProjectHierarchy',
                    operator : 'in',
                    value : [project] 
                },
                {
                    property: '_TypeHierarchy',
                    operator: 'in',
                    value: ['Defect']
                },
                {
                    property: '_ValidFrom',
                    operator: '>',
                    value: validFrom
                }
            ],
            autoLoad : true,
            limit: Infinity,
            fetch: ['State'],
            hydrate: ['State']
        };
    },
     chartConfig: {
        xtype: 'rallychart',
        itemId : 'myChart',
        chartColors: ['Red', 'Green'],

        storeConfig: { },
        calculatorType: 'MyDefectCalculator',

        calculatorConfig: {
        },

        chartConfig: {

            plotOptions: {
                column: { stacking: 'normal'}
            },
            chart: { },
            title: { text: 'Open/Closed Defects' },
            xAxis: {
                tickInterval: 1,
                labels: {
                    formatter: function() {
                        var d = new Date(this.value);
                        return ""+(d.getMonth()+1)+"/"+d.getDate();
                    }
                },
                title: {
                    text: 'Date'
                }
            },
            yAxis: [
                {
                    title: {
                        text: 'Count'
                    }
                }
            ]
            }
    }   

});

例はこのgithubリポジトリにあります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

縦棒グラフとしてのGoogleグラフ範囲セレクターグラフタイプ

分類Dev

pandasデータフレームの日付範囲内の日時のフラグリスト

分類Dev

SeleniumJAVAのjquerydatepicker日付範囲セレクターから日付範囲を選択できません

分類Dev

DC.js棒グラフバーがブラシで消え、日付範囲の問題の合計金額

分類Dev

2つのグラフで範囲セレクターを接続する

分類Dev

間の範囲の複数の日付条件を含むデータ フレームのサブセット化

分類Dev

カスタムカラー範囲のプロット(R)棒グラフ

分類Dev

データフレーム内の各グループの日付の範囲を見つける方法

分類Dev

日付範囲によるデータフレームのサブセット化

分類Dev

セキレイクエリ-日付範囲、タイプの選択と制限

分類Dev

グーグルスプレッドシート:日付をセル範囲の日付と比較する

分類Dev

連続した日付範囲のレコードを持つデータセットからの最小および最大日付の日付範囲

分類Dev

別のDataFrameのパンダデータフレーム合計日付範囲

分類Dev

dataTablesのカスタムフィルターアドレスと日付範囲

分類Dev

パンダデータフレームの日付範囲を削除する方法

分類Dev

djangoRESTフレームワークの日時の範囲でフィルタリングする

分類Dev

CSSクラスセレクターの範囲

分類Dev

時間、分レベルのDataStudio日付範囲フィルター

分類Dev

Rの日付範囲ごとに動的な日付でデータフレームをサブセット化する

分類Dev

同じデータのセットの日付範囲

分類Dev

日付範囲フィルターVBA

分類Dev

MPAndroidChart変更グラフの日付範囲

分類Dev

日付範囲でのフィルタリング

分類Dev

日付列と日付範囲に基づいてパンダのデータフレームを埋める

分類Dev

フィルタ範囲の日付elasticsearch

分類Dev

Postgres:フィルターの日付範囲によるSQLクエリ

分類Dev

RailsのSQL / ActiveRecordクエリに日付範囲パラメータを渡す

分類Dev

x軸に24時間の棒グラフ、このセクションの最初の日時データのみ

分類Dev

MYSQL:複数の日付と日付範囲でフィルタリング

Related 関連記事

  1. 1

    縦棒グラフとしてのGoogleグラフ範囲セレクターグラフタイプ

  2. 2

    pandasデータフレームの日付範囲内の日時のフラグリスト

  3. 3

    SeleniumJAVAのjquerydatepicker日付範囲セレクターから日付範囲を選択できません

  4. 4

    DC.js棒グラフバーがブラシで消え、日付範囲の問題の合計金額

  5. 5

    2つのグラフで範囲セレクターを接続する

  6. 6

    間の範囲の複数の日付条件を含むデータ フレームのサブセット化

  7. 7

    カスタムカラー範囲のプロット(R)棒グラフ

  8. 8

    データフレーム内の各グループの日付の範囲を見つける方法

  9. 9

    日付範囲によるデータフレームのサブセット化

  10. 10

    セキレイクエリ-日付範囲、タイプの選択と制限

  11. 11

    グーグルスプレッドシート:日付をセル範囲の日付と比較する

  12. 12

    連続した日付範囲のレコードを持つデータセットからの最小および最大日付の日付範囲

  13. 13

    別のDataFrameのパンダデータフレーム合計日付範囲

  14. 14

    dataTablesのカスタムフィルターアドレスと日付範囲

  15. 15

    パンダデータフレームの日付範囲を削除する方法

  16. 16

    djangoRESTフレームワークの日時の範囲でフィルタリングする

  17. 17

    CSSクラスセレクターの範囲

  18. 18

    時間、分レベルのDataStudio日付範囲フィルター

  19. 19

    Rの日付範囲ごとに動的な日付でデータフレームをサブセット化する

  20. 20

    同じデータのセットの日付範囲

  21. 21

    日付範囲フィルターVBA

  22. 22

    MPAndroidChart変更グラフの日付範囲

  23. 23

    日付範囲でのフィルタリング

  24. 24

    日付列と日付範囲に基づいてパンダのデータフレームを埋める

  25. 25

    フィルタ範囲の日付elasticsearch

  26. 26

    Postgres:フィルターの日付範囲によるSQLクエリ

  27. 27

    RailsのSQL / ActiveRecordクエリに日付範囲パラメータを渡す

  28. 28

    x軸に24時間の棒グラフ、このセクションの最初の日時データのみ

  29. 29

    MYSQL:複数の日付と日付範囲でフィルタリング

ホットタグ

アーカイブ