Линии линейного графика с одинаковым значением перекрываются

#swift #charts #linechart

Вопрос:

Я использую danielgindi / Диаграммы для создания линейного графика. Когда данные линейного графика имеют одинаковые значения, отображается только последняя нарисованная линия. Другие линии скрыты за последней нарисованной линией. Есть ли какой-нибудь способ показать все линии.

изображение: «fff» и «Пользователь B» скрыты за «Пользователем C», все они имеют количество действий, равное нулю

введите описание изображения здесь

Инициализация линейного графика

  func commonInit() {
        guard let view = loadViewFromNib() else { return }
        view.frame = self.bounds
        self.addSubview(view)
        
        lblXAxis.text = "Days"
        lblYAxis.text = "Number of Activities"
        lblYAxis.transform = CGAffineTransform(rotationAngle: -CGFloat.pi / 2)
        
        self.roundAllCorners(radius: 6)
        
        let valFormatter = NumberFormatter()
        valFormatter.numberStyle = .none
        valFormatter.maximumFractionDigits = 0
        viewProgressLineChart.leftAxis.valueFormatter = DefaultAxisValueFormatter(formatter: valFormatter)
        viewProgressLineChart.leftAxis.granularity = 1
        viewProgressLineChart.xAxis.granularity = 1
        viewProgressLineChart.xAxis.labelCount = 11
        viewProgressLineChart.xAxis.avoidFirstLastClippingEnabled = false
        viewProgressLineChart.xAxis.labelPosition = .bottom
        viewProgressLineChart.chartDescription?.text = ""
        viewProgressLineChart.xAxis.labelTextColor = UIColor.onPrimary
        viewProgressLineChart.leftAxis.labelTextColor = UIColor.onPrimary
        viewProgressLineChart.rightAxis.labelTextColor = UIColor.onPrimary
        viewProgressLineChart.clipValuesToContentEnabled = true
        viewProgressLineChart.legend.enabled = false
        viewProgressLineChart.rightAxis.enabled = false
        viewProgressLineChart.animate(xAxisDuration: 0.8)
        
    }
 

Вот как данные передаются на линейный график,

 func updateGraph(users: [User]){
 let data = LineChartData()
        for (index,user) in users.enumerated(){
            let userColor = UIColor.selectedColors[index]
            
            userAndStatusColorArray.append(UserAndStatusColor(name: user.name ?? "user", color: userColor))
            
            var lineChartEntry = [ChartDataEntry]()
            
            if user.progress != nil{
                for progress in user.progress!{
                    let chartData = ChartDataEntry(x: Double(progress.day), y: Double(progress.activitiesCompleted!))
                    lineChartEntry.append(chartData)
                }
                
                let chartDataSet = LineChartDataSet(entries: lineChartEntry)
                chartDataSet.colors = [userColor]
                chartDataSet.circleColors = [userColor]
                chartDataSet.circleRadius = 3
                chartDataSet.drawValuesEnabled = false
                data.addDataSet(chartDataSet)
            }
        }
        viewPODProgressLineChart.viewProgressLineChart.data = data
}
 

Комментарии:

1. Не могли бы вы, пожалуйста, опубликовать свой код инициализации диаграммы?

2. @LucaPizzini Вопрос обновлен.