MPAndroidChart – 向条形图添加标签

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

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

在这里输入图像说明

  • MPAndroidChart - 第一个和最后一个酒吧不能正确渲染
  • 如何在MPAndroidChart中隐藏绘制值?
  • 查看外部边界未正确绘制
  • mpandroidchart - 如何避免Y轴中的重复值?
  • 如何从MPAndroidChart的图表中删除说明?
  • 如何从MPAndroidChart中的图表中删除描述?
  • 在MPAndroidChart库中,如何在很长时间内将X轴标签包装成两行?
  • 强制BarChart Y轴标签是整数?
  • 更新的答案(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);