MPAndroidChart – 向条形图添加标签

我的应用程序必须在条形图的每个条上都有一个标签。 有没有办法与MPAndroidChart做到这一点? 我找不到在项目wiki / javadocs上执行此操作的方法。

如果没有办法做到这一点是有另一个软件,将允许我?

在这里输入图像说明

Solutions Collecting From Web of "MPAndroidChart – 向条形图添加标签"

更新的答案(MPAndroidChart v3.0.1)

作为这样一个常用的function,库的v3.0.1为此目的添加了IndexAxisValueFormatter类,所以现在只是一行代码:

 mBarChart.getXAxis().setValueFormatter(new IndexAxisValueFormatter(labels)); 

以下原始答案中的ProTip仍然适用。

原始答案(MPAndroidChart v3.0.0)

使用v3.0.0的库,没有直接设置标签的方法,但是有一个相当不错的解决方法,使用ValueFormatter接口。

创build一个像这样的新格式化程序:

 public class LabelFormatter implements IAxisValueFormatter { private final String[] mLabels; public LabelFormatter(String[] labels) { mLabels = labels; } @Override public String getFormattedValue(float value, AxisBase axis) { return mLabels[(int) value]; } } 

然后将这个格式化器设置为你的x轴(假设你已经创build了一个包含标签的String[] ):

 mBarChart.getXAxis().setValueFormatter(new LabelFormatter(labels)); 

ProTip:如果要删除放大条形图时出现的额外标签,可以使用粒度特征:

 XAxis xAxis = mBarChart.getXAxis(); xAxis.setGranularity(1f); xAxis.setGranularityEnabled(true); 

您可以通过添加此行代码来设置上面的列标签

 xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);