读书人

AChartEngine高级应用之CombinedXYCha

发布时间: 2014-01-22 14:50:12 作者: rapoo

AChartEngine高级应用之CombinedXYChart(组合统计图)在单个统计图上显示多样化的数据

1.?????设置XYMultipleSeriesRenderer

XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();// 设置描绘器

renderer.setAxisTitleTextSize(16);

?????????????????? renderer.setChartTitleTextSize(20);

?????????????????? renderer.setLabelsTextSize(15);

?????????????????? renderer.setLegendTextSize(15);

?????????????????? renderer.setPointSize(5f);

?????????????????? renderer.setMargins(new int[] { 20, 30, 15, 20 });// 上,左,下,右

?????????????????? int length = colors.length;

?????????????????? for (int i = 0; i < length; i++) {

??????????????????????????? XYSeriesRenderer r = new XYSeriesRenderer();

??????????????????????????? r.setColor(colors[i]);

??????????????????????????? r.setPointStyle(styles[i]);

??????????????????????????? renderer.addSeriesRenderer(r);

?????????????????? }

renderer.setXLabels(12);// X轴均分12项

?????????????????? renderer.setYLabels(10);// Y轴均分10项

?????????????????? renderer.setShowGrid(true);// 显示表格

?????????????????? renderer.setXLabelsAlign(Align.RIGHT);// 右对齐

?????????????????? renderer.setYLabelsAlign(Align.RIGHT);

?????????????????? renderer.setZoomButtonsVisible(false);// 不显示放大缩小

?????????????????? renderer.setPanEnabled(false, false);// 上下左右都不可以移动

//dataset.addSeries(0, sunSeries);

?????????????????? dataset.addSeries(0, waterSeries);

?????????????????? //renderer.addSeriesRenderer(0, lightRenderer);

?????????????????? renderer.addSeriesRenderer(0, waterRenderer);

?

2.?????构建数据源XYMultipleSeriesDataset

// --------------------------曲线start---------------------------------------

?????????????????? String[] titles = new String[] { "最低温度", "最高温度", "平均光照时间" };// 曲线标题

?????????????????? List<double[]> x = new ArrayList<double[]>();

?????????????????? for (int i = 0; i < titles.length; i++) {

??????????????????????????? x.add(new double[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 });

?????????????????? }

?????????????????? List<double[]> values = new ArrayList<double[]>();

?????????????????? values.add(new double[] { -12.3, -8, -2, 3, 16, 18, 26.4, 26.9, 18.6,

???????????????????????????????????? 12.3, -2, -10 });

?????????????????? values.add(new double[] { 9, 10, 11, 15, 19, 23, 38, 40, 37, 32, 23, 10 });

?

?????????????????? values.add(new double[] { 6.3, 7.5, 8.5, 9.8, 10.8, 11.3, 13.5, 14.1, 10.3, 9.5, 9.2, 8 });

?

?????????????????? int[] colors = new int[] { Color.GREEN, Color.RED, Color.YELLOW };// 绿色,红色

?????????????????? PointStyle[] styles = new PointStyle[] { PointStyle.CIRCLE,// 圆圈状

???????????????????????????????????? PointStyle.DIAMOND, PointStyle.SQUARE };// 菱形状,矩形状

XYSeries waterSeries = new XYSeries("平均温度");

?????????????????? waterSeries.add(1, -3);// 添加数据

?????????????????? waterSeries.add(2, 6);

?????????????????? waterSeries.add(3, 10);

?????????????????? waterSeries.add(4, 17);

?????????????????? waterSeries.add(5, 20);

?????????????????? waterSeries.add(6, 26);

?????????????????? waterSeries.add(7, 29);

?????????????????? waterSeries.add(8, 30);

?????????????????? waterSeries.add(9, 23);

?????????????????? waterSeries.add(10, 19);

?????????????????? waterSeries.add(11, 10);

?????????????????? waterSeries.add(12, -1);

?????????????????? renderer.setBarSpacing(0.5);

?

?????????????????? XYSeriesRenderer waterRenderer = new XYSeriesRenderer();

?????????????????? waterRenderer.setColor(Color.CYAN);// 青色

?????????????????? waterRenderer.setDisplayChartValues(true);// 显示数值

?????????????????? waterRenderer.setChartValuesTextSize(10);// 设置数值字体

?

?????????????????? XYMultipleSeriesDataset dataset = buildDataset(titles, x, values);

?????????????????? //dataset.addSeries(0, sunSeries);

?????????????????? dataset.addSeries(0, waterSeries);

?????????????????? //renderer.addSeriesRenderer(0, lightRenderer);

?????????????????? renderer.addSeriesRenderer(0, waterRenderer);

?

3.?????通过ChartFactory生成CombinedXYChartView组合统计图

mViewChart = ChartFactory.getCombinedXYChartView(

???????????????????????????????????? getApplicationContext(), dataset, renderer, types);// 通过ChartFactory生成图表

?

?????????????????? mLayout.addView(mViewChart, new LayoutParams(LayoutParams.FILL_PARENT,

???????????????????????????????????? LayoutParams.FILL_PARENT));// 将图表添加到布局中去

效果图:

?AChartEngine高级应用之CombinedXYChart(结合统计图)在单个统计图上显示多样化的数据
?

Code:

?

AChartEngine高级应用之CombinedXYChart(结合统计图)在单个统计图上显示多样化的数据
    ????}??
  1. }??

?

?

对应完整项目:http://download.csdn.net/detail/qiu_11/6864045

未完待续…..

?

AChartEngine应用系列文章

?

?

?

(一)AChartEngine简介

(二)AChartEngine应用之PieChart(饼图)

(三)AChartEngine应用之BarChart(柱形图)

(四)AChartEngine应用之PieChart(动态饼图,允许产生动态数据并显示)

(五)AChartEngine应用之LineChart(模拟生命特征值图)

(六)AChartEngine应用之LineChart(模拟三角函数sin,cos)

(七)AChartEngine高级应用CombinedXYChart(组合统计图)

读书人网 >移动开发

热点推荐