MPAndroidChart条形图值

Die*_*sel 1 android mpandroidchart

我已经阅读了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;
}
Run Code Online (Sandbox Code Playgroud)

}

有没有人有这方面的经验?该库的Github链接在这里:https : //github.com/PhilJay/MPAndroidChart

Bur*_*kir 6

只需创建一个新类,让它实现IValueFormatter并返回您想要从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));
Run Code Online (Sandbox Code Playgroud)

您可以在此处了解更多信息


Mar*_*ark 5

对于通过这里寻求解决方案的其他人,请尝试setDrawValues使用数据集。

BarDataSet dataSet = new BarDataSet(entries, "");
dataSet.setDrawValues(false);
Run Code Online (Sandbox Code Playgroud)