2016-08-09 7 views
9

내 응용 프로그램에는 막 대형 차트의 각 막대에 레이블이 있어야합니다. MPAndroidChart를 사용하여이 작업을 수행 할 수있는 방법이 있습니까? 프로젝트 wiki/javadocs에서이 작업을 수행 할 수있는 방법을 찾지 못했습니다.MPAndroidChart - 막대 차트에 레이블 추가

내가 할 수있는 방법이 없다면 다른 소프트웨어가 있습니까?

enter image description here

답변

22

업데이트 응답 (MPAndroidChart의 V3.0.1)

는 일반적으로 사용되는 기능이기 때문에, 라이브러리의 V3.0.1이 목적을 위해 정확하게 IndexAxisValueFormatter 클래스를 추가, 그래서 그냥 한 줄의 지금 코드 :

mBarChart.getXAxis().setValueFormatter(new IndexAxisValueFormatter(labels)); 

아래에 여전히 적용되는 원래의 대답에서 ProTip.

원래 대답 (MPAndroidChart의 v3.0.0) 라이브러리 v3.0.0로

바 레이블을 설정하는 직접적인 방법이 없지만, ValueFormatter 인터페이스를 사용하는 대신 괜찮은 해결 방법이있다.

과 같은 새로운 포매터 만들기 :

public class LabelFormatter implements IAxisValueFormatter { 
    private final String[] mLabels; 

    public LabelFormatter(String[] labels) { 
     mLabels = labels; 
    } 

    @Override 
    public String getFormattedValue(float value, AxisBase axis) { 
     return mLabels[(int) value]; 
    } 
} 

이 그런 다음 X 축이 포매터를 설정을 (이미 String[]이 레이블을 포함 만든 가정) :

mBarChart.getXAxis().setValueFormatter(new LabelFormatter(labels)); 

ProTip : 막 대형 차트를 확대 할 때 나타나는 추가 레이블을 제거하려면 세분성 기능을 사용할 수 있습니다.

XAxis xAxis = mBarChart.getXAxis(); 
xAxis.setGranularity(1f); 
xAxis.setGranularityEnabled(true); 
+0

를 추가하여 위의 열 레이블을 설정할 수 있습니다 당신은 나에게 proTip 내 하루가 저장 x 축 –

+0

당신 레이블 여러 막대 그래프를 표시하는 방법에 대한 몇 가지 괜찮은 소스 코드를 제공 할 수 있습니다. 감사! @ TR4Android –

+0

답변을 최신 상태로 유지해 주셔서 감사합니다. 이 질문은 많은 질문을 받으면 여기에서 중복을 리디렉션해야합니다. –

1

이 라인 이동 코드

xAxis.setPosition(XAxis.XAxisPosition.BOTTOM); 
관련 문제