Ios 更改Coreplot图形的记号标签
我正在我的mac应用程序中使用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
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
现在标签已按要求提供。我尝试了
。无
则根本不显示任何标签。您可能需要调整每个标签的偏移量。它们可能在图表的可见部分之外。我尝试了。无
,则它根本不显示任何标签。您可能需要调整每个标签的偏移量。它们可能在图表的可见部分之外。