2011-06-19 25 views
0

私のプロジェクトのExtjs4で単純な線グラフを作成しましたが、グラフは正しいデータをプロットしていません。Extjs4グラフが正しいデータをプロットしていません

enter image description here

チャートは、グリッドと同じストアを使用して、同じデータを示していません。それを完全に修正しないと、問題の原因を追跡する方法はありますか?

次は、グラフを生成するために使用するコードです。 date.getFullYearについては

答えて

1

()私はあなたの日付文字列を疑う:

{ 
    xtype: 'chart', 
    animate: true, 
    shadow: true, 
    store: 'Dataalls', 
    legend: { 
     position: 'top' 
    }, 
    axes: [{ 
     type: 'Numeric', 
     position: 'left', 
     title: 'Wind Speed', 
     fields: ['windspeed'], 
     grid: true 
    }, { 
     type: 'Category', 
     position: 'bottom', 
     title: 'Time', 
     fields: ['time'] 
    }], 
    series: [{ 
     type: 'line', 
     axis: 'left', 
     xField: ['time'], 
     yField: ['windspeed'] 
    }] 
} 

(x軸のための「時間」をが、エラー「date.getFullYearは関数ではありません」を取得します私はタイプを使用してみました) Dateオブジェクトには解析できません。他のサポートコード、理想的にはStoreとGridの完全なコードを投稿できますか?あなたは時間軸を使用したい場合は、あなたの日付文字列は、の線に沿って何かを経由して、日付オブジェクトに変換する必要があります:

Ext.define('Your.Model', { 
    extend: 'Ext.data.Model', 
    fields: [ 
     {name: 'dateString', type: 'string'}, 
     {name: 'date', 
      convert: function(value, record) { 
       year = value.substring(0,4); 
       month = value.substring(5,7).replace(/^[0]+/g,""); 
       day = value.substring(8,10).replace(/^[0]+/g,""); 
       hour = value.substring(11,13).replace(/^[0]+/g,""); 
       // etc for min, sec, millis 
       return new Date(year, (month - 1), day, hour, 0, 0); 
      } 
     } 
    ] 

});

グラフが正しく表示されないようにデバッグするには、Chartオブジェクトを検査して内部のデータを見ることができるように、その変数割り当て後にグラフオブジェクトをvarとFirebugブレークポイントに割り当てます。

0

私はTimeを使用して同様の問題がありました。

フィールド:[{名: '日付'、種類: '日付'}、{名: '閉じる'、種類: 'フロート'}]

としてちょうど私のモデルフィールド型を定義することによってそれを修正なぜあなたのチャートがそんなにプロットしているのか、前も分かっていました.Jsonが文字列として渡していることに気がついたので、私もfloatとして定義する必要があります。私はそれをjsonとして渡す前に、最初に浮動小数点数として強制することで、PHPの終わりの修正を行いました。

関連する問題