2017-02-18 89 views
0

我一直在读通过了MPAndroidChart(使用V3.0.1)的文件和我似乎无法找到一种方法来消除对吧标签MPAndroidChart柱形图的价值

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

回答

3

只需创建一个新的类,让它实现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)); 

你可以找到更多here

+1

这样做!我无法弄清楚那个班上在做什么,谢谢! – Diesel

1

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

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