2017-02-17 75 views
0

我正在使用此庫https://github.com/PhilJay/MPAndroidChart在我的項目中製作條形圖,我試過並按照wiki,但仍然無法解決我留下的一些問題。我正在嘗試刪除右側的值(4,3,2,1,0)和下面的標籤「BarDataSet」以及左側的顏色塊。最後,我試圖設置在酒吧上的顏色不是我定義的。自定義MPAndroidChart爲Android

我做了什麼:

List<BarEntry> entries = new ArrayList<>(); 
    entries.add(new BarEntry(0f, 55f)); 
    entries.add(new BarEntry(1f, 80f)); 
    entries.add(new BarEntry(2f, 60f)); 
    entries.add(new BarEntry(3f, 50f)); 
    entries.add(new BarEntry(4f, 40f)); 

    BarDataSet set = new BarDataSet(entries, "BarDataSet"); 
    BarData data = new BarData(set); 
    data.setBarWidth(0.9f); // set custom bar width 
    barChart.setData(data); 
    barChart.setFitBars(true); // make the x-axis fit exactly all bars 
    barChart.invalidate(); // refresh 
    barChart.getAxisLeft().setEnabled(false); 
    barChart.getAxisRight().setEnabled(false); 
    barChart.getXAxis().setDrawGridLines(false); 
    barChart.getDescription().setEnabled(false); 
    set.setColors(R.color.star_bar); 

而我現在有:

Result

我想刪除右邊(4比0)和 「BarDataSet」 標籤。 我爲R.color.star_bar定義的顏色是黃色,但不知何故它顯示爲紫色。

回答

0

刪除行:

set.setColors(R.color.star_bar); 

然後,你必須添加下面幾行:

barChart.getLegend().setEnabled(false); // hide the legend 
    set.setColor(ContextCompat.getColor(this, R.color.colorAccent)); // set yellow color 

    // hide the labels 
    barChart.getXAxis().setValueFormatter(new IAxisValueFormatter() { 
     @Override 
     public String getFormattedValue(float value, AxisBase axis) { 

      return ""; 
     } 
    }); 
+0

謝謝你,這個工作對我來說 – JerryKo

+1

我想設置barChart.getXAxis()setDrawLabels(假);,會更好比使值格式化程序返回「」。 –

1

如果右側0至4條值,將其刪除設置:

data.setDrawValues(false); 

否則,如果它們是標籤,則嘗試:

barChart.getXAxis().setDrawLabels(false); 

與「BarDataSet」是傳說,您可以隱藏使用:

barChart.getLegend().setEnabled(false); 

還有一件事在你的代碼是,你是第一個無效圖表,然後設置一些屬性,但我認爲它總是更好無效月底表,使地方下面線年底和嘗試:

barChart.invalidate(); 
+0

感謝您的回覆,barChart.getLegend()。setEnabled(false)理想地工作,然而右邊的0到4不是bar值,正如你在我的圖片中看到的,仍然有0值。我認爲他們每當我添加條目時,都是位置,0f到4f?並感謝您爲barChart.invalidate()提醒 – JerryKo