【发布时间】:2023-03-10 03:00:01
【问题描述】:
【问题讨论】:
-
您想在轴标签上应用格式化值还是在条形图上方显示整组值作为条形标签?
标签: android json android-volley mpandroidchart
【问题讨论】:
标签: android json android-volley mpandroidchart
你可以使用ValueFormatter接口
IValueFormatter 接口可用于创建自定义格式化程序类,允许在绘制图表之前以特定方式格式化图表中的值(来自 DataSet)。
要使用 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
}
}
然后,将格式化程序设置为 ChartData 或 DataSet 对象:
// usage on whole data object
lineData.setValueFormatter(new MyValueFormatter());
// usage on individual dataset object
lineDataSet.setValueFormatter(new MyValueFormatter());
预定义的格式化程序
LargeValueFormatter: 可用于格式化大值> “1.000”。它将像“1.000”这样的值变成“1k”,“1.000.000”会 是“1m”(百万),“1.000.000.000”将是“1b”(十亿)和值 就像一万亿将是例如“1吨”。
PercentFormatter:用于 在每个值后显示一个带有 1 个十进制数字的“%”符号。 对于饼图特别有用。 50 -> 50.0 %
StackedValueFormatter:专门设计用于使用的格式化程序 带有堆积条形图。它允许指定是否所有堆栈值 应该绘制或仅绘制顶部值。
【讨论】: