如何在烛台图表中在蜡烛的顶部和底部绘制自定义视图

时间:2021-05-17 17:22:07

标签: ios swift charts candlestick-chart candlesticks

我将 iOS Charts 库用于烛台图表,但找不到任何方法来绘制图像库中显示的三角形的自定义视图。

我想根据标志显示蜡烛顶部和底部的三角形(视图)。

如果这在 Charts 库中无法实现,请告诉我可以实现此目标的替代库。

CandleSitckChart

{

    chartView.delegate = self
    
    chartView.chartDescription?.enabled = true
    chartView.drawBordersEnabled = false
    chartView.drawGridBackgroundEnabled = false
    
    chartView.xAxis.labelTextColor = .white
    chartView.rightAxis.labelTextColor = .white
    
    chartView.dragEnabled = true
    chartView.setScaleEnabled(true)
    chartView.pinchZoomEnabled = true
    chartView.drawMarkers = true
    
    chartView.legend.enabled = false

    chartView.leftAxis.enabled = false
    
    chartView.leftAxis.spaceTop = 0.3
    chartView.leftAxis.spaceBottom = 0.3
    chartView.leftAxis.axisMinimum = 0
    chartView.rightAxis.enabled = true
    chartView.rightAxis.axisLineColor = .primaryBlue
    chartView.drawGridBackgroundEnabled = false
    
    let candleResponse = MasterData.shared.candleResponse
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "h:mm a"
    
    let dates = candleResponse
        .map { Date(timeIntervalSince1970: ($0.first ?? 0)/1000) }
        .map { dateFormatter.string(from: $0) }
    
    chartView.xAxis.valueFormatter = IndexAxisValueFormatter(values: dates)
    chartView.xAxis.labelPosition = .bottom
    
    
    let yVals1 = (0..<candleResponse.count).map { (i) -> CandleChartDataEntry in
        return CandleChartDataEntry(x: Double(i),
                             shadowH: candleResponse[i][2],
                             shadowL: candleResponse[i][3],
                             open: candleResponse[i][1],
                             close: candleResponse[i][4])
    }
   
    let set1 = CandleChartDataSet(entries: yVals1)
    set1.setDrawHighlightIndicators(true)
    set1.drawVerticalHighlightIndicatorEnabled = true
    set1.drawHorizontalHighlightIndicatorEnabled = true

    set1.axisDependency = .right
    set1.setColor(UIColor(white: 80/255, alpha: 1))
    set1.drawIconsEnabled = true
    set1.shadowColor = .darkGray
    set1.shadowWidth = 0.7
    set1.decreasingColor = .red
    set1.decreasingFilled = true
    set1.increasingColor = UIColor(red: 122/255, green: 242/255, blue: 84/255, alpha: 1)
    set1.increasingFilled = true
    set1.neutralColor = .blue

    let data = CandleChartData(dataSet: set1)
    data.setDrawValues(false)
    chartView.data = data
}

0 个答案:

没有答案