2016-08-20 1 views
8

차트 라이브러리에 문제가 있습니다. 내가 직면하고있는 문제는 막대 그래프가 내 견해의 테두리 안에 "적합"하지 않다는 것입니다. 다음 이미지는 첫 번째 막대와 마지막 막대를 모두 반으로 잘라서 가장 높은 막대의 레이블도 부분적으로 잘라낸 것을 보여줍니다. iOS 차트 스위프트 막대 그래프가보기를 벗어납니다.

Bars and labels are cut along the graph borders

나는 온라인으로 검색

, 나는 똑같은 문제를 설명하는 것 같다 다음 스레드 https://github.com/danielgindi/Charts/issues/353을 얻었다.

난 6 개의 색인에서 임의의 숫자를 가진 간단한 데이터 세트를 사용합니다. 데이터는 다음과 같이 차트에 추가됩니다.

let values: [Int] = [5, 8, 1, 2, 1, 2] 
var dataEntries: [BarChartDataEntry] 

for i in 0..<values.count { 
    let dataEntry = BarChartDataEntry(x: Double(i), y: Double(values[i])) 
    dataEntries.append(dataEntry) 
} 

let chartDataSet = BarChartDataSet(values: dataEntries, label: "Count") 
let chartData = BarChartData(dataSet: chartDataSet) 
barChartView.data = chartData 

누군가 나를 도울 수 있기를 바랍니다. 미리 감사드립니다!

답변

16

.

첫 번째 막대와 마지막 막대가 반으로 표시되지 않도록 xAxis 최소 및 최대를 수동으로 설정할 수 있습니다.

아래 코드 줄을 추가하면 정상적으로 작동합니다.

yourBarChartView.xAxis.axisMinimum = -0.5; 
yourBarChartView.xAxis.axisMaximum = Double(yourAxisDataList.count) - 0.5; 
+0

감사합니다. 일하는 것이 매력입니다! 나는 더 많은 사람들이이 문제를 겪을 것으로 기대하면서이 답을 바르게 표시 할 것이다. ashmi123이 라벨 문제에 대해 적절한 답을 제공했지만. – Woodahack

+0

사이에 최신 라이브러리 버전을 사용 하시겠습니까? 이 버그는 v2.2.5에서 수정되었으므로이 코드를 추가 할 필요가 없습니다. 나는 또한 새로운 버전으로 내 애플 리케이션 중 하나에서 이것을 점검하고 예상대로 작동하고있다. –

+0

Chart3.0-Swift2.3 분기 버전의 경우이 해킹은 여전히 ​​유효합니다. 감사! – Voldy

5

당신은 최고 아래와 같이 밑면에 오프셋 추가 할 수 있습니다 다음 x 축 최소 및 최대 값을 계산에 관해서 라이브러리에 버그가 있습니다

barChartView.extraTopOffset = 40.0f; 
barChartView.extraBottomOffset = 10.0f; 
+0

가 대단히 감사합니다와 yourBarChart.xAxis.axisMinimum = -0.5

enter image description here

, 이것은 라벨링 문제를 수정 한 것 같습니다. 절반 막대의 문제는 불행히도 남아 있으며 extraLeftOffset/extraRightOffset을 설정하여 해결되지 않았습니다. 데모 응용 프로그램을 실행하면 막대 그래프가 올바르게 표시되는 것 같습니다. – Woodahack

+0

정확히 잘라낸 부분에 대해 이미지를 표시 할 수 있습니까? – ashmi123

+0

내 이전 게시물의 링크는 여전히 잘랐다. 막대를 정확히 반으로 자르는 것 같습니다. viewcontroller의 크기를 변경하는 것은 도움이되지 않습니다. http://i.stack.imgur.com/iW17f.png – Woodahack

0

가 Horizantal 막대 차트

barChartView.leftAxis.spaceBottom = 0.0 

또는 barChartView.rightAxis 인 경우는 수직 막대 차트를

barChartView.xAxis.spaceMin = 5.0f; 
barChartView.xAxis.spaceMax = 5.0f; 

인 경우.

0

막대 그래프의 xAxis 값을 -0.99 ~ -0.5 사이의 값으로 편집 할 수 있습니다. 확인이 예 :와

enter image description here

: yourBarChart.xAxis.axisMinimum = -0.99