【问题标题】:iOS Charts Library - How to handle X-Axis duplicate valuesiOS 图表库 - 如何处理 X 轴重复值
【发布时间】:2017-03-29 14:40:09
【问题描述】:

我使用 @danielgindi 的 Charts 库为我的 iOS 应用程序生成图表。一切似乎都很好,但我们正面临 X 轴数据重复的问题。

(X 轴值、Y 轴值)中的图形输入数据

("29/03/2017 00:00:00","2.7")

("29/03/2017 00:00:00","2.4")

("29/03/2017 00:10:00","1.3")

("29/03/2017 00:10:00","1.5")

("29/03/2017 00:20:00","1.8")

....

....

....

("29/03/2017 01:00:00","1.2")

("29/03/2017 09:00:00","2.7")

("29/03/2017 09:10:00","-10.8")

....

....

....

("29/03/2017 13:10:00","3.9")

("29/03/2017 13:20:00","-.8")

("29/03/2017 13:20:00","5.9"

其中 X 轴值是日期时间,Y 轴值是与该日期时间关联的 Double 值。

我使用了以下代码来格式化 X 轴

class ChartStringFormatter: NSObject, IAxisValueFormatter {

    public func stringForValue(_ value: TimeInterval, axis: AxisBase?) -> String {

        let date = Date(timeIntervalSince1970: value)
        return date.toString(format: "hh:mm a")
    }
}

但是当我缩放图表时,它有多个 X 轴值。我应该如何解决这个问题?

X 轴值的预期输出:

最初 - [12:00 AM、03:00 AM、06:00 AM、09:00 AM、12:00 PM、03:00 PM、06:00 PM、09:00 PM、12:00 PM ]

缩放时 - [12:00 AM、01:00 AM、02:00 AM、03:00 AM ...... 12:00 PM]

再次缩放 - [12:00 AM、12:30 AM、01:00 AM、01:30 AM、02:00 AM、02:30 AM、03:00 AM ...... 12:00 PM ]

再次缩放 - [12:00 AM、12:10 AM、12:20 AM、12:30 AM ...... 12:00 PM]

Sample GIF file:

iOS 图表库链接:https://github.com/danielgindi/Charts

【问题讨论】:

    标签: swift charts ios-charts


    【解决方案1】:

    如 iOS-Charts 库文档中所述:

    如果为 true,轴标签由 granularity 属性控制。

    当为 false 时,轴值可能会重复。

    ...

    @property (nonatomic) BOOL granularityEnabled;

    和:

    轴值之间的最小间隔。

    这可用于在放大时避免标签重复。

    默认:1.0

    @property (nonatomic) double granularity;

    所以我很确定这些行会为你完成工作:

    <strong>[yourChart.xAxis setGranularityEnabled:YES];</strong>

    <strong>[yourChart.xAxis setGranularity:1.0];</strong>

    【讨论】:

      【解决方案2】:

      在图表中添加以下两个属性即可解决您的问题

      chart.xAxis.granularityEnabled = true
      chart.xAxis.granularity = 1
      

      如果要删除重复项,请记住不要在图表中使用此属性

      chart.xAxis.forceLabelsEnabled = true
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-16
        • 1970-01-01
        • 2014-10-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多