상세 컨텐츠

본문 제목

[안드로이드] LineChart 만드는 방법 part4 - 범례(Legend) 변경하는 방법

안드로이드

by aries574 2022. 5. 2. 12:14

본문


이번 시간에는 차트 데이터 범례(Legend) 커스텀하는 방법에 대하여 알아보겠습니다.

이전 포스팅에 이어서 하겠습니다. 

이전 포스팅은 아래 링크를 들어가시면 됩니다.

2022.05.01 - [안드로이드] - [안드로이드] LineChart 만드는 방법 part3 - 차트 스타일 변경

 

[안드로이드] LineChart 만드는 방법 part3 - 차트 스타일 변경

이번 시간에는 차트 스타일 변경하는 방법에 대하여 알아보겠습니다. 이전 포스팅에 이어서 하겠습니다. 이전 포스팅은 아래 링크를 들어가시면 됩니다. 2022.04.30 - [안드로이드] - [안드로이드] L

aries574.tistory.com


목차

1. 실행 화면
2. 메인 코드 수정 MainActivity.java


1. 실행 화면

 


2. 메인 코드 수정 MainActivity.java

 - 설명 - 

 차트의 legend를 가져와서 객체를 생성하고,  legend 커스텀을 한다.

 1.  라벨 객체 생성

Legend legend = lineChart.getLegend(); 

 2. 라벨 표시(디폴트 true)

legend.setEnabled(true);

 3. 라벨 텍스트 색상

 legend.setTextColor(Color.RED);

 4. 라벨 텍스트 사이즈

legend.setTextSize(15);

 5. 라벨 아이콘 설정

legend.setForm(Legend.LegendForm.CIRCLE);

예: LINE(선), CIRCLE(원),SQUARE(네모)

 6. 라벨 간 거리

legend.setXEntrySpace(15);

 7. 라벨 아이콘과 라벨 텍스트 거리 

 legend.setFormToTextSpace(10);

public class MainActivity extends AppCompatActivity{

    LineChart lineChart;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //초기화
        lineChart = findViewById(R.id.line_chart);

        //1. 데이터셋에 데이터 넣기
        LineDataSet lineDataSet1 = new LineDataSet(data1(), "Data Set1");
        LineDataSet lineDataSet2 = new LineDataSet(data2(), "Data Set2");

        //2. 리스트에 데이터셋 추가
        ArrayList<ILineDataSet> dataSets = new ArrayList<>();
        dataSets.add(lineDataSet1);
        dataSets.add(lineDataSet2);

        /* 차트 스타일 */

        //차트 배경 색상
        lineChart.setBackgroundColor(Color.BLACK);

        //차트 데이터 없음 표시
        lineChart.setNoDataText("No Data");

        //차트 데이터 없음 텍스트 색상
        lineChart.setNoDataTextColor(Color.BLUE);

        //격자 그리드 적용
        lineChart.setDrawGridBackground(true);

        //차트 외곽선 진하게
        lineChart.setDrawBorders(true);

        //차트 외곽선 색상
        lineChart.setBorderColor(Color.RED);

        //차트 외곽선 굵기
        lineChart.setBorderWidth(5);

        //범례(라벨)
        Legend legend = lineChart.getLegend();

        //라벨 표시 (디폴트 true)
        legend.setEnabled(true);

        //라벨 텍스트 색상
        legend.setTextColor(Color.RED);

        //라벨 텍스트 사이즈
        legend.setTextSize(15);

        //라벨 아이콘 설정
        legend.setForm(Legend.LegendForm.CIRCLE);

        //라벨 아이콘 크기 설정
        legend.setFormSize(10);

        //라벨 간 거리
        legend.setXEntrySpace(15);

        //라벨 아이콘과 라벨 텍스트 거리
        legend.setFormToTextSpace(10);

        //커스텀 라벨 만들어 보기
        LegendEntry[] legendEntries = new LegendEntry[2];

        //색상
        int[] colorArray = {Color.BLUE, Color.GREEN};

        //라벨명
        String[] legendName = {"Data1", "Data2"};

        for(int i = 0; i < legendEntries.length; i++){

            LegendEntry entry = new LegendEntry();

            //색상
            entry.formColor = colorArray[i];

            //텍스트
            entry.label = legendName[i];

            //담기
            legendEntries[i] = entry;
        }

        //적용
        legend.setCustom(legendEntries);


        //설명
        Description description = new Description();
        description.setText("설명"); // 설명
        description.setTextSize(20);//설명 텍스트 크기
        description.setTextColor(Color.BLUE); //텍스트 색상

        lineChart.setDescription(description);

        //3. 라인데이터에 리스트 추가
        LineData data = new LineData(dataSets);

        //4. 차트에 라인데이터 추가
        lineChart.setData(data);

        //5. 차트 초기화
        lineChart.invalidate();

    }//onCreate


    //데이터 생성
    private ArrayList<Entry> data1(){

        ArrayList<Entry> dataList = new ArrayList<>();

        dataList.add(new Entry(0, 10));
        dataList.add(new Entry(1, 20));
        dataList.add(new Entry(2, 30));
        dataList.add(new Entry(3, 40));

        return dataList;
    }

    //데이터 생성
    private ArrayList<Entry> data2(){

        ArrayList<Entry> dataList = new ArrayList<>();

        dataList.add(new Entry(0, 15));
        dataList.add(new Entry(1, 25));
        dataList.add(new Entry(3, 35));
        dataList.add(new Entry(5, 45));

        return dataList;
    }
}//MainActivity

2022.04.14 - [안드로이드] - [안드로이드] 레이아웃 배경 색상 애니메이션 적용하는 방법

 

[안드로이드] 레이아웃 배경색상 애니메이션 적용하는 방법

이번 시간에는 레이아웃 배경 색상에 애니메이션 적용하는 방법에 대하여 알아보겠습니다. 목차 1. 실행 화면 2. 색상 파일 만들기 3. 메인 화면 구성 activity_main.xml 4. 메인 코드 구현 MainActivity.java

aries574.tistory.com

2022.03.28 - [안드로이드] - [안드로이드] 숫자 맞추기 게임 Up&Down 만드는 방법 part1 - 화면 구성

 

[안드로이드] 숫자 맞추기 게임 Up&Down 만드는 방법 part1 - 화면 구성

 이번 시간에는 랜덤한 숫자를 생성하면, 사용자는 숫자를 입력해서 맞추는 게임을 만들어 보려고 합니다. 물론 무작정 맞추는 게 아니라 입력한 숫자가 랜덤한 숫자보다 큰지, 작은지 정도는

aries574.tistory.com

2022.03.02 - [안드로이드] - [안드로이드] SQLite RecyclerView 연락처 만드는 방법 part1 - 조회

 

[안드로이드] SQLite RecyclerView 연락처 만드는 방법 part1 - 조회

앞으로 SQLite, RecyclerView를 통해서 연락처 만드는 방법을 알아보겠습니다. 내용이 많다 보니 조회, 등록, 수정, 삭제 별로 나눠 올리겠습니다. 이번에는 조회 부분입니다. 목차 1. 실행 화면 2. 연락

aries574.tistory.com

반응형

관련글 더보기

댓글 영역