如何格式化在aChartEngine在折线图XAXIS值正确的android [英] How to Format XAxis values correctly in Line Chart in aChartEngine in android

查看:520
本文介绍了如何格式化在aChartEngine在折线图XAXIS值正确的android的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我怎样才能让x轴在achartEngine格式是否正确?我想它只有与日期值在X轴间距正确的日期值,但我似乎无法得到它正常工作。

How can i make the XAxis in achartEngine format correctly? I would like it to have only the date value spaced correctly in the X-Axis with date values but i can't seem to get it work correctly.

这是我曾尝试:

 XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
     dataset.addSeries(series);

     XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer();
     mRenderer.setBackgroundColor(Color.BLACK);
     mRenderer.setApplyBackgroundColor(true);
     mRenderer.setGridColor(Color.LTGRAY);
     mRenderer.setXLabels(0);
    // mRenderer.setMargins(new int[]{0, 20, 0, 0});

     XYSeriesRenderer renderer = new XYSeriesRenderer();
     //renderer.setDisplayChartValuesDistance(1);
     renderer.setColor(Color.GREEN);

     mRenderer.setXLabels(10);
        if(date_value.length < 10){ //date_value is a large array of dates for the X-Axis

            for(int i = 0; i < date_value.length; i++){
                mRenderer.addXTextLabel(i+1, date_value[i]);    
            }

        }

        else if(date_value.length > 10){

            int mod = date_value.length  %  10;
            int add_mod = mod;
            int last = date_value.length;

            mRenderer.addXTextLabel(0, date_value[0]);

            for(int i=0; i < 10; i++){
                mRenderer.addXTextLabel(i, date_value[mod]);

                     mod+=add_mod; 


            }
            mRenderer.setXLabelsAngle(90);
            //mRenderer.addXTextLabel(date_value.length, date_value[last]);

        }
    /*get the last elements in the array and parse as double to set the maximum range for X*/
        Calendar ist = Calendar.getInstance();
        Calendar last = Calendar.getInstance();
        ist.setTime(formatter.stringToDateReport(date_value[0]));
        last.setTime(formatter.stringToDateReport(date_value[date_value.length-1]));

    mRenderer.setXAxisMin(ist.get(Calendar.DATE));
     mRenderer.setXAxisMax(last.get(Calendar.DATE));
     mRenderer.addSeriesRenderer(renderer); 
     chartView = ChartFactory.getLineChartView(context, dataset, mRenderer);

return chartView;

这是我所得到的:

你可以看到,他们没有正确间隔,他们在X轴线,具有不需要的值例如10,15,20 ..我怎样才能纠正呢?谢谢你。

as you can see, They are not spaced correctly, they are on the x-axis line and have unwanted values e.g 10, 15, 20.. How can i correct this? Thank you.

推荐答案

乍一看,你应该删除行

mRenderer.setXLabels(10);

只要你想 setXLabels(0)就像你在另一行。我认为,code告诉AChartEngine尝试和打印10个标签,以及你的文字标签。

as you want to setXLabels(0) like you have in another line. I think that code tells AChartEngine to try and print 10 labels as well as your text labels.

编辑:您还需要调用 addXTextLabel()通过x位置的参数,你想在标签所在。因此, renderer.addXTextLabel(date_value_that_should_have_a_string,date_value_string)

You also need to call addXTextLabel() with the parameter of the x position you would like the label to be at. So renderer.addXTextLabel(date_value_that_should_have_a_string, date_value_string)

这篇关于如何格式化在aChartEngine在折线图XAXIS值正确的android的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆