我正在使用核心图来绘制图形。我的问题是我想根据线条颜色设置图例文字颜色。我在一个图中有四个散点图,每个散点图都有不同的线条颜色。
在图例中,它会正确显示线条颜色,但我想根据每个散点图标题的线条颜色更改文本颜色。我已为该图例编写了以下代码。
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 :(得分:0)
对于包括散点图在内的大多数绘图类型,请将attributedTitle
设置为具有所需颜色属性的NSAttributedString
。饼图和条形图具有数据源方法,可为每个数据索引提供属性图例标题。
答案 1 :(得分: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];