ChartsOrg / Charts

Beautiful charts for iOS/tvOS/OSX! The Apple side of the crossplatform MPAndroidChart.
Apache License 2.0
27.43k stars 5.97k forks source link

Candle Chart, Stick not visible as expected #5158

Closed Vaibhav43 closed 3 months ago

Vaibhav43 commented 3 months ago

What did you do?

I have implemented a chart library and used Candle Chart Stick for the plotting of chart. I have mapped the data as given in the example project.

What did you expect to happen?

The stick is supposed to be visible as per the candles but it is just working as a stick.

What happened instead?

Candle stick are appearing as sticks only

DGCharts Environment

DGCharts version/Branch/Commit Number: DGCharts@5.0.0 Xcode version: Version 15.0 (15A240d) Swift version: Swift 5 Platform(s) running DGCharts: iOS

Code: for Chart `let l = chartContainerView.legend l.orientation = .vertical l.drawInside = false l.font = UIFont.style(.regular, size: 10) l.xOffset = 5

    chartContainerView.chartDescription.enabled = false
    chartContainerView.dragEnabled = true
    chartContainerView.legend.enabled = false
    chartContainerView.isUserInteractionEnabled = true
    chartContainerView.autoScaleMinMaxEnabled = true
    chartContainerView.scaleYEnabled = false
    chartContainerView.scaleXEnabled = false

    let leftAxis = chartContainerView.leftAxis
    leftAxis.labelFont = .systemFont(ofSize: 8, weight: .light)
    leftAxis.axisMinimum = 0
    leftAxis.axisLineColor = UIColor.kGreyBackground2

    chartContainerView.rightAxis.axisLineColor = UIColor.kGreyBackground2
    chartContainerView.rightAxis.gridColor = UIColor.kGreyBackground2
    chartContainerView.rightAxis.enabled = false

    let xAxis = chartContainerView.xAxis
    xAxis.labelFont = .systemFont(ofSize: 8, weight: .light)
    xAxis.labelPosition = .bottom
    xAxis.drawGridLinesEnabled = true
    xAxis.gridColor = UIColor.kGreyBackground2
    xAxis.axisLineColor = UIColor.kGreyBackground2`

Candle Chart Data ` var scatterChartData1: [CandleChartDataEntry] = [] var scatterChartData2: [CandleChartDataEntry] = []

    for object in vitalArray{
        let createdDate = object.createdDateTime.description.doubleValue

        if let firstObject = object.data.first {
            let shadowHeight = (firstObject.maxValue/10)
            let chart1 = CandleChartDataEntry(x: createdDate,
                                              shadowH: firstObject.maxValue+shadowHeight,
                                              shadowL: firstObject.minValue-shadowHeight,
                                              open: firstObject.maxValue,
                                              close: firstObject.minValue)
            scatterChartData1.append(chart1)
        }

        if object.data.count > 1,
           let lastObject = object.data.last {
            let shadowHeight = (lastObject.maxValue/10)
            let chart2 = CandleChartDataEntry(x: createdDate,
                                              shadowH: lastObject.maxValue+shadowHeight,
                                              shadowL: lastObject.minValue-shadowHeight,
                                              open: lastObject.maxValue,
                                              close: lastObject.minValue)
            scatterChartData2.append(chart2)
        }
    }

    let scatterChart1 = CandleChartDataSet(entries: scatterChartData1)
    scatterChart1.axisDependency = .left
    scatterChart1.setColor(UIColor.kTheme)
    scatterChart1.drawIconsEnabled = false
    scatterChart1.drawValuesEnabled = true
    scatterChart1.shadowColor = UIColor.kTheme
    scatterChart1.neutralColor = .kTheme
    scatterChart1.shadowWidth = 4

    let scatterChart2 = CandleChartDataSet(entries: scatterChartData2)
    scatterChart2.axisDependency = .left
    scatterChart2.setColor(UIColor.kYellow)
    scatterChart2.drawIconsEnabled = false
    scatterChart2.drawValuesEnabled = true
    scatterChart2.shadowColor = UIColor.kYellow
    scatterChart2.neutralColor = .kYellow1
    scatterChart2.shadowWidth = 4

    let data: CandleChartData = [scatterChart1, scatterChart2]
    data.setValueFont(.systemFont(ofSize: 6, weight: .light))`
Screenshot 2024-03-19 at 6 36 22 PM Screenshot 2024-03-19 at 6 36 30 PM