CorePlot: изменить ось Y, чтобы начать с 3, а не 0 - PullRequest
0 голосов
/ 05 мая 2018

enter image description here

Я использую CorePlot 2.3 для генерации одного графика «разброса» в моем приложении iOS 11.3.

Как запустить ось Y со значения, отличного от 0?

Ось Y в настоящее время начинается с 0.0 и продолжается до 10.0. Я хочу изменить его, чтобы он шел от 3,0 до 10,0. (Значения данных <3,0, как правило, будут = 0,0 и могут игнорироваться или снизу по оси X). </p>

Как я могу это сделать?

CPTXYGraph *newGraph = [[CPTXYGraph alloc] initWithFrame:CGRectZero];
CPTTheme *theme      = [CPTTheme themeNamed:kCPTDarkGradientTheme];
[newGraph applyTheme: theme];
self.graph = newGraph;

CPTGraphHostingView *hostingView = (CPTGraphHostingView *)self.view;    
hostingView.collapsesLayers = NO; 
hostingView.hostedGraph = newGraph;

CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *)newGraph.defaultPlotSpace;
plotSpace.allowsUserInteraction = YES;
plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:@(-12.0) length:@(_total_frames/1.2)];
plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:@(0.0) length:@(10.0)]; 
plotSpace.globalXRange = [CPTPlotRange plotRangeWithLocation:@(-15.5) length:@(_total_frames+20)];
plotSpace.globalYRange = [CPTPlotRange plotRangeWithLocation:@(-1.5) length:@(12.5)];

CPTXYAxisSet *axisSet = (CPTXYAxisSet *)newGraph.axisSet;
CPTXYAxis *xAxis                    = axisSet.xAxis;
//  .  .  .
CPTXYAxis *yAxis                    = axisSet.yAxis;
yAxis.majorIntervalLength           = @(0.5);
yAxis.minorTicksPerInterval         = 4;
yAxis.orthogonalPosition            = @(0.0);
yAxis.labelingPolicy                = CPTAxisLabelingPolicyFixedInterval; 
yAxis.labelTextStyle                = yAxisLabelTextStyle; 
yAxis.titleLocation                 = @(plotSpace.yRange.midPoint.intValue);
yAxis.title                         = @"D  I  A  M  E  T  E  R ,  m m";
yAxis.titleRotation                 = 1.57; // 90 degrees in radians
yAxis.titleOffset                   = 20.0;
yAxis.titleTextStyle                = axisTitleTextStyle;
yAxis.delegate                      = self;
yAxis.visibleRange                  = [CPTPlotRange plotRangeWithLocation:@(0.0) length:@(10.0)];

1 Ответ

0 голосов
/ 06 мая 2018

Не устанавливайте visibleRange или gridLinesRange, если вам не нужен дополнительный контроль над внешним видом. Прямо сейчас, visibleRange ограничивает видимую часть оси Y до 3,0-9,0.

...