如何为mpandroidchart库自定义图表标签

时间:2018-06-05 20:28:10

标签: android mpandroidchart

我在我的图表中使用 mpandroidchart 库,其中我显示了一周的一天数据,总共7天。

对于每一天,我希望标签是当天的名字(星期日,星期一,星期二......)。 但是,标签是数字(0,1,2,...)。

如何自定义标签以显示字符串而不是整数?

3 个答案:

答案 0 :(得分:1)

使用大于或等于3.0.1库的版本,并在代码中添加以下行:

XAxis xAxis = chart.getXAxis();
xAxis.setValueFormatter(new IndexAxisValueFormatter(getXAxisValues()));

还创建以下方法:

private ArrayList<String> getXAxisValues()
{
    ArrayList<String> labels = new ArrayList<String> ();

    labels.add( "SUN");
    labels.add( "MON");
    labels.add( "TUE");
    labels.add( "WED");
    labels.add( "THU");
    labels.add( "FRI");
    labels.add( "SAT");
    return labels;
}

答案 1 :(得分:1)

您可以使用自定义Formatter,您只需要创建一个类并设置轴

XAxis xAxis = chart.getXAxis();
xAxis.setValueFormatter(new DayFormatter());

Formatter的自定义类

public class DayFormatter implements IAxisValueFormatter {

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

String getDay(int day) {
    switch (day) {
        case 1:
            return "Monday";
        default:
            return "";
    }
}}

答案 2 :(得分:0)

你可以这样做。

 // creating data values
    ArrayList<Entry> entries = new ArrayList<>();
    entries.add(new Entry(30f, 0));
    entries.add(new Entry(12f, 1));
    entries.add(new Entry(12f, 2));

    // creating labels
    ArrayList<String> labels = new ArrayList<>();
    labels.add("Disability");
    labels.add("Environment");
    labels.add("Food and Farming");
//        Colors
    Integer[] colors = new Integer[]{Color.GREEN, Color.YELLOW, Color.RED};
    //Set entries in PieDataSet
    PieDataSet pieDataSet = new PieDataSet(entries, "");
    pieDataSet.setDrawValues(false);
    pieDataSet.setColors(Arrays.asList(colors));
//        pieDataSet.setColors(ColorTemplate.COLORFUL_COLORS); // set the color
//        Set Data in PieData and PieChart
    PieData data = new PieData(labels, pieDataSet); // initialize PieData
    pieChartSupport.setCenterText(getString(R.string.chart_center_text));
    pieChartSupport.setData(data);
    pieChartSupport.setHoleRadius(80);
    pieChartSupport.setDrawSliceText(false);
    pieChartSupport.setDescription(getString(R.string.supports));
    pieChartSupport.setDrawSliceText(false);

这是如何在MPAndroidChart Library提供的PieChart中添加天数。