Swift - 以编程方式创建图表(条形图,折线图,饼图,柱形图)[关闭]

问题描述 投票:-6回答:1

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

ios swift charts
1个回答
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 

        }

    }

}

如果您希望一个视图能够充当条形图和折线图,则可能更容易在同一位置为每个类型创建一个视图,并且您可以将条形图视图更改为任何类型的您想要的条形图并更新它以根据需要重新更改视图,但是当您需要折线图时,只需隐藏该视图并使用折线图。

© www.soinside.com 2019 - 2024. All rights reserved.