自v1.6.2起可用 - 在v2.1.4中更改(改进)
该IValueFormatter可用于创建自定义界面的格式化程序类,允许DataSets在绘制图形之前以特定方式格式化图表中的值(从)。
对于使用IValueFormatter,只需创建一个新类,并让它实现接口并返回任何你想要显示的getFormattedValue(…)方法。
Creating a Formatter
public class MyValueFormatter implements IValueFormatter {
private DecimalFormat mFormat;
public MyValueFormatter() {
mFormat = new DecimalFormat("###,###,##0.0"); // 使用一个小数
}
@Override
public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {
//在这里写你的逻辑
return mFormat.format(value) + " $"; //例如附加一个美元符号
}
}
然后,将您的格式化器设置给ChartData或DataSet对象:
//对整个数据对象使用
lineData.setValueFormatter( new MyValueFormatter());
//对个别数据集对象使用
lineDataSet.setValueFormatter( new MyValueFormatter());
Predefined Formatters
- LargeValueFormatter:可用于格式化大值>“1.000”。将“1.000”的值变为“1k”,“1.000.000”将为“1m”(百万),“1.000.000.000”为“1b”(十亿),像万亿的值将为“1t ”。
- PercentFormatter:用于在每个值与1位十进制数字之后显示“%”号。特别有用的PieChart。50 - > 50.0%
- StackedValueFormatter:专门设计用于堆叠的格式化程序BarChart。它允许指定是否应绘制所有堆栈值或仅指定最大值。