macos - 将 x、y、x2、y2 轴限制在 core-plot 中绘图区域的两侧

标签 macos cocoa core-plot

此处演示问题的项目:http://github.com/danieljfarrell/CorePlotBoxAxis

<小时/>

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

Plot

这里的xy轴是底部和左侧边缘; x2y2 分别是上边缘和右边缘。

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

是否可以实现带有约束系统的盒子轴?我已尝试以下操作,并且它正确地固定了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

最佳答案

x2 设置部分存在拼写错误。改变

y2.axisConstraints = …

x2.axisConstraints = …

关于macos - 将 x、y、x2、y2 轴限制在 core-plot 中绘图区域的两侧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21882678/

相关文章:

cocoa 迅速 : how can set NSTextField to only accept number

objective-c - 在 Objective-c 中使用进度条将文件从一个地方复制到另一个地方

ios - 核心剧情: axis alternatingBandFills with custom axis labels

macos - 在哪里可以找到 CocoaAsyncSocket 的非 ARC 版本?

ios - NSOperation。取消与完成状态

php - 如何让 str_replace 识别使用 glob 检索的文件名中的变音符号(在 Mac 上)?

objective-c - 最后使用 Cocoa 打开的文档

macos - 如何从 go 启动 vim?

ios - 核心图 Y 轴标签最初不显示,但随后显示

Objective-C、Core-Plot 实时图与 CPU