iOS 图表 - 单个值不显示 Swift

2024-03-10

当我在折线图上的一条线的数组中有多个点时,一切都会完美显示。 但当只有一个点时,该点就不会显示。我不知道为什么? 代表被设置在其他地方,但这似乎不是问题。

以下示例显示了测试 2 和测试练习。第一个图像中每个图像都有一个值,第二个图像中每个图像都有 2 个值。

这是我的代码

    func startChart(){

        chart.dragEnabled = true
        chart.legend.form = .circle
        chart.drawGridBackgroundEnabled = false

        let xaxis = chart.xAxis

        xaxis.valueFormatter = axisFormatDelegate
        xaxis.labelCount = dataSets.count
        xaxis.labelPosition = .bottom

        xaxis.granularityEnabled = true
        xaxis.granularity = 1.0
        xaxis.avoidFirstLastClippingEnabled = true
        xaxis.forceLabelsEnabled = true
        let rightAxis = chart.rightAxis

        rightAxis.enabled = false
        rightAxis.axisMinimum = 0

        let leftAxis = chart.leftAxis
        leftAxis.drawGridLinesEnabled = true
        leftAxis.axisMinimum = 0

        let chartData = LineChartData(dataSets: dataSets)
        chart.data = chartData
 }

如果我添加

chart.setVisibleXRangeMinimum(myMinDate)

该值将正确显示。但是,它将值向左压缩并重叠 2 x 起息日


我解决这个问题的唯一方法是添加一条额外的隐形线。

我创建了一条清晰的线,从我的单一值的前一天开始,到我的单一值后一天结束。

只要图表上有一条线从一个点延伸到另一个点,就会显示其他单个值。

  var singleValue = false
    for i in 0...(dataSets.count - 1) {
        if dataSets[i].values.count > 1{
            singleValue = true
        }
    }
    var data = dataSets
    if singleValue == false {
        let minNS = Calendar.current.date(byAdding: .day, value: -1, to: minNSDate as! Date)
        let maxNS =  Calendar.current.date(byAdding: .day, value: 1, to: maxNSDate as! Date)

        var dataEntries: [ChartDataEntry] = []

        let dataEntry1 = ChartDataEntry(x:Double(String(format: "%.2f",Double((minNS?.timeIntervalSince1970)!)))!,y:00.00)
        let dataEntry2 = ChartDataEntry(x:Double(String(format: "%.2f",Double((maxNS?.timeIntervalSince1970)!)))!,y:00.00)
        dataEntries.append(dataEntry1)
        dataEntries.append(dataEntry2)
        let set = LineChartDataSet(values: dataEntries, label: "")
        set.setCircleColor(UIColor.clear)
        set.circleHoleColor = UIColor.clear
        set.setColor(UIColor.white, alpha: 0.0)
        set.drawValuesEnabled = false
        data.append(set)

    }
    chart.chartDescription?.text = ""
    let chartData = LineChartData(dataSets: data)
    chart.data = chartData
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS 图表 - 单个值不显示 Swift 的相关文章

随机推荐