Я пытаюсь создать CandleStickChart с помощью библиотеки диаграмм (https://github.com/danielgindi/Charts). У меня есть следующий код:CandleStickChart. Swift 2.2
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
}
Я получаю сообщение об ошибке «Не удается преобразовать значение типа„ChartDataEntry“к ожидаемому типу аргумента„CandleChartEntryType“»
EDIT:
Я не следующая код:
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)
}
показана диаграмма однако не, Y. график и я не уверен, почему. Пожалуйста, смотрите изображение ниже:
EDIT 1:
теперь у меня есть код ниже:
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
}
с помощью: пусть, Y.: [[Double]] = [[10,0 , 1,5,5,5,3,6,1,2], [20,0,3,0,11,0,7,2,1,2]]
is 'ChartDataEntry' - это суперкласс' CandleChartDataEntry'? любое отношение bw их? –
Я не уверен. Я использовал ChartDataEntry при использовании BarChart и LineChart. когда я использую «CandleChartDataEntry», я получаю сообщение об ошибке »не может вызывать инициализатор для типа« CandleChartDataEntry »со списком аргументов типа (значение: Double, xIndex: Int)» –
Используете ли вы стороннюю библиотеку? Вам нужно взглянуть на документы для этой библиотеки и посмотреть, что такое иерархия классов объектов данных, и что вам нужно передать для каждого типа диаграммы. (И вы можете отредактировать свой вопрос, чтобы сказать «Я пытаюсь создать CandleStickChart, используя библиотеку с открытым исходным кодом' CandleStickChart', доступную по адресу