Fen*_*tel 5

您可以使用ValueFormatter 接口

IValueFormatter 接口可用于创建自定义格式化程序类,允许在绘制之前以特定方式格式化图表中的值(来自 DataSets)。

要使用 IValueFormatter,只需创建一个新类并让它实现接口并从 getFormattedValue(...) 方法返回您想要显示的任何内容。

创建格式化程序

public class MyValueFormatter implements IValueFormatter {

    private DecimalFormat mFormat;

    public MyValueFormatter() {
        mFormat = new DecimalFormat("###,###,##0.0"); // use one decimal
    }

    @Override
    public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {
        // write your logic here
        return mFormat.format(value) + " $"; // e.g. append a dollar-sign
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,将格式化程序设置为 ChartData 或 DataSet 对象:

// usage on whole data object
lineData.setValueFormatter(new MyValueFormatter());

// usage on individual dataset object
lineDataSet.setValueFormatter(new MyValueFormatter());
Run Code Online (Sandbox Code Playgroud)

预定义的格式化程序

  • LargeValueFormatter:可用于格式化大于“1.000”的大值。它将把像“1.000”这样的值变成“1k”,“1.000.000”将是“1m”(百万),“1.000.000.000”将是“1b”(十亿),而像一万亿这样的值将是“1t” ”。

  • PercentFormatter:用于在每个带有 1 个十进制数字的值后显示“%”符号。对饼图特别有用。50 -> 50.0 %

  • StackedValueFormatter:专门设计用于堆叠条形图的格式化程序。它允许指定是否应绘制所有堆栈值或仅绘制顶部值。