narb
narb

Reputation: 988

Mpandroid cosmetic questions

I have the following drawing:

enter image description here

I would like to:

-get rid of the hopizontal lines

-plot numbers as int Vs float. for ex: draw 12 instead of 12.0

-get rid of the "description" label in the bottom right corner

Here is part of my code:

public void createChart(com.github.mikephil.charting.charts.BarChart chart, String period){ BarData data;

    switch (period) {
        case "days":
            data = new BarData(getXAxisDays(), getDataSetDays());
            break;
        case "months":
            data = new BarData(getXAxisMonths(), getDataSetMonths());
            break;
        default:
            data = new BarData(getXAxisYears(), getDataSetYears());
            break;
    }

    chart.setData(data);
//    chart.setDescription("My Chart");
    chart.animateXY(2000, 2000);
    chart.invalidate();
    chart.setPinchZoom(true);
}

private ArrayList<BarDataSet> getDataSetDays() {
    ArrayList<BarDataSet> dataSets;

    ArrayList<BarEntry> valueSet1 = new ArrayList<>();

    for(int i=0;i<NBDAYS;i++){
        vdays[i] = new BarEntry((float) days[i], i);
        valueSet1.add(vdays[i]);
    }

    BarDataSet barDataSet1 = new BarDataSet(valueSet1, "Score");
    barDataSet1.setColor(Color.rgb(0, 155, 0));
    dataSets = new ArrayList<>();
    dataSets.add(barDataSet1);

    return dataSets;
}

   private ArrayList<String> getXAxisDays() {
        ArrayList<String> xAxis_days = new ArrayList<>();
        if (lang == 0) {
            xAxis_days.add("Mon");
            xAxis_days.add("Tue");
            xAxis_days.add("Wed");
            xAxis_days.add("Thu");
            xAxis_days.add("Fri");
            xAxis_days.add("Sat");
            xAxis_days.add("Sun");
        }
        else{
            xAxis_days.add("LUNDI");
            xAxis_days.add("MARDI");
            xAxis_days.add("MERCREDI");
            xAxis_days.add("JEUDI");
            xAxis_days.add("VENDREDI");
            xAxis_days.add("SAMEDI");
            xAxis_days.add("DIMANCHE");
        }
        return xAxis_days;
    }

Upvotes: 1

Views: 64

Answers (1)

Anil
Anil

Reputation: 1087

Below Code Work For all chart.

 PieData data = new PieData(xVals, dataSet);
    data.setValueFormatter(new PiechartValueFormatter());

and here is code for PiechartValueFormatter class

public class PiechartValueFormatter implements ValueFormatter, com.github.mikephil.charting.formatter.YAxisValueFormatter {

protected DecimalFormat mFormat;

public PaichartValueFormatter() {
    mFormat = new DecimalFormat("###,###,##0");
}

/**
 * Allow a custom decimalformat
 *
 * @param format
 */
public PiechartValueFormatter(DecimalFormat format) {
    this.mFormat = format;
}

// ValueFormatter
@Override
public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {

        return mFormat.format(value);

}


@Override
public String getFormattedValue(float value, YAxis yAxis) {

         return mFormat.format(value);
}

}

Upvotes: 1

Related Questions