如何在条形图中分段显示数据 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);
您可以使用以下代码实现相同的目的:
据我所知,没有关于如何 select 显示哪些柱的简单解决方案。这取决于您 want/need 解决问题的动态程度。
我能想到的最佳解决方案是让一组条形图显示如下:
final int[] show_arr = {0,1,2,3,4,5};
并且当调用 onClick()
时,您将数组更改为
final int[] show_arr = {5,7};
然后您 运行 再次完成整个绘图程序。
但是您通过 show_arr
循环添加条目
我知道这不是一个非常好的解决方案,但至少你只需要对向量进行硬编码并且可以重用所有其他部分。
我的条形图有问题。我在列表中有 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);
您可以使用以下代码实现相同的目的:
据我所知,没有关于如何 select 显示哪些柱的简单解决方案。这取决于您 want/need 解决问题的动态程度。
我能想到的最佳解决方案是让一组条形图显示如下:
final int[] show_arr = {0,1,2,3,4,5};
并且当调用 onClick()
时,您将数组更改为
final int[] show_arr = {5,7};
然后您 运行 再次完成整个绘图程序。
但是您通过 show_arr
我知道这不是一个非常好的解决方案,但至少你只需要对向量进行硬编码并且可以重用所有其他部分。