代码之家  ›  专栏  ›  技术社区  ›  Vishal Vaishnav

堆积条形图中未全部显示的X轴值

  •  1
  • Vishal Vaishnav  · 技术社区  · 7 年前

    您可以在下面找到屏幕截图和我的代码;。

    代码在下面;

    mchart=view.findViewByID(r.id.bar_chart);
    棒宽=0.3f;
    barspace=0.02f;
    组空间=0.4f;
    
    mchart.setdescription(空);
    mchart.setpinchzoom(假);
    mchart.setscaleEnabled(假);
    mchart.setDrawBarShadow(错误);
    mchart.setdrawgridbackground(错误);
    
    mchart.getaxisleft().setDrawGridlines(false);
    mchart.getxaxis().setDrawGridLines(false);
    背景色(彩色、透明);
    
    arraylist<barentry>yValues=新arraylist<>();
    yvalues.add(新的barentry(5,新的float[]10,20,30,50));
    yvalues.add(新的barentry(15,新的float[]12,13));
    yvalues.add(新的barentry(25,新的float[]15,15));
    yvalues.add(新的barentry(35,新的float[]17,17));
    
    bardataset set=新的bardataset(yvalues,“”);
    set.setcolors(new int[]color.rgb(67,67,72),color.rgb(124,181,236),设置.setcolors(new int[]color.rgb(67,67,72)),
    颜色.rgb(124,181,236),颜色.rgb(124,181,236));
    set.setsTackLabels(新字符串[]{
    “男人”,“女人”,“fgdgfx”,“gfdrhd”
    (});
    bardata data=新bardata(套);
    数据。设定杆宽度(1.9f);
    mchart.setdata(数据);
    mchart.invalidate();
    
    final arraylist xvals=new arraylist();
    xvals.add(“新”);
    xvals.add(“接受”);
    xvals.add(“完成”);
    xvals.add(“取消”);
    
    xaxis xaxis=mchart.getxaxis();
    xaxis.setposition(xaxis.xaxisposition.bottom);
    
    xaxis.settextcolor(color.red);
    xaxis.setdrawaxisline(真);
    xaxis.setDrawGridLines(错误);
    xaxis.setCenterAxisLabels(真);
    xaxis.setaxisminum(0.4f);
    xaxis.setgranularity(4f)设置粒度;
    xaxis.setValueFormatter(新indexaxisValueForMatter(xvals));
    
    mchart.getaxisright().setEnabled(假);
    yaxis leftaxis=mchart.getaxisleft();
    leftaxis.setValueFormatter(new largeValueFormatter());
    leftaxis.setDrawGridLines(错误);
    左轴。设置空间顶部(35F);
    左轴。设置轴最小值(0f);
    leftaxis.setgranularity(1.0f);
    leftaxis.setGranularityEnabled(真);
    
    图例L=mchart.getLegend();
    L.setposition(图表右下方的legendsposition图例);
    l.setwordwarpenabled(真);
    

    代码如下;

          mChart = view.findViewById(R.id.bar_chart);
            barWidth = 0.3f;
            barSpace = 0.02f;
            groupSpace = 0.4f;
    
            mChart.setDescription(null);
            mChart.setPinchZoom(false);
            mChart.setScaleEnabled(false);
            mChart.setDrawBarShadow(false);
            mChart.setDrawGridBackground(false);
    
            mChart.getAxisLeft().setDrawGridLines(false);
            mChart.getXAxis().setDrawGridLines(false);
            mChart.setBackgroundColor(Color.TRANSPARENT); 
    
            ArrayList<BarEntry> yValues = new ArrayList<>();
            yValues.add(new BarEntry(5, new float[]{10, 20, 30, 50}));
            yValues.add(new BarEntry(15, new float[]{12, 13}));
            yValues.add(new BarEntry(25, new float[]{15, 15}));
            yValues.add(new BarEntry(35, new float[]{17, 17}));
    
            BarDataSet set = new BarDataSet(yValues, "");
            set.setColors(new int[]{Color.rgb(67, 67, 72), Color.rgb(124, 181, 236),
                    Color.rgb(124, 181, 236), Color.rgb(124, 181, 236)});
            set.setStackLabels(new String[]{
                    "Men", "Women", "fgdgfx", "gfdrhd"
            });
            BarData data = new BarData(set);
            data.setBarWidth(1.9f);
            mChart.setData(data);
            mChart.invalidate();
    
            final ArrayList xVals = new ArrayList();
            xVals.add("New");
            xVals.add("Accepted");
            xVals.add("Completed");
            xVals.add("Cancelled");
    
            XAxis xAxis = mChart.getXAxis();
            xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
    
            xAxis.setTextColor(Color.RED);
            xAxis.setDrawAxisLine(true);
            xAxis.setDrawGridLines(false);
            xAxis.setCenterAxisLabels(true);
            xAxis.setAxisMinimum(0.4f);
            xAxis.setGranularity(4f);
            xAxis.setValueFormatter(new IndexAxisValueFormatter(xVals));
    
            mChart.getAxisRight().setEnabled(false);
            YAxis leftAxis = mChart.getAxisLeft();
            leftAxis.setValueFormatter(new LargeValueFormatter());
            leftAxis.setDrawGridLines(false);
            leftAxis.setSpaceTop(35f);
            leftAxis.setAxisMinimum(0f);
            leftAxis.setGranularity(1.0f);
            leftAxis.setGranularityEnabled(true);
    
            Legend l = mChart.getLegend();
            l.setPosition(Legend.LegendPosition.BELOW_CHART_RIGHT);
            l.setWordWrapEnabled(true);
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Brijesh Joshi    7 年前

    float value

        xAxis.setValueFormatter(new IAxisValueFormatter() {
            @Override
            public String getFormattedValue(float value, AxisBase axis) {
                try {
                    return xVals.get((int) (value / 10));//dividing the value by 10 to get the multiplied value.
                } catch (Exception e){
                    return "";
                }
            }
        });