Я использую coreplot на ios и имею диаграмму рассеяния. Можно ли изменить стиль линии в зависимости от наносимой точки? Я только нашел, как установить его для всего сюжета.
Изменить стиль линии CPScatterPlot для разных точек
Ответы (1)
да. Убедитесь, что ваш делегат графа соответствует CPScatterPlotDelegate
, внедрив -symbolForScatterPlot:recordIndex:
. Вот рабочая реализация, которая возвращает другой символ для индекса, который соответствует _selectedIndex
:
- (CPPlotSymbol *)symbolForScatterPlot:(CPScatterPlot *)plot recordIndex:(NSUInteger)index
{
CPMutableLineStyle *symbolLineStyle = [CPMutableLineStyle lineStyle];
symbolLineStyle.lineColor = [CPColor blackColor];
CPPlotSymbol *plotSymbol = [CPPlotSymbol ellipsePlotSymbol];
plotSymbol.lineStyle = symbolLineStyle;
if (_selectedIndex != NSNotFound && index == _selectedIndex)
{
plotSymbol.symbolType = CPPlotSymbolTypeDiamond;
plotSymbol.size = CGSizeMake(12, 12);
plotSymbol.fill = [CPFill fillWithColor:[CPColor redColor]];
}
else
{
plotSymbol.symbolType = CPPlotSymbolTypeEllipse
plotSymbol.size = CGSizeMake(8, 8);
plotSymbol.fill = [CPFill fillWithColor:[CPColor greenColor]];
}
return plotSymbol;
}
person
RyanR
schedule
25.06.2011
Это хороший ответ, однако я думаю, что это не то, о чем он просил. Я предполагаю, что идея состоит в том, как сделать обычный линейный график, например, пунктирным. Ваше предложение показывает, как изменить символы графика в зависимости от текущего индекса. Я был бы рад, если бы вы могли объяснить, как изменить стиль линии в середине графика. Спасибо
- person Petar; 02.05.2012
На всякий случай, если кто-то хочет использовать symbolForScatterPlot, он должен использовать делегат CPTScatterPlotDataSource.
- person alecnash; 05.12.2012