zoukankan      html  css  js  c++  java
  • android使用achartengine 实现折线图

    折线图的实现分为下边几个步骤:
    1、第一步:数据的准备
    XYMultipleSeriesDataset mDataset = new XYMultipleSeriesDataset();
    XYSeries series1 = new XYSeries("第一条线");
    series1.add(1, 7);
    series1.add(2, 9);
    series1.add(3,12);
    series1.add(4, 5);
    mDataset.addSeries(series1);
    XYSeries series2 = new XYSeries("第二条线");
    series2.add(1, 3);
    series2.add(2, 8);
    series2.add(3, 7);
    series2.add(4, 4);
    mDataset.addSeries(series2);
    第二、步是描绘器的设置即XYMultipleSeriesRenderer的实现
    这个主要实现的是坐标轴的绘制包括,字体大小,坐标轴的刻度的设置
    例如 XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer(); //设置图表的X轴的当前方向 mRenderer.setOrientation(XYMultipleSeriesRenderer.Orientation.HORIZONTAL);
    mRenderer.setXTitle("日期");//设置为X轴的标题
    mRenderer.setYTitle("温度");//设置y轴的标题
    mRenderer.setAxisTitleTextSize(20);//设置轴标题文本大小
    mRenderer.setChartTitle("温度走势图");//设置图表标题
    mRenderer.setChartTitleTextSize(30);//设置图表标题文字的大小
    mRenderer.setLabelsTextSize(18);//设置标签的文字大小
    mRenderer.setLegendTextSize(20);//设置图例文本大小
    mRenderer.setPointSize(10f);//设置点的大小
    mRenderer.setYAxisMin(0);//设置y轴最小值是0
    mRenderer.setYAxisMax(15);
    mRenderer.setYLabels(10);//设置Y轴刻度个数(貌似不太准确)
    mRenderer.setXAxisMax(5);
    mRenderer.setShowGrid(true);//显示网格
    //将x标签栏目显示如:1,2,3,4替换为显示1月,2月,3月,4月
    mRenderer.addXTextLabel(1, "1月");
    mRenderer.addXTextLabel(2, "2月");
    mRenderer.addXTextLabel(3, "3月");
    mRenderer.addXTextLabel(4, "4月");
    mRenderer.setXLabels(0);//设置只显示如1月,2月等替换后的东西,不显示1,2,3等
    mRenderer.setMargins(new int[] { 20, 30, 15, 20 });//设置视图位置
    第三步:折线图线条的设置
    XYSeriesRenderer r = new XYSeriesRenderer();//(类似于一条线对象)
    r.setColor(Color.BLUE);//设置颜色
    r.setPointStyle(PointStyle.CIRCLE);//设置点的样式
    r.setFillPoints(true);//填充点(显示的点是空心还是实心)
    r.setDisplayChartValues(true);//将点的值显示出来
    r.setChartValuesSpacing(10);//显示的点的值与图的距离
    r.setChartValuesTextSize(25);//点的值的文字大小

    // r.setFillBelowLine(true);//是否填充折线图的下方
    // r.setFillBelowLineColor(Color.GREEN);//填充的颜色,如果不设置就默认与线的颜色一致
    r.setLineWidth(3);//设置线宽
    mRenderer.addSeriesRenderer(r);


    XYSeriesRenderer rTwo = new XYSeriesRenderer();//(类似于一条线对象)
    rTwo.setColor(Color.GRAY);//设置颜色
    rTwo.setPointStyle(PointStyle.CIRCLE);//设置点的样式
    rTwo.setFillPoints(true);//填充点(显示的点是空心还是实心)
    rTwo.setDisplayChartValues(true);//将点的值显示出来
    rTwo.setChartValuesSpacing(10);//显示的点的值与图的距离
    rTwo.setChartValuesTextSize(25);//点的值的文字大小

    // rTwo.setFillBelowLine(true);//是否填充折线图的下方
    // rTwo.setFillBelowLineColor(Color.GREEN);//填充的颜色,如果不设置就默认与线的颜色一致
    rTwo.setLineWidth(3);//设置线宽

    mRenderer.addSeriesRenderer(rTwo);

    第四步:生成图view
    GraphicalView view = ChartFactory.getLineChartView(this, mDataset, mRenderer);
    view.setBackgroundColor(Color.BLACK);

    转载请注明来源于

    作者: persist
    出处: http://www.cnblogs.com/persist-confident/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    LeetCode 252. Meeting Rooms
    LeetCode 161. One Edit Distance
    LeetCode 156. Binary Tree Upside Down
    LeetCode 173. Binary Search Tree Iterator
    LeetCode 285. Inorder Successor in BST
    LeetCode 305. Number of Islands II
    LeetCode 272. Closest Binary Search Tree Value II
    LeetCode 270. Closest Binary Search Tree Value
    LeetCode 329. Longest Increasing Path in a Matrix
    LintCode Subtree
  • 原文地址:https://www.cnblogs.com/persist-confident/p/4482885.html
Copyright © 2011-2022 走看看