Negative values not displayed in line charts using ios-charts using Swift

北城余情 提交于 2019-12-11 09:53:49

问题


I have negative values in my line chart using ios-charts. Positive values are displayed but negative values are clipped at 0. I have set the left and right axes not to start at 0 but no help.

    LineChart1.leftAxis.startAtZeroEnabled = false
    LineChart1.rightAxis.startAtZeroEnabled = false

Any ideas? TIA.

Code snippet below.

    override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view.

    self.navigationController?.navigationBar.translucent = false

    self.title = "Line Chart 1"
    LineChart1.bounds = CGRectMake(-20, -20, 275, 250)
    LineChart1.data = getMyData()
    LineChart1.drawBordersEnabled = false
    LineChart1.legend.enabled = false
    LineChart1.leftAxis.startAtZeroEnabled = false
    LineChart1.rightAxis.startAtZeroEnabled = false
    LineChart1.xAxis.setLabelsToSkip(0)
    LineChart1.xAxis.drawGridLinesEnabled = false
    LineChart1.leftAxis.drawGridLinesEnabled = true
    LineChart1.rightAxis.drawLabelsEnabled = false
    LineChart1.animate(xAxisDuration: 0.3)
    LineChart1.animate(yAxisDuration: 0.3)

    LineChart1.setNeedsDisplay()
}

func getMyData() -> LineChartData {

    var xVals = ["2008","2009","2010","2011","2012"]

    var courses: [ChartDataEntry] = []
    courses.append(ChartDataEntry(value: 3, xIndex: 0))
    courses.append(ChartDataEntry(value: -40, xIndex: 1))
    courses.append(ChartDataEntry(value: 4, xIndex: 2))
    courses.append(ChartDataEntry(value: 4, xIndex: 3))
    courses.append(ChartDataEntry(value: 3, xIndex: 4))

    let bcds = LineChartDataSet(yVals: courses, label: "")
    bcds.valueTextColor = UIColor.blackColor()

    return LineChartData(xVals: xVals, dataSet: bcds)
}

回答1:


You should call notifyDataSetChanged() after setting startAtZeroEnabled - like in the sample app.

The chart does not know of a change in a property like startAtZeroEnabled on an inner component, so you have to tell it. And because min/max are calculated in notifyDataSetChanged according to startAtZeroEnabled, that's a case where you have to notify, and just setNeedsDisplay...



来源:https://stackoverflow.com/questions/30019464/negative-values-not-displayed-in-line-charts-using-ios-charts-using-swift

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!