2016-12-21 2 views
0

Я использую основной график для рисования графика. Моя проблема в том, что я хочу установить цвет текста легенд в соответствии с цветом линии. У меня есть четыре графика рассеяния на одном графике, каждый график разброса имеет различный цвет линии.Как установить различный цвет текста для легенд с использованием основного сюжета

В легендах он правильно отображает цвет линии, но я хочу изменить цвет текста в соответствии с цветом линии для каждого заголовка графа рассеяния. Я написал следующий код для легенды.

newGraph.legend = CPTLegend(graph: newGraph) 
     newGraph.legend?.numberOfRows = UInt(2.0) 
     let dataSourceLabelStyle = CPTMutableTextStyle() 
     dataSourceLabelStyle.color = CPTColor.white() 
     newGraph.legend?.textStyle  = dataSourceLabelStyle 
     newGraph.legend?.fill = CPTFill(color: CPTColor.init(componentRed: 50/244, green: 43/244, blue: 87/244, alpha: 1.0)) 
     newGraph.legend?.cornerRadius = 5.0 
     newGraph.legendDisplacement = CGPoint.init(x: -50, y: 210) 
     let fadeInAnimation = CABasicAnimation(keyPath: "opacity") 
     fadeInAnimation.duration   = 1.0 
     fadeInAnimation.isRemovedOnCompletion = false 
     fadeInAnimation.fillMode   = kCAFillModeForwards 
     fadeInAnimation.toValue    = 1.0 
     dataSourceLinePlot.add(fadeInAnimation, forKey: "animateOpacity") 
     self.scatterGraph = newGraph 

, как сформировать код выше, видно, что легенды могут взять только один стиль так newGraph.legend?.textStyle = dataSourceLabelStyle т.е. весь текст в легендах белого цвета.

Я хочу изменить цвет текста легенд также в соответствии с цветом линии.

Может ли любой орган помочь мне в этом.

ответ

0

Для большинства типов участков, включая графики рассеяния, установите attributedTitle на номер NSAttributedString с требуемыми атрибутами цвета. Круговые диаграммы и штриховые графики имеют методы источников данных, чтобы обеспечить атрибутивные названия легенд для каждого индекса данных.

+0

Спасибо, сработало. – Gyanendra

0

Не думайте, что это возможно, потому что вы устанавливаете легенду для графика, а график содержит все ваши сюжеты. Вот как я использую его в ObjC:

CPTScatterPlot *aPlot = [[CPTScatterPlot alloc] init]; 
    aPlot.dataSource = self; 
    aPlot.identifier = stringPlotId; 
    [graph addPlot:aPlot toPlotSpace:plotSpace]; 
aPlot.title=stringPlotTitle;//will show in legends 

//add more plots if needed then format labels text once for all plots 

graph.legend= [CPTLegend legendWithGraph:graph]; 
CPTMutableTextStyle *mySmallerTextStyle = [[CPTMutableTextStyle alloc] init]; 
[mySmallerTextStyle setFontSize:8]; 
mySmallerTextStyle.color=[CPTColor whiteColor]; 
[graph.legend setTextStyle:(CPTTextStyle *)mySmallerTextStyle];