如何在ios-charts中为BarChartView添加XAxis标签 [英] How to add labels for XAxis for BarChartView in ios-charts

查看:2804
本文介绍了如何在ios-charts中为BarChartView添加XAxis标签的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在故事板中添加了



如此处所示,它添加了6个标签而不是4个标签,它也有重复。



我已经读过 $如何添加字符串在x轴上的图表/ 39149070#39149070>此解决方案 b
$ b

我该如何解决这个问题呢?

解决方案

我想你可以尝试设置以下属性:

  barChartView.xAxis.granularityEnabled = true 
barChartView.xAxis.gr anularity = 1.0 //默认粒度为1.0,但最好是显式
barChartView.xAxis.decimals = 0

源代码告诉你很多关于上面的属性。 https://github.com/danielgindi/Charts/blob /master/Source/Charts/Components/AxisBase.swift


I added a bar chart to the storyboard, but I cannot properly set labels for my data entries.

here is my code:

var names = ["aaa", "bbb", "ccc", "ddd"]
var values = [230.0, 280.0, 450.0, 340.0]

setChart(dataPoints: names, values: values)

setChart function:

func setChart(dataPoints: [String], values: [Double])
{
    let formatter = BarChartFormatter()
    formatter.setValues(values: dataPoints)
    let xaxis:XAxis = XAxis()


    barChartView.noDataText = "You need to provide data for the chart."
    var dataEntries: [BarChartDataEntry] = []

    for i in 0..<dataPoints.count
    {
        let dataEntry = BarChartDataEntry(x: Double(i), y: values[i])
        dataEntries.append(dataEntry)
    }

    let chartDataSet = BarChartDataSet(values: dataEntries, label: "موجودی")

    let chartData = BarChartData(dataSet: chartDataSet)


    xaxis.valueFormatter = formatter
    barChartView.xAxis.labelPosition = .bottom
    barChartView.xAxis.drawGridLinesEnabled = false
    barChartView.xAxis.valueFormatter = xaxis.valueFormatter
    barChartView.chartDescription?.enabled = false
    barChartView.legend.enabled = true
    barChartView.rightAxis.enabled = false
    barChartView.data = chartData
}

and finally the formatter:

@objc(BarChartFormatter)
public class BarChartFormatter: NSObject, IAxisValueFormatter
{
    var names = [String]()

    public func stringForValue(_ value: Double, axis: AxisBase?) -> String
    {
        return names[Int(value)]
    }

    public func setValues(values: [String])
    {
        self.names = values
    }
}

but it didn't work well as shown below:

as shown here, it add 6 labels instead 4 labels, and it also has duplicates.

I already read this solution, however, as you can see, it has some issues yet.

How can I solve this problem?

解决方案

I think you can try to set the following properties:

barChartView.xAxis.granularityEnabled = true
barChartView.xAxis.granularity = 1.0 //default granularity is 1.0, but it is better to be explicit
barChartView.xAxis.decimals = 0

The source code tells you a lot about the properties above. https://github.com/danielgindi/Charts/blob/master/Source/Charts/Components/AxisBase.swift

这篇关于如何在ios-charts中为BarChartView添加XAxis标签的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆