Ios 烛台。Swift 2.2
我正在尝试使用图表库()创建烛台KChart。我有以下代码:Ios 烛台。Swift 2.2,ios,swift,charts,ios-charts,candlestick-chart,Ios,Swift,Charts,Ios Charts,Candlestick Chart,我正在尝试使用图表库()创建烛台KChart。我有以下代码: func setChart(xValues: [String], valuesCandleChart: [Double]) { barChartView.descriptionText = "" barChartView.noDataText = "You need to provide data for the chart." var yValsCandleChart : [CandleChartDataE
func setChart(xValues: [String], valuesCandleChart: [Double]) {
barChartView.descriptionText = ""
barChartView.noDataText = "You need to provide data for the chart."
var yValsCandleChart : [CandleChartDataEntry] = [CandleChartDataEntry]()
for i in 0..<xValues.count {
yValsCandleChart.append(ChartDataEntry(value: valuesCandleChart[i], xIndex: i))
}
let candleChartDataSet = LineChartDataSet(yVals: yValsCandleChart, label: nil)
let data: CombinedChartData = CombinedChartData(xVals: xValues)
data.candleData = CandleChartData(xVals: xValues, dataSets: [candleChartDataSet]
barChartView.data = data
barChartView.leftAxis.customAxisMin = 0
}
func setChart(xValues: [String], valuesCandleChart: [[Double]]) {
var yValsCandleChart : [CandleChartDataEntry] = [CandleChartDataEntry]()
for i in 0..<xValues.count {
print(" yValsCandleChart = \(valuesCandleChart[i])")
yValsCandleChart.append(CandleChartDataEntry(xIndex: i, shadowH: valuesCandleChart[i][0], shadowL: valuesCandleChart[i][1], open: valuesCandleChart[i][2], close: valuesCandleChart[i][0]))
}
let candleChartDataSet = CandleChartDataSet(yVals: yValsCandleChart, label: "test")
let data: CombinedChartData = CombinedChartData(xVals: xValues)
data.candleData = CandleChartData(xVals: xValues, dataSets: [candleChartDataSet])
}
override func viewDidLoad() {
super.viewDidLoad()
let xValues = ["Jan","Feb"]
let yValues: [[Double]] = [[10.0,1.5,5.5,3.6],[20.0,3.0,11.0,7.2]]
setChart(xValues, valuesCandleChart: yValues)
}
func集合图表(xValues:[String],valuesCandleChart:[Double]){
barChartView.descriptionText=“”
barChartView.NodeataText=“您需要为图表提供数据。”
变量yValsCandleChart:[CandleChartDataEntry]=[CandleChartDataEntry]()
对于0中的i..您使用了错误的数据集和条目类,请使用CandleChartDataSet
和CandleChartDataEntry
您必须使用它的init方法
CandleChartDataEntry(xIndex:Int,shadowH:Double,shadowL:Double,open:Double,close:Double)
var yValsCandleChart:[CandleChartDataEntry]=[CandleChartDataEntry]()
对于0中的i..isChartDataEntry
是CandleChartDataEntry
的超类吗?它们之间的任何关系?我不确定。我在使用条形图和折线图时使用了“ChartDataEntry”。当我使用“CandleChartDataEntry”时,我得到一个错误“无法使用参数列表类型为“CandleChartDataEntry”的初始化器”(value:Double,xIndex:Int)“我认为您使用的是第三方库?您需要查看该库的文档,看看数据对象的类层次结构是什么,以及每种类型的图表需要传递什么。(您可能需要编辑您的问题,以便“我正在尝试使用上提供的开源库CandleStickChart
创建一个CandleStickChart。”@Duncac是的,我正在使用图表库(danielgindib),感谢tipI,我现在收到错误“无法使用类型为“(value:Double,index:Int)”的参数列表调用类型为“CandleChartDataEntry”的初始化器”“ValueScanneChart=[5.0,7.0,1.0,1.0,2.0,3.0,11.0,7.0,7.0,5.0],这是正确的格式吗?这是因为它不继承超类的init(值:Double,索引:Int)。答案已更新。您应该使用CandleChartDataEntry的init方法。您好,我仍然收到错误消息。”无法使用类型为“(xIndex:Int,shadowH:Double,shadowL:Double,open:Double,close:Double)的参数列表调用类型为“CandleChartDataEntry”的初始化器。类型“。我已用以下错误消息更新了我的代码。您完全不了解什么是swift函数参数。修复错误是您的责任。我已经提供了足够的信息。代码已更新。请慢慢从演示中了解所有信息。我无法提供更多帮助。”。
func setChart(xValues: [String], valuesCandleChart: [[Double]]) {
var yValsCandleChart : [CandleChartDataEntry] = [CandleChartDataEntry]()
for i in 0..<xValues.count {
print(" yValsCandleChart = \(valuesCandleChart[i])")
let val = valuesCandleChart[i][0]
let high = valuesCandleChart[i][1]
let low = valuesCandleChart[i][2]
let open = valuesCandleChart[i][3]
let close = valuesCandleChart[i][4]
yValsCandleChart.append(CandleChartDataEntry(xIndex: i, shadowH: val + high, shadowL: val + low, open: val + open, close: val - close))
}
let candleChartDataSet = CandleChartDataSet(yVals: yValsCandleChart, label: "test")
let data: CombinedChartData = CombinedChartData(xVals: xValues)
data.candleData = CandleChartData(xVals: xValues, dataSets: [candleChartDataSet])
candleChartView.data = data
}
var yValsCandleChart : [CandleChartDataEntry] = [CandleChartDataEntry]()
for i in 0..<xValues.count {
yValsCandleChart.append(CandleChartDataEntry(xIndex: yourInt, shadowH: yourDouble, shadowL: yourDouble, open: yourDouble, close: yourDouble))
}
let candleChartDataSet = CandleChartDataSet(yVals: yValsCandleChart, label: nil)
for (int i = 0; i < count; i++)
{
double mult = (range + 1);
double val = (double) (arc4random_uniform(40)) + mult;
double high = (double) (arc4random_uniform(9)) + 8.0;
double low = (double) (arc4random_uniform(9)) + 8.0;
double open = (double) (arc4random_uniform(6)) + 1.0;
double close = (double) (arc4random_uniform(6)) + 1.0;
BOOL even = i % 2 == 0;
[yVals1 addObject:[[CandleChartDataEntry alloc] initWithXIndex:i shadowH:val + high shadowL:val - low open:even ? val + open : val - open close:even ? val - close : val + close]];
}