2017-02-07 4 views
1

스위프트 3으로 마이그레이션 한 후 꺾은 선형 차트가 y 축에 이상한 값으로 표시됩니다. 문제가있는 범위 또는 데이터 집합인지 확실하지 않습니다. 하지만 나는 y 값이 올바른지 확인했다. 차트 자체가 꺾은 선형 차트 대신 파란색 사각형으로 표시됩니다. 잘못된 y 값으로 인해 가정합니다. 이 차트를 보면 무엇이 잘못 될 수 있는지 생각해 보시겠습니까?iso-charts 꺾은 선형 차트 오른쪽 축 최소값과 최대 값이 올바르게 설정되지 않았습니다.

Chart

업데이트 : 내가 제대로 설정되지 않는 권리 축 axisMinimum 및 axisMaximum에 문제를 정확하게 파악 할 수 있었다. 왼쪽 축에 대해 동일한 코드를 사용하면 완벽하게 작동합니다. 난 당신이 데이터를 잘 축에 axisDependency을 설정 표시되지 않습니다

class func newLineChartViewWithXValsAndDataSets(frame: CGRect, xVals: [String], dataSets: [SVLineChartDataSet]?, maximum: ChartDataEntry?, minimum: ChartDataEntry?) -> LineChartView { 
    let lineChartView = LineChartView(frame: frame) 
    let chartData = LineChartData(dataSets: dataSets) 
    let margin: CGFloat = 6 
    lineChartView.doubleTapToZoomEnabled = false 
    lineChartView.dragEnabled = false 
    lineChartView.drawGridBackgroundEnabled = false 
    lineChartView.drawBordersEnabled = false 
    lineChartView.legend.textColor = UIColor.sharevilleLightGrey 

    lineChartView.xAxis.labelPosition = .bottom 
    lineChartView.xAxis.labelTextColor = UIColor.sharevilleLightGrey 
    lineChartView.xAxis.avoidFirstLastClippingEnabled = true 
    lineChartView.xAxis.drawGridLinesEnabled = false 
    lineChartView.xAxis.axisLineColor = UIColor.sharevilleTouchGrey 
    lineChartView.xAxis.valueFormatter = LineChartDateFormatter(dates: xVals) 
    lineChartView.xAxis.setLabelCount(3, force: true) 

    lineChartView.leftAxis.axisLineColor = UIColor.sharevilleTouchGrey 
    //lineChartView.leftAxis.drawLabelsEnabled = false 
    //lineChartView.leftAxis.drawAxisLineEnabled = false 
    lineChartView.leftAxis.spaceTop = margin 
    lineChartView.leftAxis.spaceBottom = margin 
    lineChartView.leftAxis.resetCustomAxisMax() 
    lineChartView.leftAxis.resetCustomAxisMin() 

    lineChartView.rightAxis.labelTextColor = UIColor.sharevilleDarkGrey 
    lineChartView.rightAxis.axisLineColor = UIColor.sharevilleTouchGrey 
    lineChartView.rightAxis.gridColor = UIColor.sharevilleTouchGrey 
    lineChartView.rightAxis.labelPosition = .insideChart 
    lineChartView.rightAxis.drawLabelsEnabled = false 
    lineChartView.rightAxis.drawAxisLineEnabled = false 
    lineChartView.rightAxis.spaceTop = margin 
    lineChartView.rightAxis.spaceBottom = margin 


    // if we have no maximum and minimumvalue return the linechart directly 
    guard let maximum = maximum, let minimum = minimum else { 
     return lineChartView 
    } 

    //let absMinMax = abs(maximum.y - minimum.y) 
    //let visibleYRangeMaxium = max(absMinMax,1) * 1.2 
    // print("visibile Y Range") 
    // print(visibleYRangeMaxium) 

    //lineChartView.setVisibleYRangeMaximum(visibleYRangeMaxium, axis: YAxis.AxisDependency.left) 

    lineChartView.leftAxis.axisMinimum = minimum.y 
    lineChartView.leftAxis.axisMaximum = maximum.y 
    //lineChartView.rightAxis.axisMinimum = minimum.y 
    //lineChartView.rightAxis.axisMaximum = maximum.y 


    lineChartView.animate(xAxisDuration: 1, easingOption: .easeInCubic) 

    print("LinChartView.data= ", lineChartView.data) 
    lineChartView.chartDescription?.text = "" 
    lineChartView.backgroundColor = .white 


    if let dataSets = dataSets { 
     for dataSet in dataSets { 

      if dataSet.isLineChartViewHighLowEnabled { 
       DispatchQueue.main.async { 
        self.drawLineChartValueView(lineChartView, dataEntry: maximum) 
        self.drawLineChartValueView(lineChartView, dataEntry: minimum) 
       } 
      } 
     } 
    } 

    lineChartView.data = chartData 

    return lineChartView 
} 
+0

이 채팅에서 어떤 값이 잘못 되었습니까? 대신 무엇을 표시할까요? – Tushar

+0

오른쪽 축 값이 내 데이터 집합에서 디버깅시 보는 것과 다릅니다. 또한 차트 범위는 최대 값과 최소값이어야합니다 (여기에 올바르게 표시됨) –

+0

차트에 코드 설정을 게시 할 수 있습니까? 우리는 아마도 스위프트 3로 잘못 변환 한 곳을 도울 수 있습니다. –

답변

0

: 여기

을 설정하기위한 코드입니다.

+0

그건 정확히 그랬어! –