强制在x轴上显示最小值/最大值

时间:2017-05-17 11:25:20

标签: ios swift charts ios-charts

我正在与library合作。有人知道是否可以在x轴上强制显示最小和最大标签。

我有什么:

enter image description here

我想要实现的目标:

enter image description here

我的实施:

private func prepareXAxis() {
    lineChart.xAxis.labelPosition = .bottom
    lineChart.xAxis.valueFormatter = ChartXAxisDateValueFormatter()
    lineChart.xAxis.labelFont = UIFont.pmd_robotoRegular(ofSize: 13.0)
    lineChart.xAxis.labelTextColor = UIColor.pmd_darkGrey
}

实现我自己的ValueFormatter

import Foundation
import Charts

class ChartXAxisDateValueFormatter: NSObject, IAxisValueFormatter {

    func stringForValue(_ value: Double, axis: AxisBase?) -> String {
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "hh:mm\ndd MMM"

        return dateFormatter.string(from: Date(timeIntervalSince1970: value))
    }
}

修改

我添加了此代码,但仍会跳过x轴上的第一个和最后一个标签:

lineChart.xAxis.axisMinimum = lineDataSet.xMin
lineChart.xAxis.axisMaximum = lineDataSet.xMax
lineChart.xAxis.avoidFirstLastClippingEnabled = false
lineChart.xAxis.granularity = 1.0

我检查了lineDataSet.xMinlineDataSet.xMax。它们具有有效值。

2 个答案:

答案 0 :(得分:1)

您需要设置以下属性,不要跳过第1个和最后一个值

//Set up XAxis into chart.
lineChart.xAxis.axisMinimum = 0
lineChart.xAxis.avoidFirstLastClippingEnabled = NO
lineChart.xAxis.granularity = 1.0

希望这会有所帮助。

答案 1 :(得分:0)

我找到了解决方案。丢失的路线:

combinedChart.xAxis.forceLabelsEnabled = true

我还将图表类型从LineChart更改为CombinedChartView