Swift-以编程方式创建图表(条形图,折线图,饼图,列)

时间:2019-03-11 13:19:05

标签: ios swift charts

我正在使用https://github.com/danielgindi/Charts框架。 根据教程,我们必须创建一个视图出口,然后将其分类为对应的图表视图。 因此,我创建了4个网点并成功加载了图表。 我只想将一个出口用于所有图表。 我在表格视图中显示图表。因此,我可以在所有图表中重用一个视图。 我尝试通过调用init()方法。但是,init()方法并非适用于所有图表。 此外,我也尝试给框架,但失败了。 请帮助。

1 个答案:

答案 0 :(得分:0)

在进一步研究图表文档之后,例如,如果您制作折线图LineChartView(),则可能具有不同的更新功能来更改其外观,例如,这是我的一个:

func lineChartUpdate(dataPoints: [String], values: [Double]) {

    //Graph data management
    var lineChartEntry = [ChartDataEntry]()

    for i in 0..<prices.count {

        //Graph marker from extension

        if prices != [] {

            let value = ChartDataEntry(x: Double(i), y: values[i])
            lineChartEntry.append(value)

            let line1 = LineChartDataSet(values: lineChartEntry, label: "Price")

            line1.setColor(.white)
            line1.drawVerticalHighlightIndicatorEnabled = false
            line1.drawHorizontalHighlightIndicatorEnabled = false
            line1.mode = .cubicBezier
            line1.lineWidth = 2.0
            line1.drawValuesEnabled = true
            line1.valueTextColor = UIColor.white
            line1.drawCirclesEnabled = false

            chartView.xAxis.valueFormatter = IndexAxisValueFormatter(values:self.days)
            chartView.xAxis.granularity = 1
            chartView.leftAxis.drawGridLinesEnabled = false
            chartView.xAxis.drawGridLinesEnabled = false
            //Expanded

            chartView.rightAxis.enabled = false
            chartView.leftAxis.enabled = false
            chartView.xAxis.enabled = false

            chartView.rightAxis.drawGridLinesEnabled = false
            chartView.legend.enabled = false

            chartView.dragEnabled = false
            chartView.pinchZoomEnabled = false
            chartView.drawMarkers = false
            chartView.doubleTapToZoomEnabled = false

                self.chartView.isUserInteractionEnabled = true

            //Graph Data.

                let data = LineChartData()
                data.addDataSet(line1)
                self.chartView.data = data
            self.chartLoaded = true 

        }

    }

}

如果您希望一个视图能够用作条形图和折线图,则在同一位置为每种类型设置一个视图可能会更容易,并且可以将例如条形图视图更改为您想要的任何类型的条形图并对其进行更新,以根据您想重用视图的程度进行更改,但是当您需要折线图时,只需隐藏该视图并使用折线图即可。