Android折线图表

来源:互联网 发布:知微数据招聘 编辑:程序博客网 时间:2024/05/22 02:19
public View lineView(List<PointValue> list)    {        ArrayList<Double> dlist = new ArrayList<Double>();        DecimalFormat df = new DecimalFormat("#####0.00");        // 同样是需要数据dataset和视图渲染器renderer        XYMultipleSeriesDataset mDataset = new XYMultipleSeriesDataset();        XYSeries series = new XYSeries("第一条线");        int i = 1;        XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer();        String id = list.get(0).getPointId();        String unit = JSONUtil.map.get(id);        // 设置数据        for (PointValue pv : list)        {            series.add(i, Double.parseDouble(df.format(pv.getValue())));            mRenderer.addXTextLabel(i, pv.getTime().substring(8, 10));            dlist.add(Double.parseDouble(df.format(pv.getValue())));            i++;        }        mDataset.addSeries(series);        double maxValue = DateUtil.CalculationMax(dlist);        double minValue = DateUtil.CalculationMin(dlist);        // 设置图表的X轴的当前方向        mRenderer.setOrientation(XYMultipleSeriesRenderer.Orientation.HORIZONTAL);        mRenderer.setXTitle("日期");// 设置为X轴的标题        mRenderer.setYTitle(unit);// 设置y轴的标题        mRenderer.setAxisTitleTextSize(20);// 设置轴标题文本大小        // mRenderer.setChartTitle("价格走势图");//设置图表标题        // mRenderer.setChartTitleTextSize(30);//设置图表标题文字的大小        mRenderer.setLabelsTextSize(22);// 设置标签的文字大小        // mRenderer.setLegendTextSize(20);//设置图例文本大小        mRenderer.setPointSize(5f);// 设置点的大小        mRenderer.setYAxisMin(Math.round(minValue) - 1);// 设置y轴最小值是0        mRenderer.setYAxisMax(Math.round(maxValue));        mRenderer.setYLabels(5);// 设置Y轴刻度个数(貌似不太准确)        mRenderer.setYLabelsAlign(Align.RIGHT);// y轴字体对齐方式        mRenderer.setYLabelsPadding(3);// y轴        mRenderer.setYLabelsVerticalPadding(-5);        mRenderer.setXLabelsPadding(5);        mRenderer.setXAxisMax(11);        mRenderer.setXLabelsAngle(-45);        mRenderer.setXLabelsAlign(Align.CENTER);        mRenderer.setShowGrid(true);// 显示网格        // 将x标签栏目显示如:1,2,3,4替换为显示1月,2月,3月,4月        mRenderer.setXLabels(0);// 设置只显示如1月,2月等替换后的东西,不显示1,2,3等        mRenderer.setMargins(new int[] { 30, 50, 0, 10 });// 设置视图位置        XYSeriesRenderer r = new XYSeriesRenderer();// (类似于一条线对象)        r.setColor(Color.YELLOW);// 设置颜色        r.setPointStyle(PointStyle.CIRCLE);// 设置点的样式        r.setFillPoints(true);// 填充点(显示的点是空心还是实心)        r.setDisplayChartValues(true);// 将点的值显示出来        r.setChartValuesSpacing(10);// 显示的点的值与图的距离        r.setChartValuesTextSize(22);// 点的值的文字大小        r.setShowLegendItem(false);        // r.setDisplayBoundingPoints(true);        // r.setFillBelowLine(true);//是否填充折线图的下方        // r.setFillBelowLineColor(Color.GREEN);//填充的颜色,如果不设置就默认与线的颜色一致        r.setLineWidth(3);// 设置线宽        mRenderer.addSeriesRenderer(r);        GraphicalView view = ChartFactory.getLineChartView(this, mDataset, mRenderer);        view.setBackgroundColor(Color.GRAY);        // setContentView(view);        return view;    }

0 0
原创粉丝点击