MPAndroidChart 条形图值

MPAndroidChart Bar Chart Values

我一直在阅读 MPAndroidChart 的文档(使用 v3.0.1),但我似乎找不到删除条形图上标签的方法

我想隐藏显示在每个栏顶部的值,或者将它们的值更改为我可以手动设置的值。任何一个选项都适合我的实施。

我不确定是否可以这样做。我是 android 开发的新手,任何帮助都会很棒。

我的代码是:

public class MainActivity extends AppCompatActivity {

protected BarChart chart;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    chart = (BarChart) findViewById(R.id.chart1);

    Description desc ;
    Legend L;

    L = chart.getLegend();
    desc = chart.getDescription();
    desc.setText(""); // this is the weirdest way to clear something!!
    L.setEnabled(false);


    YAxis leftAxis = chart.getAxisLeft();
    YAxis rightAxis = chart.getAxisRight();
    XAxis xAxis = chart.getXAxis();

    xAxis.setPosition(XAxisPosition.BOTTOM);
    xAxis.setTextSize(10f);
    xAxis.setDrawAxisLine(true);
    xAxis.setDrawGridLines(false);


    leftAxis.setTextSize(10f);
    leftAxis.setDrawLabels(false);
    leftAxis.setDrawAxisLine(true);
    leftAxis.setDrawGridLines(false);

    rightAxis.setDrawAxisLine(false);
    rightAxis.setDrawGridLines(false);
    rightAxis.setDrawLabels(false);

    BarData data = new BarData(  setData());


    data.setBarWidth(0.9f); // set custom bar width
    chart.setData(data);

    chart.setFitBars(true); // make the x-axis fit exactly all bars
    chart.invalidate(); // refresh
    chart.setScaleEnabled(false);
    chart.setDoubleTapToZoomEnabled(false);
    chart.setBackgroundColor(Color.rgb(255, 255, 255));
    chart.animateXY(2000, 2000);
    chart.setDrawBorders(false);
    chart.setDescription(desc);
    chart.setDrawValueAboveBar(true);


}

private BarDataSet setData() {

    ArrayList<BarEntry> entries = new ArrayList<>();

    entries.add(new BarEntry(0f, 30f));
    entries.add(new BarEntry(1f, 80f));
    entries.add(new BarEntry(2f, 60f));
    entries.add(new BarEntry(3f, 50f));
    entries.add(new BarEntry(4f, 70f));
    entries.add(new BarEntry(5f, 60f));


    BarDataSet set = new BarDataSet(entries, "");
    set.setColor(Color.rgb(155, 155, 155));
    set.setValueTextColor(Color.rgb(155,155,155));

    return set;
}

}

有没有人有这方面的经验? Github link 图书馆在这里:https://github.com/PhilJay/MPAndroidChart

只需创建一个新的 class 并让它实现 IValueFormatter 和 return 您想要从 getFormattedValue(...) 方法中显示的任何内容,例如下面。

public class MyValueFormatter implements IValueFormatter
{
    @Override
    public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler)
    {
        return "";
    }
}

BarDataSet set = new BarDataSet(entries, "");
set.setValueFormatter(new MyValueFormatter());
set.setColor(Color.rgb(155, 155, 155));
set.setValueTextColor(Color.rgb(155, 155, 155));

您可以了解更多 here

对于通过此处寻找解决方案的其他人,请尝试 setDrawValues 数据集。

BarDataSet dataSet = new BarDataSet(entries, "");
dataSet.setDrawValues(false);