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));// 将图表添加到布局中去
效果图:
?
?
Code:
?
- ????}??
- }??
?
?
对应完整项目:http://download.csdn.net/detail/qiu_11/6864045
未完待续…..
?
AChartEngine应用系列文章
?
?
?
(一)AChartEngine简介
(二)AChartEngine应用之PieChart(饼图)
(三)AChartEngine应用之BarChart(柱形图)
(四)AChartEngine应用之PieChart(动态饼图,允许产生动态数据并显示)
(五)AChartEngine应用之LineChart(模拟生命特征值图)
(六)AChartEngine应用之LineChart(模拟三角函数sin,cos)
(七)AChartEngine高级应用CombinedXYChart(组合统计图)