转自:http://hi.baidu.com/yurenmeiguis/item/4b9218df1a9ef5122b35c7bd
参考:http://www.cnblogs.com/youxilua/archive/2012/01/18/2325132.html
1、 使用Android 绘图工具库 AChartEngine
2、 绘制折线图的代码解析
关于工具库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);