2017-02-18 85 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);