多个标签xAxis iOS-Charts

时间:2016-09-29 18:09:52

标签: ios swift charts ios-charts

我在图书馆遇到麻烦,我无法找到解决方案,希望你能提供帮助。

当我在图表上放置数据时,关于绘制轴和形状的一切都很顺利但是我的xAxis上的标签会自动增加,我不知道为什么,看看我让你的代码和问题的图片,也许这听起来很奇怪,但为了显示问题,我用一个数据创建了一个barChart。

func setChart(values: [Double]) {

    let formato:BarChartFormatter = BarChartFormatter()
    formato.setArray(self.listadoLabels)
    let xaxis:XAxis = XAxis()

    max = values.maxElement()

    barChartView.noDataText = "You need to provide data for the chart."

    var dataEntries: [BarChartDataEntry] = []

    for i in 0..<values.count {
        let dataEntry = BarChartDataEntry(x: Double(i), y:values[i])
        dataEntries.append(dataEntry)

        formato.stringForValue(Double(i), axis: xaxis)
    }

    xaxis.valueFormatter = formato

    let chartDataSet = BarChartDataSet(values: dataEntries, label: "Units Sold")
    chartDataSet.colors = ChartColorTemplates.joyful()

    barChartView.fitBars = true //Para que las barras inicial y final se muestren completas
    barChartView.xAxis.valueFormatter = xaxis.valueFormatter
    barChartView.xAxis.labelPosition = .Bottom

    barChartView.leftAxis.axisMinimum = 0
    barChartView.leftAxis.axisMaximum = max + 2
    barChartView.rightAxis.enabled = false
    barChartView.drawValueAboveBarEnabled = false
    barChartView.descriptionText = ""
    barChartView.xAxis.drawGridLinesEnabled = false
    barChartView.animate(xAxisDuration: 1.0, yAxisDuration: 1.0)

    let chartData = BarChartData()
    chartData.addDataSet(chartDataSet)
    barChartView.data = chartData
}

大多数代码只是样式,我有一个xAxis格式的类,因为你需要一个在xAxis中放置标签,这就是代码:

public func stringForValue(value: Double, axis: AxisBase?) -> String {

    return  "Label1"
}

我只发送一个5512的值,结果是,不要注意segmentTab和按钮:

enter image description here

1 个答案:

答案 0 :(得分:3)

我的情况和你一样,我无法找到确切的解决方案,但这个对我有用:

barChart?.xAxis.wordWrapEnabled = true
barChart?.xAxis.setLabelCount(5, force: true)

我也将我的酒吧集中在一起以匹配标签

let dataEntry = BarChartDataEntry(x: Double(i) + 0.5, y: Double(count))

在我的情况下,我的图表不能超过5个柱,所以我使用了5个,但你可以传递一个带有条数的变量并设置&#34; LabelCount&#34;对于那个数字,当你放大它仍然会重复标签,但它们不会重叠并且不会看起来很糟糕。

我知道这不是您正在寻找的答案,但希望有所帮助