繁体   English   中英

iOS图表:将数据合并到堆积的条形图中?

[英]iOS Charts: Combined data into stacked bar chart?

我刚开始使用iOS Charts库,并且能够制作条形图,但是在理解如何“堆叠”包含相同x轴值的一组数据时遇到了麻烦。

这是我的条形图当前的样子:

在此处输入图片说明

和实现此目的的代码:

extension MyViewController: IAxisValueFormatter
{
    func stringForValue(_ value: Double, axis: AxisBase?) -> String
    {
        let record_ARRAY = record_ARRAY.sorted(by: {$0.date < $1.date})

        let date = record_ARRAY[Int(value)].date

        return ReusableClass.typeThreeDateFormat(date: date)
    }
}

var chargeDates_ARRAY = [Date]()
var chargeCosts_ARRAY = [Double]()

override func viewDidLoad()
{
    chargeDates_ARRAY = [2017-08-05 07:00:00 +0000, 2017-08-06 07:00:00 +0000, 2017-08-06 07:00:00 +0000, 2017-08-07 07:00:00 +0000]

    chargeCosts_ARRAY = [8.0, 3.0, 5.6600000000000001, 4.4400000000000004]

    createBarChart(dataPoints: chargeDates_ARRAY, values: chargeCosts_ARRAY)

    barChartView.delegate = self
}

func createBarChart(dataPoints: [Date], values: [Double])
{
    var dataEntries: [BarChartDataEntry] = []

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

        dataEntries.append(dataEntry)
    }

    barChartView.xAxis.valueFormatter = self

    barChartView.xAxis.granularity = 1

    barChartView.xAxis.setLabelCount(dataPoints.count, force: false)

    barChartView.animate(yAxisDuration: 1.0, easingOption: .easeInOutQuad)

    let chartDataSet = BarChartDataSet(values: dataEntries, label: "")
    let chartData = BarChartData(dataSet: chartDataSet)

    barChartView.data = chartData

    barChartView.zoom(scaleX: zoomXMultiplier, scaleY: 0.0, x: 0, y: 0)

    barChartView.barData?.barWidth = barWidthMultiplier
}

我想做的是将包含2个相同x轴值08/06/17的数据08/06/17到一个堆叠的条中,并实现如下所示:

在此处输入图片说明

我试图从问题中得到答案: Swift中带有条形图的堆积条形图

但是我什么也没办法。

有人可以帮忙吗? 谢谢!

尝试将您的chargeCosts_ARRAY = [8.0, 3.0, 5.6600000000000001, 4.4400000000000004]chargeCosts_ARRAY = [[8.0], [3.0, 5.6600000000000001], [4.4400000000000004]]基本上,您试图创建类型[[Double]]() 然后将BarChartDataEntry(x: Double(index), y: values[index])更改为BarChartDataEntry(x: Double(index), yValues: values[index]) 快乐的编码:)

暂无
暂无

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

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