繁体   English   中英

iOS图表-分组的条形图无法正确索引

[英]iOS Charts - Grouped Bar chart not index properly

我正在填充具有折线图和分组条形图的组合图,但是条形图并没有达到预期。 它们与xAxis索引不同步。 任何帮助将不胜感激。

合并图表图像:线+分组条形图

对于我附加的图像,酒吧应该与每个月同步,但并非如此。

这是代码:

private func setLineChartWith(data: [Double]) {

    var lineChartEntries: [ChartDataEntry] = []

    for i in 0..<data.count {

        let lineChartEntry = ChartDataEntry(value: data[i], xIndex: i)
        lineChartEntries.append(lineChartEntry)
    }

    let lineDataSet = LineChartDataSet(yVals: lineChartEntries, label: "Line")
    lineDataSet.lineWidth = 3
    lineDataSet.circleRadius = 4
    lineDataSet.mode = .CubicBezier
    lineDataSet.highlightEnabled = true

    let lineChartData = LineChartData(xVals: datesData, dataSets: [lineDataSet])
    chartData.lineData = lineChartData
}

    // MARK: Bar Chart Code
    func setBarChartWith(data: [Double], secondaryData: [Double]?) {

    var barChartEntries1: [BarChartDataEntry] = []
    var barChartEntries2: [BarChartDataEntry] = []
    for i in 0..<data.count {

        barChartEntries1.append(BarChartDataEntry(value: data[i], xIndex: i))
        barChartEntries2.append(BarChartDataEntry(value: data[i], xIndex: i))
    }

    let barDataSet = BarChartDataSet(yVals: barChartEntries1, label: "Bar1")
    barDataSet.barSpace = 0.5
    barDataSet.highlightEnabled = true
    barDataSet.barShadowColor = UIColor.clearColor()

    let barDataSet2 = BarChartDataSet(yVals: barChartEntries1, label: "Bar2")
    barDataSet2.barSpace = 0.5
    barDataSet2.highlightEnabled = true
    barDataSet2.barShadowColor = UIColor.clearColor()

    var dataSets : [BarChartDataSet] = [BarChartDataSet]()
    dataSets.append(barDataSet)
    dataSets.append(barDataSet2)
    let barChartData = BarChartData(xVals: datesData, dataSets: dataSets)
    chartData.barData = barChartData
}

可能您正在使用库来创建图形。 该书目存在此问题,项目在x轴上受到限制。 该图将它们划分成几部分,以便用户即使没有数据也可以理解。 您将意识到,它总是在数组的第一个索引处开始,并在数组的最后一个索引处结束,因此它从x轴的中间获取一些数据。 因此,用户可以理解该图,并且该图不会超载。 库中没有合适的解决方案,但是您可以尝试在x轴上缩放图形或标签。 增大图形的宽度也应有所帮助。

设置班级水平

 var barCartDataSet : [IChartDataSet] = []

  var colNamesArray : [String]!

//根据需要多次调用此函数,这意味着一组中需要多少条

setChartData("Test Lable", values: [2.0,3.0]  , color: UIColor.darkGrayColor())

//之后,最后调用这个

setChartDataSet(colNamesArray, chartDataSet: barCartDataSet)

// Functios

   func setChartData(lableName: String, values: [Double] , color : UIColor) {


        var dataEntries: [BarChartDataEntry] = []


        for i in 0..<values.count {
            let dataEntry = BarChartDataEntry(value: values[i], xIndex: i)
            dataEntries.append(dataEntry)
        }


        let chartDataSet = BarChartDataSet(yVals: dataEntries, label: lableName)

        barCartDataSet.append(chartDataSet)


        //changing color
        chartDataSet.colors = [color]   
    }

    func setChartDataSet(dataPoints: [String], chartDataSet : [IChartDataSet]) {

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


        let chartData = BarChartData(xVals: dataPoints, dataSets: chartDataSet)

        chartData.groupSpace = 0.8

        BarChartDrawingView.data = chartData

        BarChartDrawingView.xAxis.labelPosition = .Bottom

        //Description Text
        BarChartDrawingView.descriptionText = " "



    }

对不起,英语不好。 希望能帮助到你 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM