【问题标题】:Core Plot: Y axis label alignment with bars核心图:Y 轴标签与条形对齐
【发布时间】:2014-01-03 00:40:40
【问题描述】:

我正在尝试执行类似于下图中的 (B) 的操作,即移动 y 轴标签,使它们位于相关条形上方并左对齐。我有图表的左侧部分(A)(基于本教程http://www.gilthonwe.com/2012/06/09/stacked-bar-chart-coreplot-ios/ 的位)。 从我有限的核心情节经验中,我可以看到 3 个选项。

i) 相对于当前位置移动所有 y 轴标签,使其左下角成为条形的左上角。我没有找到任何这样的方法。

ii) 更改 y 轴,使条形延伸到任一侧。更改我的刻度位置,使其位于现有柱之间。这似乎是可能的,但要正确地获得数字(特别是在图中我只使用数字,但实际上标签可以有任意数量的字符并向左延伸任意距离)。

iii) 为每个标签创建 CPTTextLayers,并完全删除 y 轴标签。这似乎是最简单/最干净的解决方案,但我一直无法弄清楚如何将任何文本图层的左下角锚定到栏的左上角。

或者我猜 (iv) 这在核心情节中是不可能的。

非常感谢任何想法。

【问题讨论】:

    标签: ios cocoa-touch plot core-plot


    【解决方案1】:

    至少有两种不同的方法可以做到这一点:

    1. 使用tickLabelDirection 将标签移动到轴的另一侧,并使用barOffset 调整条形位置,或者通过修改数据源中的条形位置为标签留出空间。

    2. 为自定义标签创建注释(类似于您的项目 iii.)。确定条形边缘的坐标取决于几个因素,包括barWidth、barOffset 和barWidthsAreInViewCoordinates。

    【讨论】:

    • 我实际上使用了'y.tickDirection = CPTSignPositive;'把它放在轴的另一边,但是 label.Offset 不允许我水平移动标签(它们向右有点太远了)。但是,我使用 y.orthogonalCoordinateDecimal 的负值修复了此问题,以将 y 轴从条形移开。随着数据的变化,我仍然不完全相信布局的一致性,所以我可以按照你的建议尝试 tickLabelDirection。谢谢
    • 实际上,我在标签上做 labelOffset,而不是在轴上。改变这个解决了我的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-25
    • 1970-01-01
    • 1970-01-01
    • 2013-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多