Android 删除achartengine图形中y轴的十进制值

Android 删除achartengine图形中y轴的十进制值,android,achartengine,Android,Achartengine,我想删除achartengine图形库中Y轴上的十进制数,如下所示: 代码: public GraphicalView createIntent(List<double[]> values, float height_) { height_ = (float) (height_ + 0.4); String[] titles = new String[] { "Assignments" }; int[] colors = new

我想删除achartengine图形库中Y轴上的十进制数,如下所示:

代码:

public GraphicalView createIntent(List<double[]> values, float height_) {

        height_ = (float) (height_ + 0.4);

        String[] titles = new String[] { "Assignments" };

        int[] colors = new int[] { getResources().getColor(
                R.color.color_ff83ba20) };

        XYMultipleSeriesRenderer renderer = buildBarRenderer(colors);
        renderer.setOrientation(Orientation.HORIZONTAL);

        if (height_ < 0)
            height_ = 1;
        setChartSettings(renderer, " ", " ", " ", 0, 5, 0, height_,
                Color.BLACK, Color.BLACK);
        renderer.setXLabels(0);
        renderer.setYLabels(10);
        renderer.setYLabelsPadding(10);
        renderer.setMargins(new int[] { 50, 50, 10, 10 });


        renderer.setInScroll(true); // for inscoroll

        renderer.setClickEnabled(true);
        renderer.setSelectableBuffer(100); // for fixed chart

        int length = renderer.getSeriesRendererCount();
        for (int i = 0; i < length; i++) {
            SimpleSeriesRenderer seriesRenderer = renderer
                    .getSeriesRendererAt(i);

            // seriesRenderer.setDisplayChartValues(true);

        }

        final GraphicalView grfv = ChartFactory.getBarChartView(getActivity(),
                buildBarDataset(titles, values), renderer, Type.STACKED);
        return grfv;
    }

    protected XYMultipleSeriesRenderer buildBarRenderer(int[] colors) {
        XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
        renderer.setAxisTitleTextSize(13);
        renderer.setChartTitleTextSize(20);
        renderer.setLabelsTextSize(13);
        renderer.setLegendTextSize(13);
        renderer.setBarSpacing(0.6);
        renderer.setShowGridX(true);
        renderer.setShowGridY(true);
        renderer.setGridColor(getResources().getColor(R.color.color_0dffffff));

        renderer.setMarginsColor(getResources().getColor(R.color.color_eeeded));

        renderer.setXLabelsColor(getResources().getColor(R.color.color_black));
        renderer.setYLabelsColor(0, getResources()
                .getColor(R.color.color_black));
        renderer.setBarWidth(60);
        renderer.setApplyBackgroundColor(true);

        renderer.setBackgroundColor(getResources().getColor(
                R.color.color_fbfbfc));

        renderer.setMarginsColor(getResources().getColor(R.color.color_fbfbfc));

        renderer.setInScroll(true); // for inscoroll

        renderer.setClickEnabled(true);
        renderer.setSelectableBuffer(100); // for fixed chart

        int length = colors.length;
        for (int i = 0; i < length; i++) {
            SimpleSeriesRenderer r = new SimpleSeriesRenderer();
            r.setColor(colors[i]);

            r.setChartValuesSpacing(15);
            renderer.addSeriesRenderer(r);
        }
        return renderer;
    }

    protected XYMultipleSeriesDataset buildBarDataset(String[] titles,
            List<double[]> values) {
        XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
        int length = titles.length;
        for (int i = 0; i < length; i++) {
            CategorySeries series = new CategorySeries(titles[i]);
            double[] v = values.get(i);
            int seriesLength = v.length;
            for (int k = 0; k < seriesLength; k++) {
                series.add(v[k]);
                // series.add(v[k]);
            }

            XYSeries d = series.toXYSeries();

            if (values.get(i)[0] > 0)
                d.addAnnotation((int) (values.get(i)[0]) + "", 1,
                        values.get(i)[0] + 0.05);
            if (values.get(i)[1] > 0)
                d.addAnnotation((int) (values.get(i)[1]) + "", 2,
                        values.get(i)[1] + 0.05);
            if (values.get(i)[2] > 0)
                d.addAnnotation((int) (values.get(i)[2]) + "", 3,
                        values.get(i)[2] + 0.05);
            if (values.get(i)[3] > 0)
                d.addAnnotation((int) (values.get(i)[3]) + "", 4,
                        values.get(i)[3] + 0.05);

            // d.addAnnotation("hi", 3.4, 5);
            // d.addAnnotation("hi", 4.4, 4);

            dataset.addSeries(d);
        }
        return dataset;
    }

    protected void setChartSettings(XYMultipleSeriesRenderer renderer,
            String title, String xTitle, String yTitle, double xMin,
            double xMax, double yMin, double yMax, int axesColor,
            int labelsColor) {
        renderer.setChartTitle(title);
        renderer.setYLabelsAlign(Align.RIGHT);
        renderer.setXTitle(xTitle);
        renderer.setYTitle(yTitle);
        renderer.setXAxisMin(xMin);
        renderer.setXAxisMax(xMax);
        renderer.setYAxisMin(yMin);
        renderer.setYAxisMax(yMax);

        renderer.setMargins(new int[] { 10, 65, 10, 0 });
        renderer.setAxesColor(axesColor);
        renderer.setLabelsColor(Color.BLACK);
        renderer.setInScroll(true); // for inscoroll

        renderer.setClickEnabled(true);
        renderer.setSelectableBuffer(100); // for fixed chart

    }
公共图形视图createIntent(列表值、浮动高度){ 高度=(浮动)(高度+0.4); 字符串[]标题=新字符串[]{“分配”}; int[]colors=newint[]{getResources().getColor( R.color.color_ff83ba20)}; XYMultipleReseriesRenderer渲染器=构建渲染器(颜色); 渲染器.setOrientation(方向.水平); 如果(高度<0) 高度=1; setChartSettings(渲染器,“”,“”,“”,0,5,0,高度, 颜色。黑色,颜色。黑色); setXLabels(0); 1.setYLabels(10); 渲染器。Setylabelspading(10); setMargins(新的int[]{50,50,10,10}); renderer.setInScroll(true);//用于inscoroll renderer.setClickEnabled(true); renderer.setSelectableBuffer(100);//用于固定图表 int length=renderer.getSeriesRenderCount(); for(int i=0;i0) d、 addAnnotation((int)(values.get(i)[0])+“”,1, 得到(i)[0]+0.05); if(value.get(i)[1]>0) d、 addAnnotation((int)(values.get(i)[1])+“”,2, 得到(i)[1]+0.05); if(value.get(i)[2]>0) d、 addAnnotation((int)(values.get(i)[2])+“”,3, 得到(i)[2]+0.05); if(value.get(i)[3]>0) d、 addAnnotation((int)(values.get(i)[3])+“”,4, 得到(i)[3]+0.05); //d.addAnnotation(“hi”,3.4,5); //d.addAnnotation(“hi”,4.4,4); 数据集.addSeries(d); } 返回数据集; } 受保护的void setChartSettings(XYMultipleSeriesRenderer渲染器, 字符串标题、字符串xTitle、字符串yTitle、双xMin、, 双X最大值,双Y最小值,双Y最大值,内轴颜色, int标签颜色){ .setChartTitle(标题); renderer.setYLabelsAlign(Align.RIGHT); renderer.setXTitle(xTitle); 渲染器.setytle(yTitle); setXAxisMin(xMin); setXAxisMax(xMax); setYAxisMin(yMin); setYAxisMax(yMax); setMargins(新的int[]{10,65,10,0}); 渲染器.setAxesColor(axesColor); 渲染器.setLabelsColor(Color.BLACK); renderer.setInScroll(true);//用于inscoroll renderer.setClickEnabled(true); renderer.setSelectableBuffer(100);//用于固定图表 } 我希望Y轴只显示完整的整数,
任何帮助都将不胜感激

轴值根据范围值动态生成

一种解决方案可能是删除默认标签,然后添加如下自定义标签:

 renderer.addYTextLabel(y, y + "");

其中y是一个整数值。

我的y轴值是动态生成的。为什么你不想将其转换为整数?是的,我想这样,但在0.7的情况下,它将转换为0,我不想让0显示你在这种情况下期望设置的值。只需设置条件,如果值大于0.5,则整数值应为1或u还有一个问题,我想在条中间画注释,但当我把标签颜色设为白色时,它是不可见的,而当我把黑色设为可见时,它的一部分是可见的,我不需要注释