适用于Android的自定义MPAndroidChart

时间:2017-02-17 06:25:57

标签: android mpandroidchart

我正在使用这个库https://github.com/PhilJay/MPAndroidChart在我的项目中制作一个条形图,我已经尝试并遵循维基但仍然无法解决我留下的一些问题。我试图删除右侧的值(4,3,2,1,0)和下面的标签“BarDataSet”以及左侧的颜色块。最后,我试图在条形图上设置的颜色不是我定义的颜色。

我做了什么:

    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定义的颜色是黄色但不知何故显示为紫色。

2 个答案:

答案 0 :(得分: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 "";
        }
    });

答案 1 :(得分:0)

如果右侧0到4是条形值,要删除它们设置:

data.setDrawValues(false);

否则,如果他们是标签,那么尝试:

barChart.getXAxis().setDrawLabels(false);

&#34; BarDataSet&#34;是图例,您可以使用以下方法隐藏:

 barChart.getLegend().setEnabled(false);

你的代码中还有一件事是你首先使图表无效然后设置一些属性,但我认为最终使图表无效最好,所以在最后放置一行并尝试:

barChart.invalidate();