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

本文介绍了如何使用AChartEngine库在Android中创建CombinedXYChart,展示多样化数据。通过设置XYMultipleSeriesRenderer,构建XYMultipleSeriesDataset,以及通过ChartFactory生成组合统计图,实现一个地方的天气和光照时间分布情况的统计。文章提供了一个项目链接以供下载参考,并提及AChartEngine应用系列的其他文章。
摘要由CSDN通过智能技术生成

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

现在是信息飞速发展时代,单个的统计图已经无法满足实际生产的要求,人们只想通过快速的观察就能知道很多信息,所以组合统计图就运用而生了,诸如,人们想了解一个地方的大致情况,首先可能要了解当地的天气情况,交通运输情况等,以下我模拟的是一个地方的天气、光照时间分布情况的统计图。这个是AChartEngine图表的高级应用。

构建CombinedXYChart图的步骤主要分为以下三步,还需要在项目中引入AChartEngine依赖jar包,在Manifest中添加:<activityandroid:name="org.achartengine.GraphicalActivity" />

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 = n

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ChartDirector C# Demo 饼图,柱状等 有Demo就是好 // The data for the chart double[] data = {5.5, 3.5, -3.7, 1.7, -1.4, 3.3}; string[] labels = {"Jan", "Feb", "Mar", "Apr", "May", "Jun"}; // Create a XYChart object of size 200 x 190 pixels XYChart c = new XYChart(200, 190); // Set the plot area at (30, 20) and of size 140 x 140 pixels c.setPlotArea(30, 20, 140, 140); // Configure the axis as according to the input parameter if (img == "0") { c.addTitle("No Axis Extension", "Arial", 8); } else if (img == "1") { c.addTitle("Top/Bottom Extensions = 0/0", "Arial", 8); // Reserve 20% margin at top of plot area when auto-scaling c.yAxis().setAutoScale(0, 0); } else if (img == "2") { c.addTitle("Top/Bottom Extensions = 0.2/0.2", "Arial", 8); // Reserve 20% margin at top and bottom of plot area when auto-scaling c.yAxis().setAutoScale(0.2, 0.2); } else if (img == "3") { c.addTitle("Axis Top Margin = 15", "Arial", 8); // Reserve 15 pixels at top of plot area c.yAxis().setMargin(15); } else { c.addTitle("Manual Scale -5 to 10", "Arial", 8); // Set the y axis to scale from -5 to 10, with ticks every 5 units c.yAxis().setLinearScale(-5, 10, 5); } // Set the labels on the x axis c.xAxis().setLabels(labels); // Add a color bar layer using the given data. Use a 1 pixel 3D border for the // bars. c.addBarLayer3(data).setBorderColor(-1, 1); // Output the chart viewer.Image = c.makeWebImage(Chart.PNG); // Include tool tip for the chart viewer.ImageMap = c.getHTMLImageMap("", "", "title='ROI for {xLabel}: {value}%'")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值