Android绘制折线图

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Android绘制折线图

1、使用Android 绘图工具库AChartEngine

2、绘制折线图的代码解析

关于AChartEngine

AChartEngine是为android应用而设计的绘图工具库。目前该库的最新稳定版本是0.7,支持绘制以下类型的图表:

∙line chart

∙area chart

∙scatter chart

∙time chart

∙bar chart

∙pie chart

∙bubble chart

∙doughnut chart

∙range (high-low) bar chart

∙dial chart / gauge

∙combined (any combination of line, cubic line, scatter, bar, range bar, bubble) chart

∙cubic line chart

以上每种图表可以包含多个序列, 可以将X轴以水平或垂直的形式显示,也支持很多自定义的特性. 图表可以作为Viewl构建,也可以作为Intent构建——这样可以被用于启动一个活动(Activity)

关于折线图的绘制

折线图的效果:

代码解释:

//每条曲线的名称

String[] titles = new String[]{"First","Second"};

List x = new ArrayList(); //点集的x坐标

List y = new ArrayList(); //点集的y坐标

x.add(new double[]{1,3,5,7,9,11});

x.add(new double[]{0,2,4,6,8,10});

y.add(new double[]{3,14,5,30,20,25});

y.add(new double[]{18,9,21,15,10,6});

曲线的名称和坐标点都以定义

以下的解释参照上图

步骤一:折线图的坐标集

首先应该创建XYSeries对象:用于提供绘制的点集合的数据

XYSeries series = new XYSeries(titles[i]); // 根据每条线的名称创建

将所有的坐标加入这个集合

series.add(xV[k], yV[k]);

XYMultipleSeriesDataset对象用于保存点集数据,包括每条曲线的X,Y坐标

// 用于数据的存放

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

步骤二:折线图的样式集

定义每条曲线的颜色

int[] colors = new int[] {Color.BLUE,Color.GREEN};

定义每条曲线的点的形状

PointStyle[] styles =

new PointStyle[]{PointStyle.CIRCLE, PointStyle.DIAMOND};

曲线图的格式,包括颜色,值的范围,点和线的形状等等都封装在XYSeriesRender对

象中,再将XYSeriesRender对象封装在XYMultipleSeriesRenderer对象中

XYSeriesRenderer r = new XYSeriesRenderer();

r.setColor(colors[i]);

r.setPointStyle(styles[i]);

r.setFillPoints(fill);

XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();

renderer.addSeriesRenderer(r);

设置折线图名称,坐标轴的名称,坐标轴的起点重点,坐标轴的颜色,坐标轴上数字的颜色setChartSettings(renderer, "Line Chart Demo", "X", "Y", -1, 12, 0, 35 , Color.WHITE, Color.WHITE);

步骤三:显示折线图

View chart = ChartFactory.getLineChartView(this, dataset, renderer); setContentView(chart);

//相当于一个包含x,y坐标的点

XYSeries series = new XYSeries(titles[i]);

//相当于点的结合的一个东西包含所有的XYSeries,用于保存点集数据

XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();

相关文档
最新文档