项目在此处展示问题:http://github.com/danieljfarrell/CorePlotBoxAxis
我想制作一个如下图,其中我们有一个“盒子”轴,即轴始终位于绘图区域的外边缘。
这里 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;
此代码生成以下图表。关于如何以这种方式镜像轴的任何想法?
答案 0 :(得分:1)
x2
设置部分中有拼写错误。改变
y2.axisConstraints = …
到
x2.axisConstraints = …