首页 文章

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

提问于
浏览
0

我在我的图表中使用 mpandroidchart 库,其中我'm showing day'的数据为一周,共计7天 .

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

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

3 回答

  • 0

    使用大于或等于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

    您可以使用自定义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 "";
        }
    }}
    
  • 1

    你可以这样做 .

    // 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中添加天数 .

相关问题