为什么最后一个barentry隐藏时条形图消失了?

lyr7nygr  于 2021-07-07  发布在  Java
关注(0)|答案(0)|浏览(221)

我有一个条形图,我基本上把我的屏幕限制在12条,但是,因为​​都很小,我想让用户放大看到的值​​更好。发生的情况如下,如果图形的最后一个条形图不可见,则没有可见的条形图,但是,如果最后一个条形图在帧中,则缩放正常工作,图形不会消失。
请看这些图片中的一些示例,首先,完整的法线图:
标准图形
一切仍然可见
现在,我要放大我的图表一点,注意标签开始消失,因为最后一个栏是看不见的:
放大时标签自动隐藏
此时,如果我放大到最后一个条离开视图的点,整个图形将从视图中消失,没有显示任何条,只有在最后一个条返回视图时才会再次显示:
所有酒吧现在都藏起来
我的重要代码引用:

XAxis xAxis = barsWeight.getXAxis(); // barsWeight is BarChart 
                xAxis.setPosition(XAxis.XAxisPosition.TOP);
                xAxis.setDrawGridLines(false);
                xAxis.setGranularity(0f);
                xAxis.setLabelCount(11);
                xAxis.setAxisMinimum(0f);

ArrayList<String> monthList= new ArrayList<>();
                monthList.add("JAN");
                monthList.add("FEV");
                monthList.add("MAR");
                monthList.add("ABR");
                monthList.add("MAI");
                monthList.add("JUN");
                monthList.add("JUL");
                monthList.add("AGO");
                monthList.add("SET");
                monthList.add("OUT");
                monthList.add("NOV");
                monthList.add("DEZ");

                xAxis.setValueFormatter(new IndexAxisValueFormatter(monthList));

基本上我所做的是添加一个条形图数据到我的条形图中,我的条形图数据包含一个条形图数据集,其中包含一个barentry数组
如果最后一个条形图条目在图形中不可见,为什么可视化会消失?
添加数据:

private void setDataBar( ArrayList<BarEntry> dadosPeso, BarChart barrasGraf, boolean isKg){
        BarDataSet barDataSet;

        if(barrasGraf.getData() != null && barrasGraf.getData().getDataSetCount() > 0){
            barDataSet = (BarDataSet) barrasGraf.getData().getDataSetByIndex(0);
            barDataSet.setValues(dadosPeso);
            barDataSet.setColors(ColorTemplate.JOYFUL_COLORS);
            if(isKg){
                barrasGraf.getBarData().setValueFormatter(new IndexAxisValueFormatter() {
                    @Override
                    public String getFormattedValue(float value) {
                        DecimalFormat df = new DecimalFormat("#.##");
                        return df.format(value) + " Kg";
                    }
                });
            }else{
                barrasGraf.getBarData().setValueFormatter(new IndexAxisValueFormatter() {
                    @Override
                    public String getFormattedValue(float value) {
                        DecimalFormat df = new DecimalFormat("#.##");
                        return df.format(value) + " @";
                    }
                });
            }
            barrasGraf.getData().notifyDataChanged();
            barrasGraf.notifyDataSetChanged();
        }else{
            barDataSet = new BarDataSet(dadosPeso, "Pesagens para cada data");
            barDataSet.setColors(ColorTemplate.JOYFUL_COLORS);

            barDataSet.setDrawIcons(false);

            ArrayList<IBarDataSet> dataSets = new ArrayList<>();
            dataSets.add(barDataSet);

            BarData dadosBarra = new BarData(dataSets);
            dadosBarra.setValueTextSize(15f);

            dadosBarra.setValueTextColor(Color.BLACK);
            if(isKg) {
                dadosBarra.setValueFormatter(new IndexAxisValueFormatter() {
                    @Override
                    public String getFormattedValue(float value) {
                        DecimalFormat df = new DecimalFormat("#.##");
                        return df.format(value) + " Kg";
                    }
                });
            }else{
                dadosBarra.setValueFormatter(new IndexAxisValueFormatter() {
                    @Override
                    public String getFormattedValue(float value) {
                        DecimalFormat df = new DecimalFormat("#.##");
                        return df.format(value) + " @";
                    }
                });
            }
            dadosBarra.setBarWidth(.9f);

            barrasGraf.setData(dadosBarra);
        }
    }

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题