프로그래밍 언어/Java

[Android java] Mpchart 라이브러리 Stacked Barchart 구현하는 방법

happy_life 2022. 1. 31. 15:29

Mpchart 라이브러리 Stacked Barchart 구현하는 방법

값이 없을 땐 Tue처럼 

값이 있을 땐 Mon Wen 처럼 구현하고 싶었습니다.

Mpchart 라이브러리에서 이것을 구현하기 위해서 stacked bar를 사용해야합니다.

생각보다 코드가 간단합니다.

 

 

기존의 barchart 구현과 다른점을 간단하게 요약해드리겠습니다.

 

1. BarEntry를 넣을 때 배열로 넣습니다.

ex) new float[]{mondayData,100-mondayData}

 

2.setcolor를 두 개로 합니다.

( 3 개의 stack으로 하고 싶다면 3개로 하시면 됩니다)

barDataSet.setColors(Color.rgb(72,202,228),Color.rgb(213,222,226));

//!--1단계
        ArrayList<BarEntry> arrayList = new ArrayList<>();
//        arrayList.add(new BarEntry(0,mondayData));
        arrayList.add(new BarEntry(0,new float[]{mondayData,100-mondayData}));
        arrayList.add(new BarEntry(1,new float[]{tuesDayData,100-tuesDayData}));
        arrayList.add(new BarEntry(2,new float[]{wednesdayData,100-wednesdayData}));
        arrayList.add(new BarEntry(3,new float[]{thursdayData,100-thursdayData}));
        arrayList.add(new BarEntry(4,new float[]{fridayData,100-fridayData}));
        arrayList.add(new BarEntry(5,new float[]{saturdayData,100-saturdayData}));
        arrayList.add(new BarEntry(6,new float[]{sundayData,100-sundayData}));

        //!--2단계
        BarDataSet barDataSet = new BarDataSet(arrayList,"실천 점수");
        barDataSet.setColors(Color.rgb(72,202,228),Color.rgb(213,222,226));
        barDataSet.setValueTextColor(Color.BLACK);
        barDataSet.setValueTextSize(5F);
        barDataSet.setDrawValues(false);

        //!--3단계
        BarData barData = new BarData(barDataSet);
        barData.setBarWidth(0.5f);

        chart.setFitBars(true);
        chart.setData(barData);
        chart.getDescription().setText(" ");
        chart.animateY(800);

 

궁금하신 점이 있으면 댓글로 남겨주세요 ~ 

도움이 되셨으면 좋아요 부탁드려요!