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

Posted

技术标签:

【中文标题】Swift - 以编程方式创建图表(条形图、折线图、饼图、柱形图)[关闭]【英文标题】:Swift - Create charts(bar, line, pie, column) programatically [closed] 【发布时间】:2019-03-11 13:19:05 【问题描述】:

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

【问题讨论】:

请不要直接投反对票。如果有什么问题。请解释 你自己试过了吗?不要只是抛出一个问题,为什么不付出一些努力并尝试自己,然后询问您遇到的任何问题。如果您表现出一些努力,例如更具体地询问您的要求和/或包括您的代码,您将获得更积极的回应 感谢您的建议。这很有教育意义。 @ManeeshAucharla - 欢迎来到 Stack Overflow。请使用tour 并查看How to Ask。 【参考方案1】:

在您查看更多图表文档后,您可能会例如制作折线图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 

        

    


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

【讨论】:

感谢您的帮助

以上是关于Swift - 以编程方式创建图表(条形图、折线图、饼图、柱形图)[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在R中一起创建折线图和条形图[重复]

📈📈📈📈📈iOS 图表框架 AAChartKit ---强大的高颜值数据可视化图表框架,支持柱状图条形图折线图曲线(代码

s-s-rS 2008 使用来自同一数据集的不同总和在条形图顶部绘制折线图

一个图形核心图中的折线图和条形图

折线图+不同频率的分组条形图[重复]

matplotlib 将条形图和折线图结合在一起