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)
}
You should call
notifyDataSetChanged()
after settingstartAtZeroEnabled
- 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 innotifyDataSetChanged
according tostartAtZeroEnabled
, that's a case where you have to notify, and justsetNeedsDisplay
...