Вы просто создаете CGPath, который описывает схему вашего пользовательского символа.Вот пример из CPTestApp (в папке CorePlot / examples):
CPPlotSymbol *symbol = [[[CPPlotSymbol alloc] init] autorelease];
CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path, NULL, 0., 0.);
CGPathAddEllipseInRect(path, NULL, CGRectMake(0., 0., 10., 10.));
CGPathAddEllipseInRect(path, NULL, CGRectMake(1.5, 4., 3., 3.));
CGPathAddEllipseInRect(path, NULL, CGRectMake(5.5, 4., 3., 3.));
CGPathMoveToPoint(path, NULL, 5., 2.);
CGPathAddArc(path, NULL, 5., 3.3, 2.8, 0., pi, TRUE);
CGPathCloseSubpath(path);
symbol.customSymbolPath = path;
symbol.usesEvenOddClipRule = YES;
CGPathRelease(path);
Вы можете установить свойство plotSymbol
на точечной диаграмме, чтобы применить свой символ к каждой точке или использовать -symbolForScatterPlot:recordIndex:
или -symbolsForScatterPlot:recordIndexRange:
метод источника данных, чтобы применить его к некоторым точкам.