2016-09-21 2 views
11

BarChartios-chart 라이브러리가 있습니다. MPAndroidChart과 비슷하지만 문제가별로 없지만 각 열 위에 요일과 함께 이름/레이블을 추가 할 수는 없습니다.ios-chart에서 각 열의 이름을 어떻게 추가 할 수 있습니까?

안드로이드에서 BarDataSet 각각에 값을 설정 한 후 I 사용 :

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).

각 열의 위에 표시 할 월요일 및 화요일 값을 어디에 추가해야합니까?

미리 감사드립니다.

+0

에서 구현 될 수있다

? – prabodhprakash

+0

@prabodhprakash 튜토리얼을 읽고 맞춤형 차트에 적용하고 있습니다. 잠시만 기다려주세요. 제 코드를 리팩토링하는 데 몇 분이 필요합니다. –

답변

3

다음 링크에서 발견 된 답변을 보면, 누군가가 x 축에 문자열 라벨의 사용을 허용하는 차트의 새로운 스위프트 2.3 버전을받은 것을 볼 수 있습니다 :

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

Swift 3.0으로 작업하고 있음을 나타내지 만이 문제를 만든 수정 된 BarChartData() 함수 구문은 2.3과 3.0 사이에서 동일하게 보입니다. 따라서 동일한 솔루션이 적용될 수 있습니다.

편집 그냥 테스트, 그 대답은 스위프트 3. 아래의 대답은, 그것은 당신을 위해 작동 않았다

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/에서 가져 왔습니다. 더 많은 옵션과 자세한 설명을 참조 할 수 있습니다.

+0

스위프트 3.0을 사용 중이며 'BarChartDataEntry (double, Int)'와 같은 매개 변수가있는 함수가 없습니다. 'BarChartDataEntry (double, double)'만 사용할 수 있습니다. –

+0

우리는 여전히 Int를 double로 전달할 수 있습니까? 이 방법으로 작동하지 않습니까? – prabodhprakash

+0

네,'Double (i)'(Xcode 8은 그것을 제안했지만 주석을 업데이트하는 것을 잊었습니다)와 함께 double로 전달하려고했습니다. 이제 내가 직면하고있는 문제는 '치명적인 오류 : 범위를 벗어난 인덱스'오류입니다. 그래서 코드에 필요한 것보다 많은 인덱스가 있는지 찾고 있습니다. 내가 얻은 변경 사항을 제출할 것입니다. –

관련 문제