如何在ios-chart上为每列添加名称?

时间:2016-09-21 15:34:27

标签: ios swift ios-charts

我正在使用BarChart库进行ios-chart。因为它类似于MPAndroidChart我创建它们时没有太多问题,但是我无法在每个列的上方添加一个名称/标签和星期几。

在Android上,将值设置为我使用的BarDataSet

BarData data = new BarData(labels, dataset); 

其中标签是每列的名称,数据集是BarDataSet。

问题在于Swift我无法找到为每列添加标签的方法。这是我目前的代码(一个简单的例子):

@IBOutlet weak var barChartView: BarChartView!

var entries = [ChartDataEntry]()
entries.append(BarChartDataEntry(x: 1.0, yValues: [1.0], label: "Monday"))
entries.append(BarChartDataEntry(x: 2.0, yValues: [4.0], label: "Tuesday"))

let charDataSet = BarChartDataSet(values: entries, label: "legend")
let charData = BarChartData(dataSets: [charDataSet])
barChartView.data = charData

结果如下:

enter image description here

但是我无法将MondayTuesday值放在显示1.04,1.12,1.20 ...值的位置。此外,我无法在BarChartData函数上添加标签(如Android上所述)。

我应该在哪里添加星期一和星期二值以显示在每列的上方?

提前致谢!

2 个答案:

答案 0 :(得分:3)

如果您查看以下链接中找到的答案,您会看到有人获得了新的Swift 2.3版本的图表以允许在x轴上使用字符串标签:

https://stackoverflow.com/a/39149070/6889264

您表明您正在使用Swift 3.0,但创建此问题的修订版BarChartData()函数语法看起来在2.3和3.0之间是相同的,因此似乎可能适用相同的解决方案。

修改

刚刚测试过,答案可以在Swift 3中实现。

答案 1 :(得分:0)

days = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]
let daysValues = [20.0, 4.0, 6.0, 3.0, 12.0, 16.0, 4.0]

setChart(days, values: daysValues)

var dataEntries: [BarChartDataEntry] = []

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

let chartDataSet = BarChartDataSet(yVals: dataEntries, label: "Days Value")
let chartData = BarChartData(xVals: days, dataSet: chartDataSet)
barChartView.data = chartData

我从https://www.appcoda.com/ios-charts-api-tutorial/得到了这个答案:您可以参考更多选项和详细说明。