0

我正在尝试在缩放时更改为核心情节的majorIntervalScale,以便缩小时轴上出现的项目较少,放大时出现的项目更多。我无法让它工作,任何人都可以帮忙吗?这是我到目前为止得到的代码。谢谢

-(BOOL)plotSpace:(CPTPlotSpace *)space shouldScaleBy:(CGFloat)interactionScale aboutPoint:(CGPoint)interactionPoint
{
    return YES;
}

-(CPTPlotRange *)plotSpace:(CPTPlotSpace *)space willChangePlotRangeTo:(CPTPlotRange *)newRange forCoordinate:(CPTCoordinate)coordinate
{
    self.graphScaleX = self.graphScaleX*newRange.lengthDouble;
    self.graphScaleY = self.graphScaleY*newRange.lengthDouble;

    CPTXYAxisSet *axisSet = (CPTXYAxisSet *)self.graph.axisSet;
    CPTXYAxis *x          = axisSet.xAxis;

    CPTXYAxis *y          = axisSet.yAxis;

    x.majorIntervalLength=CPTDecimalFromFloat(self.graphScaleX);
    y.majorIntervalLength=CPTDecimalFromFloat(self.graphScaleY);

    return newRange;
}
4

1 回答 1

1

无论绘图范围的长度如何,您似乎总是希望拥有相同数量的刻度线。如果是这样,请使用不同的轴标签策略而不是委托。该CPTAxisLabelingPolicyAutomatic策略将在“好”数字上找到刻度线,但不一定在绘图范围的末端。将从绘图范围的CPTAxisLabelingPolicyEqualDivisions一端开始放置等间距的刻度并继续到另一端。这两个标签策略都使用preferredNumberOfMajorTicks来控制要绘制多少个刻度线。

于 2013-01-20T01:20:36.783 回答