Диаграммы iOS не показывают значения Y - PullRequest
0 голосов
/ 16 апреля 2019

Я пишу приложение для iOS в Swift 4.2.Я использую Библиотека диаграмм для отображения горизонтальной гистограммы.Когда я открываю пример проекта, он показывает значения Y, но в моем проекте он не показывает значения Y.Я скопировал точный код из его образца.

Пример снимка экрана: enter image description here Наблюдать 8,0, 14,0, 4,0, 10,0

Мой скриншот: enter image description here

Мой код:

 @IBOutlet weak var chartView: HorizontalBarChartView!

 func setupCharts(){

        chartView.noDataTextColor=UIColor(hex:UIConstants.Graphics.BrandTheme.ThemeColor)
        chartView.noDataText = "Chart_NoDataText".localized

        chartView.chartDescription?.enabled = false
        chartView.dragEnabled = false
        chartView.setScaleEnabled(true)
        chartView.pinchZoomEnabled = false
        //chartView.delegate = self
        chartView.drawBarShadowEnabled = false
        chartView.drawValueAboveBarEnabled = true
        chartView.maxVisibleCount = 60
        chartView.setVisibleXRangeMaximum(4)
        chartView.drawGridBackgroundEnabled=false
        chartView.extraRightOffset=CGFloat(24)
        chartView.isUserInteractionEnabled = false
        chartView.legend.enabled=false
        chartView.fitBars = true

        let xAxis = chartView.xAxis
        xAxis.labelPosition = .bottom
        xAxis.labelFont =  UIFont(name: "Lato-Regular", size: 11)!
        xAxis.drawAxisLineEnabled = false
        xAxis.drawGridLinesEnabled = false
        xAxis.granularity = 1
        xAxis.enabled=true

        //
        let leftAxis = chartView.leftAxis
        leftAxis.labelFont =  UIFont(name: "Lato-Regular", size: 10)!
        leftAxis.drawAxisLineEnabled = false
        leftAxis.drawGridLinesEnabled = false
        leftAxis.axisMinimum = 0
        leftAxis.enabled=false


        let rightAxis = chartView.rightAxis
        rightAxis.labelFont =  UIFont(name: "Lato-Regular", size: 10)!
        rightAxis.drawAxisLineEnabled = false
        rightAxis.drawGridLinesEnabled = false
        rightAxis.axisMinimum = 0
        rightAxis.enabled = false

    }




func setChartDataWithValues(_ count: Int, values:[Double], labels:[String]) {

    let yVals = (0..<count).map { (i) -> BarChartDataEntry in

        let val = values[i]

        return BarChartDataEntry(x: Double(i), y: val)
    }

    let barChartDataSet = BarChartDataSet(values: yVals, label: "MF")

    barChartDataSet.drawIconsEnabled = false
    barChartDataSet.colors=[UIColor(hex: UIConstants.Graphics.BrandTheme.ThemeColor)]


    let data = BarChartData(dataSet: barChartDataSet)
    data.setValueFont(UIFont(name:"Lato-Regular", size:10)!)
    data.setValueTextColor(UIColor(hex:UIConstants.Graphics.BrandTheme.ThemeColor))

    let xAxis = chartView?.xAxis
    xAxis?.setLabelCount(3, force: false)
    xAxis?.valueFormatter=IndexAxisValueFormatter(values: labels )

    chartView?.data = data

}

Вызов:

self.setChartDataWithValues(3,values:values, labels: ["Mutual Funds","Fixed Deposits","Savings Account"].reversed())

1 Ответ

0 голосов
/ 16 апреля 2019

Вы должны добавить data.setDrawValues(true) при создании BarChartData:

...
let data = BarChartData(dataSet: barChartDataSet)
data.setDrawValues(true)
data.setValueFont(UIFont(name:"Lato-Regular", size:10)!)
data.setValueTextColor(UIColor(hex:UIConstants.Graphics.BrandTheme.ThemeColor))
...

Для версии 3.2.1 из Charts вам также необходимо удалить эту строку, поскольку значения не отображаются, если drawIconsEnabled ложь

barChartDataSet.drawIconsEnabled = false
...