ios - 正确的数据未显示在 ios 图表中

标签 ios swift swift3 ios-charts

我正在使用 Charts版本 3.0.1。我目前通过转换我的 Rails 项目自学 Swift。我不了解 Objective C,所以请多多包涵;到目前为止,我做得很好。

我下面的代码格式不正确,因为我在 PieChart 中缺少 days 数组:

enter image description here

数字似乎不正确。代码:

@IBOutlet weak var chartView: PieChartView!

override func viewDidLoad() {
    super.viewDidLoad()

    let days = ["Mo", "Tu", "Wed", "Thur", "Fri", "Sat", "Sun"]
    let gross = [11.00, 90.95, 250.00, 40.90, 60.88, 99.99, 25.00]

    setChart(dataPoints: days, values: gross)
}

func setChart(dataPoints: [String], values: [Double]) {
    var dataEntries: [ChartDataEntry] = []

    for i in 0..<dataPoints.count {

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

    }
    let pieChartDataSet = PieChartDataSet(values: dataEntries, label: "Gross Income")
    pieChartDataSet.sliceSpace = 2.0
    let pieChartData = PieChartData(dataSets: [pieChartDataSet]) // somewhere here confuses me.

    var colors: [UIColor] = []

    for _ in 0..<dataPoints.count {
        let red = Double(arc4random_uniform(256))
        let green = Double(arc4random_uniform(256))
        let blue = Double(arc4random_uniform(256))

        let color = UIColor(red: CGFloat(red/255), green: CGFloat(green/255), blue: CGFloat(blue/255), alpha: 1)
        colors.append(color)
    }

    pieChartDataSet.colors = colors

    chartView.data = pieChartData
}

我错过了什么吗?非常感谢您的第二只眼睛。

最佳答案

您已经更改了 x 和 y 值,因此索引将作为饼图的值出现。另外,请使用 PieChartDataEntry。 (我盒子上的工作代码)

  override func viewDidLoad() {
    super.viewDidLoad()
    let days = ["Mo", "Tu", "Wed", "Thur", "Fri", "Sat", "Sun"]
    let gross = [11.00, 90.95, 250.00, 40.90, 60.88, 99.99, 25.00]

    setChart(days: days, gross: gross)
  }

  func setChart(days: [String], gross: [Double]) {
    var dataEntries: [ChartDataEntry] = []

    for i in 0..<days.count {
      let dataEntry = PieChartDataEntry(value : gross[i], label : days[i])
      dataEntries.append(dataEntry)
    }

    let pieChartDataSet = PieChartDataSet(values: dataEntries, label: "Gross Income")
    pieChartDataSet.sliceSpace = 2.0
    let pieChartData = PieChartData(dataSets: [pieChartDataSet])

    var colors: [UIColor] = []

    for _ in 0..<days.count {
      let red = Double(arc4random_uniform(256))
      let green = Double(arc4random_uniform(256))
      let blue = Double(arc4random_uniform(256))

      let color = UIColor(red: CGFloat(red/255), green: CGFloat(green/255), blue: CGFloat(blue/255), alpha: 1)
      colors.append(color)
    }

    pieChartDataSet.colors = colors
    pieChartView.data = pieChartData
  }

试试这个,让我知道。

关于ios - 正确的数据未显示在 ios 图表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41296263/

相关文章:

ios - UITableViewCell 中图像和分隔符的 Z 索引

ios - 导航按钮不显示

ios - 如何在 Storyboard 中自动调整我的 View 大小? swift 3

swift - CGVectorMake 在 Swift 中不可用

swift - 为什么让 x 作为 Float 大小写在 Any 变量的开关中不匹配?

ios - 如何在 swift3 中调用 API 后重新加载屏幕

ios - 在 iOS 13 Xcode 11 中全屏显示插页式广告

ios - HTML标记会使JSON文件无效吗?

ios - 如何判断用户何时回答了 React-Native 中的 iOS 通知权限请求

swift - swift函数中的嵌套if语句