【问题标题】:core-plot iOS reversed Y axiscore-plot iOS 反转 Y 轴
【发布时间】:2011-05-17 21:23:32
【问题描述】:

我想使用 core-plot 来显示水深图(实时更新),但我不知道如何反转 Y 轴,使 X 轴(代表时域)处于打开状态我的 UIView 的顶部和 Y 轴以正值向底部增长。

编辑

如果我能像这样画轴就更好了:
- X 轴是时间
- Y 轴从 0 到 X (X > 0),顶部是 0,底部是 X
- X 轴在底部

ASCII 版本:

0 |
1 |
.
.
.
x |
--------------------------

0 1 2 3 4 5 6 7 ...

【问题讨论】:

    标签: iphone objective-c ios core-plot


    【解决方案1】:

    您可以对绘图范围使用负长度来反转轴的方向。例如(来自 CPTTestApp 中的轴演示):

    plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(0.0)
                                                    length:CPTDecimalFromDouble(-10.0)];
    

    【讨论】:

    • 如果您阅读我的问题,我想反转 Y 轴。在提交问题之前我已经尝试过您的解决方案,但它无法正常工作:(
    • 我可以把我的代码发给你,但它与 Core Plot 分布中的散点图速度测试示例几乎相同。
    • 对于 y 轴,只需将我上面发布的代码中的 xRange 替换为 yRange 即可。绘图范围的位置始终是图表左侧(对于 x 轴)和图表底部(对于 y 轴)的值。长度的大小决定了范围内有多少个单位,符号决定了它是向上计数还是向下计数。
    • 如果我按照您在此处提到的操作,Y 轴就会消失。 X 轴停留在我视野的底部。也许这是核心情节中的一个错误,我不知道。
    • 你尝试过 location = x 和 length = -x 的 yRange 吗?
    【解决方案2】:

    从接受的答案中理解这最终有点棘手。要为理解如何在 coreplot 中翻转 y 轴值的任何人添加另一个示例,您确实需要将 plotRangeWithLocation 声明为您想要实现的正数,然后将长度设置为 相同的负数像这样:

    plotSpacePressureLeft.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(9000)
     length:CPTDecimalFromFloat(-9000)];
    

    从 iOS 14 和 coreplot mid 2020 版本开始,这会产生这样的 y 轴:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-15
      • 2013-09-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多