0
votes

I have successfully selected a point, but I hope at this point when selected, the point of color set to different from other points to distinguish,how to implement,Thanks a lot

How to set up only this one in red.

How to set up only this one in red

-(void)scatterPlot:(CPTScatterPlot *)plot plotSymbolWasSelectedAtRecordIndex:(NSUInteger)index{ CPTXYGraph graph = (CPTXYGraph)_graph;

if ( _symbolTextAnnotation ){
    [graph.plotAreaFrame.plotArea removeAnnotation:_symbolTextAnnotation];
    _symbolTextAnnotation = nil;
}

// Setup a style for the annotation
CPTMutableTextStyle *hitAnnotationTextStyle = [CPTMutableTextStyle textStyle];
hitAnnotationTextStyle.color    = [CPTColor whiteColor];
hitAnnotationTextStyle.fontSize = 16.0;
hitAnnotationTextStyle.fontName = @"Helvetica-Bold";

// Determine point of symbol in plot coordinates
NSDictionary *dataPoint = _plotData[index];

NSNumber *x = dataPoint[@"x"];
NSNumber *y = dataPoint[@"y"];

NSArray *anchorPoint = @[x, y];

float yValue = [y floatValue];

NSString *yString = [NSString stringWithFormat:@"%.1f",yValue];

CPTTextLayer *textLayer = [[CPTTextLayer alloc] initWithText:yString style:hitAnnotationTextStyle];
CPTImage *background    = [CPTImage imageWithCGImage:[UIImage imageNamed:@"bg_red"].CGImage];
textLayer.fill          = [CPTFill fillWithImage:background];
textLayer.paddingLeft   = 2.0;
textLayer.paddingTop    = 2.0;
textLayer.paddingRight  = 2.0;
textLayer.paddingBottom = 2.0;

self.symbolTextAnnotation                    = [[CPTPlotSpaceAnnotation alloc] initWithPlotSpace:graph.defaultPlotSpace anchorPlotPoint:anchorPoint];
_symbolTextAnnotation.contentLayer       = textLayer;
_symbolTextAnnotation.contentAnchorPoint = CGPointMake(0.5, 0.0);
_symbolTextAnnotation.displacement       = CGPointMake(0.0, 10.0);
[graph.plotAreaFrame.plotArea addAnnotation:_symbolTextAnnotation];

}

1
Eric,Thank you, I have already solved the problem according to the tips - ilyon

1 Answers

1
votes

Implement the -symbolForScatterPlot:recordIndex: datasource method. Return nil to use the default plotSymbol, [NSNull null] to show no symbol, or a CPTPlotSymbol to show that symbol at the given data index.