【问题标题】:Integrating LineChartView in Swift 4在 Swift 4 中集成 LineChartView
【发布时间】:2017-12-12 11:30:42
【问题描述】:

我正在使用 iOS-charts 库来集成LineChartView,我必须创建下面的图表:

到目前为止,我已经做到了:

我在这里面临三个问题:

  • xAxis 中缺少 2 月和 6 月的文本。
  • 必须在图表中添加左右空格。
  • 删除图表中可见的“描述标签”文本。

是否可以在月份上方添加小标记,如图所示在xAxis 中表示月份?

实现代码:

months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"]
let unitsSold = [50.0, 25.0, 50.0, 75.0, 100.0, 75.0]

setChart(dataPoints: months, values: unitsSold)

setChart 方法:

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

    for i in 0..<dataPoints.count {
        let dataEntry = ChartDataEntry(x: Double(i), y: values[i], data: dataPoints[i] as AnyObject)
        dataEntries.append(dataEntry)
    }

    let chartDataSet = LineChartDataSet(values: dataEntries, label: nil)
    chartDataSet.circleRadius = 5
    chartDataSet.circleHoleRadius = 2
    chartDataSet.drawValuesEnabled = false

    let chartData = LineChartData(dataSets: [chartDataSet])


    lineChartView.data = chartData

    lineChartView.xAxis.valueFormatter = IndexAxisValueFormatter(values: months)
    lineChartView.xAxis.labelPosition = .bottom
    lineChartView.xAxis.drawGridLinesEnabled = false
    lineChartView.xAxis.avoidFirstLastClippingEnabled = true

    lineChartView.rightAxis.drawAxisLineEnabled = false
    lineChartView.rightAxis.drawLabelsEnabled = false

    lineChartView.leftAxis.drawAxisLineEnabled = false
    lineChartView.pinchZoomEnabled = false
    lineChartView.doubleTapToZoomEnabled = false
    lineChartView.legend.enabled = false
}

如果有人在 swift 中处理过图表,请提供帮助。

【问题讨论】:

    标签: ios swift charts linechart ios-charts


    【解决方案1】:

    1) 为避免拥挤Chart 在图形轴上显示有限的数据,通过缩放用户可以看到整个数据

    2)对于左右间距:从界面构建器中给出左右约束

    3)要隐藏描述,您可以使用下面的代码

    lineChartView.chartDescription?.text = " "
    

    希望对你有帮助

    【讨论】:

    • 您的第三个答案有效。谢谢你。我没有得到您的第一个答案-您的意思是 2 月和 6 月的文本更大,这就是它不可见的原因。对于左右空间,我所说的是Jan 从图表的开头开始。在上图中,您可以看到Jan 之前和Jun 之后的一些空格。
    【解决方案2】:

    我遇到了同样的问题。我这样做是为了解决它:

    ineChartView.xAxis.valueFormatter = IndexAxisValueFormatter(values: months)
    ineChartView.xAxis.setLabelCount(months.count, force: true)
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-10
      • 2017-06-24
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      相关资源
      最近更新 更多