MPAndroidChart条形图值

时间:2017-02-18 20:36:41

标签: android mpandroidchart

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

sample chart

我想隐藏每个栏顶部显示的值,或者将它们的值更改为我可以手动设置的值。这两种选择都适合我的实施。

我不确定是否有可能做到。我对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链接位于:https://github.com/PhilJay/MPAndroidChart

2 个答案:

答案 0 :(得分:3)

只需创建一个新类,让它实现normalize并从IValueFormatter(...)方法返回您想要显示的内容,如下所示。

getFormattedValue

您可以找到更多here

答案 1 :(得分:3)

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

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