color big ios swift swift2 core-plot

ios - big - ionic p



Cambiar etiquetas de tick para Graph Graph Core (2)

La política de etiquetado .LocationsProvided usa la labelFormatter para crear etiquetas de las ubicaciones de ticks automáticamente. Si desea usar etiquetas personalizadas, use la política de etiquetado .None .

Estoy usando coreplot para gráficos en mi aplicación mac y está funcionando bien. Tengo un requisito para mostrar custom labels largo del eje para tics como:

Tengo un gráfico de valores de potencia en función del tiempo: Power values -> Y-Axis Y Time -> X-Axis

I want to draw graph for Time seconds values but show fixed intervals ticks of minutes along x-axis for which i figured that i should use custom labels but its not happening for me.

El código para etiquetas personalizadas es:

let graph = CPTXYGraph() plots[0].identifier = PlotType.target.rawValue plots[1].identifier = PlotType.user.rawValue for plot in plots { plot.dataSource = self plot.delegate = self graph.addPlot(plot) } if let plotArea = graph.plotAreaFrame { plotArea.borderLineStyle = nil plotArea.paddingLeft = 25.0 plotArea.paddingBottom = 20.0 plotArea.paddingRight = 10.0 plotArea.paddingTop = 20.0 } guard let axisSet = graph.axisSet else { return } let xAxis = axisSet.axes?[0] var xLabels = [CPTAxisLabel]() var xLocations = [NSNumber]() let doubleSecs = Double(activity.durationSeconds) let labels = [0.0, doubleSecs * 0.25, doubleSecs * 0.50, doubleSecs * 0.75, doubleSecs] for label in labels { let xLabel = CPTAxisLabel(text: "/(label/60)", textStyle: axisTextStyle) xLabel.tickLocation = NSNumber(double: label) xLocations.append(NSNumber(double: label)) xLabels.append(xLabel) } xAxis?.labelingPolicy = CPTAxisLabelingPolicy.LocationsProvided xAxis?.labelFormatter = axisFormatter xAxis?.axisLabels = Set(xLabels) xAxis?.majorTickLocations = Set(xLocations) chartView.hostedGraph = graph

Con el código anterior está dibujando un gráfico ya lo largo del eje X está dividiendo el tiempo en 4 porciones iguales y mostrando las etiquetas, todo está bien.

I want to show labels along x-axis as minutes and remaining drawing is ok.

Intenté con esto: let xLabel = CPTAxisLabel(text: "/(label/60)", textStyle: axisTextStyle()) pero las etiquetas no cambian sin efecto.

También intenté cambiar tickLocation como: xLabel.tickLocation = NSNumber(double: label/60) Sin efecto

Con el cambio de majorTickLocations como: xLocations.append(NSNumber(double: label/60)) se comporta de manera extraña y todas las etiquetas del eje x están en mal estado.

Intenté seguir este ejemplo: StackOverFlow Post

¿Alguien puede guiar lo que va mal [Recuerde que estoy usando Swift]?


Lo resolví yo mismo haciéndolo así:

let xAxis = axisSet.axes?[0] xAxis?.majorIntervalLength = activity.durationSeconds / 60 / 4 xAxis?.labelingPolicy = CPTAxisLabelingPolicy.FixedInterval

Ahora las etiquetas están llegando según sea necesario.