2014-02-08 58 views
0

我有一個使用core-plot框架的圖,它的Y軸最低值大概是155左右。我想這樣做是爲了讓155開始在圖底部,正好對着X軸。core-plot iOS:如何讓圖形從底部開始一定量?

這是我爲Y軸代碼:

NSInteger majorIncrement = 1; 
    NSInteger minorIncrement = 1; 
    CGFloat yMax = [[prices valueForKeyPath:@"@max.self"] doubleValue]; // should determine dynamically based on max price 
    NSMutableSet *yLabels = [NSMutableSet set]; 
    NSMutableSet *yMajorLocations = [NSMutableSet set]; 
    NSMutableSet *yMinorLocations = [NSMutableSet set]; 
    for (NSInteger j = [[prices valueForKeyPath:@"@min.self"] doubleValue]; j <= yMax; j += minorIncrement) { 
     NSUInteger mod = j % majorIncrement; 
     if (mod == 0) { 
      CPTAxisLabel *label = [[CPTAxisLabel alloc] initWithText:[NSString stringWithFormat:@"%i", j] textStyle:y.labelTextStyle]; 
      NSDecimal location = CPTDecimalFromInteger(j); 
      label.tickLocation = location; 
      label.offset = -y.majorTickLength - y.labelOffset; 
      if (label) { 
       [yLabels addObject:label]; 
      } 
      [yMajorLocations addObject:[NSDecimalNumber decimalNumberWithDecimal:location]]; 
     } else { 
      [yMinorLocations addObject:[NSDecimalNumber decimalNumberWithDecimal:CPTDecimalFromInteger(j)]]; 
     } 
    } 
    y.axisLabels = yLabels; 
    y.majorTickLocations = yMajorLocations; 
    y.minorTickLocations = yMinorLocations; 

回答

2

嘗試設置orthogonalCoordinateDecimal

CPTXYAxisSet *axisSet = (CPTXYAxisSet *)self.graph.axisSet; 
axisSet.xAxis.orthogonalCoordinateDecimal = CPTDecimalFromFloat(155.0); 
+0

非常感謝您!這工作! – Burrito411

0

圖的可見區域通過情節的空間控制。設置yRange來包圍你的數據的範圍:

CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *)graph.defaultPlotSpace; 
plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromCGFloat(yMin) 
               length:CPTDecimalFromCGFloat(yMax - yMin)]; 

另一種選擇是告訴情節空間,自動適應當前的繪圖數據:

[plotSpace scaleToFitPlots:[graph allPlots]]; 
+0

當我做第一個時,我得到一個類似於這樣的圖表:http://imgur.com/a/yQZSW – Burrito411

+0

設置'yRange'時,'yMin'和'yMax'是什麼?最小和最大數據值是否在標籤設置代碼運行之間發生變化? –

+0

你上面的那個人回答了我的問題。謝謝,不過。但我也有這裏的另一個問題:http://stackoverflow.com/questions/21653573/core-plot-increase-space-between-ticks-on-the-x-axis – Burrito411