Нарисуйте круг с линией диаграммы - PullRequest
0 голосов
/ 31 октября 2018

Я пытаюсь нарисовать круг, используя LineChartView, используя Диаграммы, у меня не было проблем с этим с помощью параболы, но когда я пробую круг, я получаю

Error: this application, or a library it uses, has passed an invalid numeric value (NaN, or not-a-number) to CoreGraphics API and this value is being ignored. Please fix this problem.

и

If you want to see the backtrace, please set CG_NUMERICS_SHOW_BACKTRACE environmental variable.

Странная вещь, если я увеличиваю и перемещаюсь по графику вправо, я вижу, что часть круга выглядит следующим образом это .

На мой взглядDidLoad () я получил

chartView.delegate = self

    chartView.chartDescription?.enabled = false

    chartView.dragEnabled = true
    chartView.setScaleEnabled(true)
    chartView.pinchZoomEnabled = true
    chartView.highlightPerDragEnabled = true

    chartView.backgroundColor = .white

    chartView.legend.enabled = false


    let xAxis = chartView.xAxis
    xAxis.labelFont = .systemFont(ofSize: 10, weight: .light)
    xAxis.labelTextColor = UIColor.black
    xAxis.drawAxisLineEnabled = true
    xAxis.drawGridLinesEnabled = true
    xAxis.gridLineWidth = 1
    xAxis.gridLineDashLengths = [1,1]
    xAxis.axisMaximum = 100
    xAxis.axisMinimum = -100

    xAxis.granularity = 0.5
    let leftAxis = chartView.leftAxis
    leftAxis.labelPosition = .insideChart
    leftAxis.labelFont = .systemFont(ofSize: 12, weight: .light)
    leftAxis.drawGridLinesEnabled = true
    leftAxis.gridLineWidth = 1
    leftAxis.gridLineDashLengths = [1,1]
    leftAxis.granularityEnabled = true
    leftAxis.axisMinimum = -100
    leftAxis.axisMaximum = 100
    leftAxis.granularity = 0.5
    leftAxis.yOffset = -9
    leftAxis.labelTextColor = UIColor.black

    chartView.xAxis.gridLineDashLengths = [1,1]
    chartView.rightAxis.enabled = false

    chartView.legend.form = .line


    setDataCount()
    //chartView.animate(xAxisDuration: 2.5)

И это в основном то, что у меня есть в моей функции

func setDataCount() {

    let yVal1 = (-100...100).map {

        return ChartDataEntry(x: Double($0), y: sqrt(100 - pow(Double($0), 2)))

    }

    let yVal2 = (-100...100).map {
       return ChartDataEntry(x: Double($0), y: sqrt(100 - pow(Double($0), 2)) * -1)
    }

    let set1 = LineChartDataSet(values: yVal1, label: "Top")
     //set1.axisDependency = .left
     set1.setColor(UIColor.red)
     set1.drawCirclesEnabled = false
     set1.lineWidth = 2
    set1.mode = .cubicBezier

    let set2 = LineChartDataSet(values: yVal2, label: "Bottom")
    set2.setColor(UIColor.black)
    set2.drawCirclesEnabled = false
    set2.lineWidth = 2

    set2.mode = .cubicBezier

    let data = LineChartData(dataSets: [set1,set2])

    data.setValueFont(.systemFont(ofSize: 9))
    data.setDrawValues(false)
    chartView.data = data
}

Я все еще учусь и экспериментирую с графиками, так что я действительно не понимаю, в чем проблема, как я могу правильно показать круг в моем LineChartView?

...