如何为ios图表上的每个列添加名称?
我正在用如何为ios图表上的每个列添加名称?,ios,swift,ios-charts,Ios,Swift,Ios Charts,我正在用ios图表库制作BarChart。由于它类似于MPAndroidChart我在创建它们时没有太多问题,但我无法在每个列的上方添加一个名称/标签,以显示一周中的天数 在Android上,将值设置为相应的BarDataSet后,我使用: BarData data = new BarData(labels, dataset); 其中标签是每列的名称,数据集是数据集 问题是在Swift上,我找不到为每列添加标签的方法。这是我目前掌握的代码(一个简单的示例): 结果如下: 但是我不能把周一和
ios图表库制作BarChart
。由于它类似于MPAndroidChart
我在创建它们时没有太多问题,但我无法在每个列的上方添加一个名称/标签,以显示一周中的天数
在Android上,将值设置为相应的BarDataSet
后,我使用:
BarData data = new BarData(labels, dataset);
其中标签是每列的名称,数据集是数据集
问题是在Swift
上,我找不到为每列添加标签的方法。这是我目前掌握的代码(一个简单的示例):
结果如下:
但是我不能把周一
和周二
的值放在1.04,1.12,1.20。。。出现值。此外,我无法在BarChartData
函数上添加标签(如在Android
上)
我应该在哪里添加每个列上面显示的星期一和星期二值
提前谢谢 days=[“周一”、“周二”、“周三”、“周四”、“周五”、“周六”、“周日”]
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
let DaysValue=[20.0,4.0,6.0,3.0,12.0,16.0,4.0]
集合图表(天,值:天值)
var数据项:[BarChartDataEntry]=[]
对于0中的i..如果您查看以下链接中的答案,您将看到有人获得了新的Swift 2.3版本的图表,以允许在x轴上使用字符串标签:
您表示您正在使用Swift 3.0,但创建此问题的修订版BarChartData()函数语法在2.3和3.0之间看起来是相同的,因此似乎同样的解决方案也适用
编辑
刚刚测试过,这个答案可以在Swift 3中实现。下面的答案,对你有用吗?@prabodhprakash我正在阅读教程,并根据我的自定义图表进行调整。请耐心等待,我需要几分钟来重构代码。我使用的是Swift 3.0,没有参数为BarChartDataEntry(double,Int)
的函数。只有BarChartDataEntry(double,double)
可用。我们仍然可以将Int作为double传递?它不是这样工作的吗?是的,我试着用double(I)
将它作为double传递(Xcode 8向我建议了它,但我忘了更新注释)。现在我面临的问题是错误致命错误:索引超出范围
,因此我正在查找代码上是否有超过需要的索引。我将提交我得到的任何更改。好的,要做一个快速实验,你可以尝试硬编码索引范围,然后运行代码查看,如果你得到正确的图例。这将帮助我们确定图例是否有效。如果你看我的代码,你的代码和我的代码几乎相同。问题再次出现,因为我无法将xVals:days
设置为我的BarChartData
函数。
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