2012-03-06 33 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軸正交點爲中心添加到我的最小值。

相關問題