Я использую платформу Chart в моем проекте iOS, чтобы показать Line Chart. Он отлично работает, когда хотя бы на один уровень данных больше 0, но показывает отрицательное значение, когда есть 0 данных. Результаты хороши, когда данные 1 Показывает отрицательные значения, когда все данные 0
Вот код, который я использую.Я вызываю функцию setData для передачи данных в диаграмму `import UIKit import Класс диаграмм GraphCollectionViewCell: UICollectionViewCell {
let xaxis = ["1","2","3","4","5","6","7"]
@IBOutlet weak var graphView: LineChartView!
@IBOutlet weak var sentCountLbl: UILabel!
@IBOutlet weak var opensCountLbl: UILabel!
@IBOutlet weak var opensLbl: UILabel!
override func awakeFromNib() {
graphView.isUserInteractionEnabled = false
self.graphView.gridBackgroundColor = UIColor.white
self.graphView.xAxis.labelPosition = .bottom
self.graphView.xAxis.drawGridLinesEnabled = false
self.graphView.leftAxis.gridLineWidth = 0.5
self.graphView.leftAxis.gridLineDashLengths = [1]
self.graphView.leftAxis.drawAxisLineEnabled = false
self.graphView.xAxis.drawAxisLineEnabled = false
self.graphView.rightAxis.enabled = false
self.graphView.xAxis.labelFont = UIFont.systemFont(ofSize: 12, weight: .semibold)
self.graphView.leftAxis.labelFont = UIFont.systemFont(ofSize: 12, weight: .semibold)
self.graphView.doubleTapToZoomEnabled = false
self.graphView.pinchZoomEnabled = false
self.graphView.chartDescription?.text = ""
self.graphView.xAxis.labelTextColor = UIColor.gray
self.graphView.leftAxis.labelTextColor = UIColor.gray
self.graphView.xAxis.avoidFirstLastClippingEnabled = false
self.graphView.xAxis.granularity = 1
self.graphView.xAxis.valueFormatter = IndexAxisValueFormatter(values: xaxis)
self.graphView.xAxis.spaceMin = 0.5
self.graphView.xAxis.spaceMax = 0.5
self.graphView.legend.enabled = false
self.graphView.noDataText = "Nothing to show"
}
override func prepareForReuse() {
super.prepareForReuse()
}
//Set chart data
func setChartData(xData:[Double], yData:[Double]) {
graphView.animate(yAxisDuration: 1)
var yVals1 : [ChartDataEntry] = [ChartDataEntry]()
for i in 0..<xData.count {
yVals1.append(ChartDataEntry(x:Double(i), y:yData[i] ))
}
// 2 - create a dataset with our array
let set1: LineChartDataSet = LineChartDataSet(values: yVals1, label:nil)
set1.axisDependency = .right
set1.setColor(UIColor(red:0.34, green:0.67, blue:0.18, alpha:1))
set1.setCircleColor(UIColor(red:0.34, green:0.67, blue:0.18, alpha:1))
set1.lineWidth = 2
set1.circleRadius = 5
set1.circleHoleColor = UIColor(red: 0.973, green: 0.973, blue: 0.973, alpha: 1)
set1.fillColor = UIColor(red:0.34, green:0.67, blue:0.18, alpha:1)
set1.highlightColor = UIColor.red
set1.drawCircleHoleEnabled = true
let data: LineChartData = LineChartData()
data.addDataSet(set1)
data.highlightEnabled = false
data.setValueTextColor(graphView.backgroundColor)
graphView.data = data
}
}`
var days: [Double] = [1,2,3,4,5,6, 7] процентное соотношение: [Double] = [0,0,0,0,0,0,0] cell.setChartData (xData: дни, yData: процент)