0

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

ここに画像の説明を入力

グラフはグリッドと同じ店舗を使用していますが、同じデータを表示していません。問題を完全に修正しない場合、問題の原因を追跡する方法はありますか?

以下は、チャートを生成するために使用するコードです。

{
    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 軸に type: 'Time' を使用しようとしましたが、「date.getFullYear は関数ではありません」というエラーが表示されます)

4

2 に答える 2

1

date.getFullYear()の場合、日付文字列をDateオブジェクトに解析できないと思われます。他のサポートコード、理想的にはストアとグリッドの完全なコードを投稿できますか?時間軸を使用する場合は、次の行に沿って、日付文字列を日付オブジェクトに変換する必要があります。

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);
          }
      }
   ]

});

チャートが正しく表示されないことをデバッグするために、チャートオブジェクトを変数に割り当て、その変数割り当ての後にFirebugブレークポイントに配置して、チャートjsオブジェクトを検査し、内部のデータを確認できるようにします。

于 2011-06-20T22:04:59.410 に答える
0

Time を使用するときにも同様の問題がありました。私のモデルフィールドタイプを定義することで修正しました:

フィールド: [{name: 'date', type: 'Date'}, {name: 'close',type:'float'}]

なぜあなたのチャートがそのようにプロットされているのかについては、以前にもそれを取得しました。json が文字列として渡していたことに気付いたので、フロートとしても定義する必要があります。jsonとして渡す前に最初にfloatとして強制することで、php側でそれを修正しました。

于 2011-07-14T07:22:40.217 に答える