如何在条形图中分段显示数据 Android

how to show data by pieces in BarChart Android

我的条形图有问题。我在列表中有 7 个项目。例如

final int[] a = {5,2,10,4,7,8,13};
final String[] b= {"January","February","March","April","May","June","Jully"};

所以我想在条形图上按块显示。例如,前 5 个项目显示,当我单击按钮时,剩下的 2 个项目显示在条形图中。图片是,

当我点击"WAFAW"按钮时条形图是我想要的,

但我的代码是,

所以这意味着不显示栏..我该怎么做?现在谢谢..

我的代码是,

final BarChart barChart = (BarChart) findViewById(R.id.chart);
Button button = (Button) findViewById(R.id.button);


final int[] a = {5,2,10,4,7,8,13};
final String[] b= {"January","February","March","April","May","June","Jully"};
final ArrayList<BarEntry> entries = new ArrayList<>();
final ArrayList<String> labels = new ArrayList<String>();

for(int i=0 ; i<5;i++){
    entries.add(new BarEntry(a[i],i));
    labels.add(b[i]);
}
button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        entries.clear();
        labels.clear();

        for(int i=5; i<a.length;i++){
            entries.add(new BarEntry(a[i],i));
            labels.add(b[i]);
        }
        BarDataSet dataset = new BarDataSet(entries, "# of Calls");
        barChart.getXAxis().setPosition(XAxis.XAxisPosition.TOP);
        BarData data = new BarData(labels, dataset);
        dataset.setColors(ColorTemplate.COLORFUL_COLORS);
        barChart.setData(data);
        barChart.animateY(3000);
    }
});

BarDataSet dataset = new BarDataSet(entries, "# of Calls");

barChart.getXAxis().setPosition(XAxis.XAxisPosition.TOP);

BarData data = new BarData(labels, dataset);
dataset.setColors(ColorTemplate.COLORFUL_COLORS);
barChart.setData(data);

barChart.animateY(3000);

您可以使用以下代码实现相同的目的:

https://github.com/blackfizz/EazeGraph

https://github.com/HackPlan/AndroidCharts

据我所知,没有关于如何 select 显示哪些柱的简单解决方案。这取决于您 want/need 解决问题的动态程度。

我能想到的最佳解决方案是让一组条形图显示如下:

final int[] show_arr = {0,1,2,3,4,5};

并且当调用 onClick() 时,您将数组更改为

final int[] show_arr = {5,7};

然后您 运行 再次完成整个绘图程序。 但是您通过 show_arr

循环添加条目

我知道这不是一个非常好的解决方案,但至少你只需要对向量进行硬编码并且可以重用所有其他部分。