danielgindi / библиотека iOSCharts: метка оси x на горизонтальной гистограмме - PullRequest
0 голосов
/ 14 мая 2018

Image with following Code with SetLabel Count

со следующим кодом

barchart.xAxis.labelTextColor = UIColor.white

barchart.xAxis.labelPosition = .topInside

barChart.xAxis.setLabelCount(7, force: true)

Выпуск : разрушена сетка оси x Image with following Code without setLabelCount

barchart.xAxis.labelTextColor = UIColor.white

barchart.xAxis.labelPosition = .topInside

Проблема : Метка на правой стороне скрыта

Требуется решение : Необходимо исправить следующее:

* Сетка должна быть выровнена

* Метка должна быть просмотрена

мой код:

barChart.legend.enabled = false

barChart.xAxis.labelTextColor = UIColor.white
barChart.xAxis.labelPosition = .topInside

barChart.leftAxis.drawAxisLineEnabled = true
barChart.leftAxis.enabled = true
barChart.leftAxis.drawGridLinesEnabled = false
barChart.rightAxis.drawAxisLineEnabled = false

barChart.rightAxis.drawGridLinesEnabled = true
barChart.rightAxis.drawLabelsEnabled = true
barChart.rightAxis.labelFont =  NSUIFont.systemFont(ofSize: 13.0)
barChart.xAxis.labelFont = NSUIFont.systemFont(ofSize: 16.0)
barChart.rightAxis.labelTextColor =  UIColor.white

barChart.leftAxis.axisMinimum = 0.0
barChart.rightAxis.axisMinimum = 0.0
barChart.rightAxis.drawLabelsEnabled = false
    var dataEntries: [ChartDataEntry] = []

    for i in 0..<dataPoints.count {
        let dataEntry = BarChartDataEntry(x: Double(i),yValues: [values[i]])
        dataEntries.append(dataEntry)
    }
   let chartDataSet = BarChartDataSet(values: dataEntries, label: "HB2")
    let chartData = BarChartData(dataSet: chartDataSet)
    chartData.setValueFormatter(DefaultValueFormatter(formatter: formatter))
    barChart.xAxis.valueFormatter = IndexAxisValueFormatter(values:dataPoints)
    barChart.data = chartData

Ответы [ 2 ]

0 голосов
/ 15 мая 2018

согласно моему опыту, вам нужно добавить lableCount в конфигурации вашего графика, как показано ниже, чтобы он вычислял правильные xAxis и отображал его на вашем графике

horiBarChartView.xAxis.labelCount = <yourXAxisArray>.count 

Если мы не установим этот счетчик некоторое время, он не сможет сгенерировать правильную xAxis позицию на графике.

Так что попробуйте один раз и дайте мне знать, работает он или нет.

0 голосов
/ 15 мая 2018

Прежде всего позиция метки должна быть barchart.xAxis.labelPosition = .top, и я не понимаю, почему сетки не выровнены, но если вы используете следующий код, он должен быть выровнен по правому краю, это сработало для меня. chartView.legend.enabled = false

   // chartView.xAxis.labelTextColor = UIColor.white
    chartView.xAxis.labelPosition = .top

    chartView.leftAxis.drawAxisLineEnabled = true
    chartView.leftAxis.enabled = true
    chartView.leftAxis.drawGridLinesEnabled = false
    chartView.rightAxis.drawAxisLineEnabled = false

    chartView.rightAxis.drawGridLinesEnabled = true
    chartView.rightAxis.drawLabelsEnabled = true
    chartView.rightAxis.labelFont =  NSUIFont.systemFont(ofSize: 13.0)
    chartView.xAxis.labelFont = NSUIFont.systemFont(ofSize: 16.0)
    chartView.rightAxis.labelTextColor =  UIColor.white

    chartView.leftAxis.axisMinimum = 0.0
    chartView.rightAxis.axisMinimum = 0.0
    chartView.rightAxis.drawLabelsEnabled = false
    var dataEntries: [ChartDataEntry] = []

    for i in 0..<unitsSold.count {
        let dataEntry = BarChartDataEntry(x: Double(i),yValues: [unitsSold[i]])
        dataEntries.append(dataEntry)
    }
    let chartDataSet = BarChartDataSet(values: dataEntries, label: "HB2")
    let chartData = BarChartData(dataSet: chartDataSet)
    chartView.xAxis.valueFormatter = IndexAxisValueFormatter(values: months)
    chartView.data = chartData

    chartView.animate(yAxisDuration: 2.5)

Я удалил ваш первый форматер. Я не понимаю, почему вы его использовали, но он дал мне следующий график.

Horizontal bar chart

...