2012-03-06 17 views
0

私は、プレーヤの統計に基づいてサーバーから動的にデータを変更し続けるグラフを持っています。私が抱えている問題は、受信したデータに基づいてグラフをどのように中央に配置するかを考え出すことができないということです。私はそれが適切に構成されていると思ったが、さらにテストすると、グラフが完全に中央から外れていることがわかった。以下は私のreloadDataにあるコードのスニペットです。コアプロットとダイナミックデータを使用してグラフを中央に配置する方法

- (void)reloadData 
{ 
    CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *)Chart.defaultPlotSpace; 
    if (maxY < valueMaxY || minY > valueMinY) 
    { 
     // Reload the plot graph 
     maxY = valueMaxY + (valueMaxY/2); 

     // Properly align the Y-Axis 
     int tickCount = maxY/5; 

     if(tickCount <= 1) 
     { 
      tickCount = 1; 
     } 

     plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromInt(tickCount * -1) length:CPTDecimalFromInt(maxY - (tickCount * -1))]; 

     CPTXYAxisSet *axisSet = (CPTXYAxisSet *)Chart.axisSet; 
     CPTXYAxis *y = axisSet.yAxis; 
     y.majorIntervalLength = CPTDecimalFromInt(tickCount); 
     y.minorTicksPerInterval = 1; 
     NSArray *exclusionRanges = [NSArray arrayWithObjects: 
         [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(-2.0) length:CPTDecimalFromFloat(2.0)], 
         nil]; 
     y.labelExclusionRanges = exclusionRanges; 
    } 

    [Chart reloadData]; 
} 

簡単な説明は、グラフを作成するビューに合わせてグラフを中央揃えにすることです。可能であれば、y軸とx軸の両方に5ティックを表示したい。上のスニペットからやってみようとしているのは、ちょうどy軸だけです。サーバーからデータを取得し、値が以前の値より大きくて小さいかどうかを確認することです。次に、reloadDataを呼び出し、受信した値が前のメッセージの最小値または最大値より大きいかどうかを確認します。いずれかの場合、グラフとプロットを再調整します。

アドバイスをいただければ幸いです。

答えて

0

私はそれを理解しました。私は自分の最小値から最大値までの合計距離を得なければならず、その中心を見つけなければならなかった。私がそれを得たら、y軸の直交点を私の最小値に加えた中心に設定しました。

関連する問題