使x,y,x2,y2轴限制在核心图中的绘图区域的两侧

时间:2014-02-19 13:58:07

标签: macos cocoa core-plot

项目在此处展示问题:http://github.com/danieljfarrell/CorePlotBoxAxis


我想制作一个如下图,其中我们有一个“盒子”轴,即轴始终位于绘图区域的外边缘。

Plot

这里 x y 轴是左下边缘; x2 y2 分别是顶部和右边。

过去我通过设置轴的orthogonalCoordinateDecimal来完成。但是,这需要在绘图范围更改时手动更新坐标。

是否可以使用约束系统实现箱轴?我尝试了以下内容并正确地将 x,y 引脚。但是, x2 不可见(可能是它被固定在范围之外的某处)而 y2 具有1像素偏移(见下文)。

我在 y2 约束上尝试了一些变体,但似乎没有任何帮助。

    CPTXYAxis *x = [self _makeDefaultAxis];
    x.coordinate = CPTCoordinateX;
    x.axisConstraints = [CPTConstraints constraintWithLowerOffset:0.0];
    x.tickDirection = CPTSignPositive;
    // ...

    CPTXYAxis *y = [self _makeDefaultAxis];
    y.coordinate = CPTCoordinateY;
    y.axisConstraints = [CPTConstraints constraintWithLowerOffset:0.0];
    y.tickDirection = CPTSignPositive;
    // ...

    CPTXYAxis *y2 = [self _makeDefaultAxis];
    y2.coordinate = CPTCoordinateY;
    y2.axisConstraints = [CPTConstraints constraintWithUpperOffset:0.0];
    y2.tickDirection = CPTSignNegative;
    // ...

    // Problem here ...
    CPTXYAxis *x2 = [self _makeDefaultAxis];
    x2.coordinate = CPTCoordinateX;
    y2.axisConstraints = [CPTConstraints constraintWithUpperOffset:0.0];
    x2.tickDirection = CPTSignNegative;

此代码生成以下图表。关于如何以这种方式镜像轴的任何想法?

Coreplot

1 个答案:

答案 0 :(得分:1)

x2设置部分中有拼写错误。改变

y2.axisConstraints = …

x2.axisConstraints = …