ChartsOrg / Charts

Beautiful charts for iOS/tvOS/OSX! The Apple side of the crossplatform MPAndroidChart.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Candle Chart, Stick not visible as expected

Vaibhav43 opened this issue · comments

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