Android绘制折线图

Android绘制折线图
Android绘制折线图

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();

相关主题
相关文档
最新文档