Ios 更改Coreplot图形的记号标签

Ios 更改Coreplot图形的记号标签,ios,swift,swift2,core-plot,Ios,Swift,Swift2,Core Plot,我正在我的mac应用程序中使用coreplot绘制图形&它工作正常。我需要沿轴显示自定义标签,例如: 我有一个功率值与时间的关系图:功率值->Y轴&时间->X轴 我想绘制时间-秒值的图形,但显示沿x轴的固定间隔-分刻度,我认为我应该使用自定义标签,但这不适用于我。 自定义标签的代码为: let graph = CPTXYGraph() plots[0].identifier = PlotType.target.rawValue plots[1].identifier = PlotT

我正在我的mac应用程序中使用
coreplot
绘制图形&它工作正常。我需要沿轴显示
自定义标签
,例如:

我有一个功率值与时间的关系图:
功率值->Y轴
&
时间->X轴

我想绘制时间-秒值的图形,但显示沿x轴的固定间隔-分刻度,我认为我应该使用自定义标签,但这不适用于我。

自定义标签的代码为:

  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
用上面的代码绘制图形,沿x轴将时间分成4等分,并显示标签,一切正常

我想将标签沿x轴显示为分钟和剩余图形
没问题。

我试过这样做:
让xLabel=CPTAxisLabel(文本:“\(label/60)”,
textStyle:axisTextStyle())
但标签不会更改,不会产生任何效果

还尝试更改
tickLocation
如:
xLabel.tickLocation=
NSNumber(双:标签/60)
无效

通过更改
主要链接位置
如:
xLocations.append(NSNumber(double:label/60))
它的行为怪异且 所有x轴标签都乱了

我试着效仿这个例子:


有人能告诉我哪里出了问题吗[记得我在使用Swift]?提供的
.locations
标签策略使用
labelFormatter
自动从勾号位置创建标签。如果要使用自定义标签,请使用
.None
标签策略。

提供的
.locations
标签策略使用
标签格式
自动从勾号位置创建标签。如果要使用自定义标签,请使用
.None
标签策略。

我自己解决了这个问题,方法如下:

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

现在标签按要求提供。

我自己解决了这个问题,就像:

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

现在标签已按要求提供。

我尝试了
。无
则根本不显示任何标签。您可能需要调整每个标签的
偏移量。它们可能在图表的可见部分之外。我尝试了
。无
,则它根本不显示任何标签。您可能需要调整每个标签的
偏移量。它们可能在图表的可见部分之外。