2017-02-17 5 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 (ложный) ;, будет лучше чем преобразовать значение formatter return "". –

1

Если правая сторона 0 до 4 являются барные значения, чтобы удалить их установить:

data.setDrawValues(false); 

прочее, если они являются листами, тогда попробуйте:

barChart.getXAxis().setDrawLabels(false); 

И «BarDataSet» легенда, который можно скрыть с помощью:

barChart.getLegend().setEnabled(false); 

И еще одна вещь в вашем коде, что вы недействительности диаграмму первого, а затем установить некоторые свойства, но я думаю, его всегда лучше аннулировать карту в конце концов, так место ниже линии в конце и попробовать:.

barChart.invalidate(); 
+0

Благодарим вас за ответ, barChart.getLegend(). SetEnabled (false) работал идеально, однако с 0 по 4 с правой стороны не являются значениями в барах, как вы можете видеть на моем изображении, есть еще значения для 0. Я думаю, что они являются позициями, когда я добавляю записи, от 0f до 4f? И спасибо за напоминание о barChart.invalidate() – JerryKo