我正在使用MPAndroidChart,我有两个问题:
答案 0 :(得分:9)
这是ValueFormatter的工作。
public class MyValueFormatter implements IValueFormatter {
private DecimalFormat mFormat;
public MyValueFormatter() {
mFormat = new DecimalFormat("###,###,###"); // use no decimals
}
@Override
public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {
// write your logic here
if(value < 10) return "";
return mFormat.format(value) + "%"; // in case you want to add percent
}
}
将格式化程序设置为数据集:
pieDataSet.setValueFormatter(new MyValueFormatter());
此外,禁用转换为百分比:
pieChart.setUsePercentValues(false);
答案 1 :(得分:0)
使用MPAndroidChart的新版本(3.0.0),使用以下方法:
在setData()
方法中:
PieData data = new PieData(dataSet);
data.setValueFormatter(new DecimalRemover(new DecimalFormat("###,###,###")));
这是DecimalRemover类:
public class DecimalRemover extends PercentFormatter {
protected DecimalFormat mFormat;
public DecimalRemover(DecimalFormat format) {
this.mFormat = format;
}
@Override
public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {
if(value < 10) return "";
return mFormat.format(value) + " %";
}
}
ValueFormatter已替换为PercentFormatter
答案 2 :(得分:0)
要删除小数百分比,请轻松使用:
PiedataSet.setValueFormatter(new PercentFormatter(new DecimalFormat("###,###,##0")));
答案 3 :(得分:0)
第一步:
请将其放在您的程序包文件夹中的“ PercentFormatter
”类下:
public class PercentFormatter extends ValueFormatter {
public DecimalFormat mFormat;
private PieChart pieChart;
public PercentFormatter() {
mFormat = new DecimalFormat("###,###,##");
}
public PercentFormatter(PieChart pieChart) {
this();
this.pieChart = pieChart;
}
@Override
public String getFormattedValue(float value) {
return mFormat.format(value) + " %";
}
@Override
public String getPieLabel(float value, PieEntry pieEntry) {
if (pieChart != null && pieChart.isUsePercentValuesEnabled()) {
// Converted to percent
return getFormattedValue(value);
} else {
// raw value, skip percent sign
return mFormat.format(value);
}
}
}
第二步: 在设置Piedata的活动中,以这种方式在PieDataset中添加值格式:
pieChart = (PieChart) findViewById(R.id.pieChart);
PieDataSet pieDataSet = new PieDataSet(getData(approved, pending, rejected), "");
pieDataSet.setValueFormatter(new PercentFormatter());
PieData pieData = new PieData(pieDataSet);
pieChart.setData(pieData);
这样,我们可以删除Pie数据中的小数点。