zoukankan      html  css  js  c++  java
  • Android之关于图表

    首先需要下载Jar包:图表jar.rar

    线性图:

    public class MainActivity extends Activity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            // 1, 构造显示用渲染图XY
            XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
            // 2,进行显示
            XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
            // 2.1, 构建数据
            Random r = new Random();
            for (int i = 0; i < 2; i++) {
                // 创建代表哪一条线的标题,这里是画两条
                XYSeries series = new XYSeries("test" + (i + 1));
                // 填充数据,一条标题10个点
                for (int k = 0; k < 10; k++) {
                    // 填x,y值
                    series.add(k, 20 + r.nextInt() % 100);
                }
                // 需要绘制的点放进dataset中
                dataset.addSeries(series);
            }
            // 3, 对点的绘制进行设置
            XYSeriesRenderer xyRenderer = new XYSeriesRenderer();
            // 3.1设置颜色
            xyRenderer.setColor(Color.BLUE);
            // 3.2设置点的样式
            xyRenderer.setPointStyle(PointStyle.SQUARE);
            // 3.3, 将要绘制的点添加到坐标绘制中
            renderer.addSeriesRenderer(xyRenderer);
            
            // 3.4,重复 1~3的步骤绘制第二个系列点
            xyRenderer = new XYSeriesRenderer();
            xyRenderer.setColor(Color.RED);
            xyRenderer.setPointStyle(PointStyle.CIRCLE);
            renderer.addSeriesRenderer(xyRenderer);
    
            // Intent intent = new LinChart().execute(this);
            // 打开画图的Activity,需要在manifest中设置 <activity android:name="org.achartengine.GraphicalActivity" />
    
            Intent intent = ChartFactory
                    .getLineChartIntent(this, dataset, renderer);
            startActivity(intent);
    
        }
    }

    柱状图:

    // 柱状图
            XYMultipleSeriesRenderer renderer = getBarDemoRenderer();
            Intent intent = ChartFactory.getBarChartIntent(this,
                    getBarDemoDataset(), renderer, Type.DEFAULT);
            startActivity(intent);
    
    //设置柱状图的Series
        private XYMultipleSeriesDataset getBarDemoDataset() {
            XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
            final int nr = 10;
            Random r = new Random();
            // 一共是3种不同的柱状图
            for (int i = 0; i < SERIES_NR; i++) {
                CategorySeries series = new CategorySeries("Demo series " + (i + 1));
                // 设置每个的高度
                for (int k = 0; k < nr; k++) {
                    series.add(100 + r.nextInt() % 100);
                }
                dataset.addSeries(series.toXYSeries());
            }
            return dataset;
        }
    
        //设置柱状图的Renderer,设置颜色
        public XYMultipleSeriesRenderer getBarDemoRenderer() {
            XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
            SimpleSeriesRenderer r = new SimpleSeriesRenderer();
            r.setColor(Color.BLUE);
            renderer.addSeriesRenderer(r);
            r = new SimpleSeriesRenderer();
            r.setColor(Color.GREEN);
            renderer.addSeriesRenderer(r);
            r = new SimpleSeriesRenderer();
            r.setColor(Color.WHITE);
            renderer.addSeriesRenderer(r);
            setChartSettings(renderer);
            return renderer;
        }
    
        //设置柱状图Renderer的属性
        private void setChartSettings(XYMultipleSeriesRenderer renderer) {
            renderer.setChartTitle("Chart demo");
            renderer.setXTitle("x values");
            renderer.setYTitle("y values");
            renderer.setXAxisMin(0);// 设置X轴的最小值为0.5
            renderer.setXAxisMax(10.5);// 设置X轴的最大值为10.5
            renderer.setYAxisMin(0);// 设置Y轴的最小值为0
            renderer.setYAxisMax(210);// 设置Y轴最大值为210
            renderer.setDisplayChartValues(true); // 设置是否在柱体上方显示值
            renderer.setShowGrid(true);// 设置是否在图表中显示网格
            renderer.setXLabels(0);// 设置X轴显示的刻度标签的个数
            for (int i = 1; i < 11; i++) {
                // 设置x轴刻度的值
                renderer.addTextLabel(i, "" + i);
            }
        }


    饼状图:

    // 饼状图
                Intent intent = execute(MainActivity.this);
                startActivity(intent);
    
    //设置饼状图
        public Intent execute(Context context) {
            double[] values = new double[] { 12, 14, 11, 10, 19 };
            int[] colors = new int[] { Color.BLUE, Color.GREEN, Color.MAGENTA,
                    Color.YELLOW, Color.CYAN };
            DefaultRenderer renderer = buildCategoryRenderer(colors);
            renderer.setZoomButtonsVisible(true);
            renderer.setZoomEnabled(true);
            // 设置饼状图的title字体大小
            renderer.setChartTitleTextSize(20);
            // 设置饼状图的title
            renderer.setChartTitle("这是一个饼状图");
            return ChartFactory.getPieChartIntent(context,
                    buildCategoryDataset("Project budget", values), renderer,
                    "Budget");
        }
    
        //设置饼状图的Renderer
        protected DefaultRenderer buildCategoryRenderer(int[] colors) {
            DefaultRenderer renderer = new DefaultRenderer();
            renderer.setLabelsTextSize(15);
            renderer.setLegendTextSize(15);
            renderer.setMargins(new int[] { 20, 30, 15, 0 });
            // 设置颜色
            for (int color : colors) {
                SimpleSeriesRenderer r = new SimpleSeriesRenderer();
                r.setColor(color);
                renderer.addSeriesRenderer(r);
            }
            return renderer;
        }
    
        //设置饼状图的Series
        protected CategorySeries buildCategoryDataset(String title, double[] values) {
            CategorySeries series = new CategorySeries(title);
            int k = 0;
            // 设置每份的大小
            for (double value : values) {
                series.add("Project " + ++k, value);
            }
    
            return series;
        }
  • 相关阅读:
    字在线中
    关于页面显示层叠问题
    左边竖条
    jquery 动态添加元素事件绑定问题
    工作总结
    多文本输入,内容过多时输入框会自动撑开
    lunix常用命令
    springboot整合es availableProcessors is already set to [2], rejecting [2]
    mysql 主从复制架构
    elastic search 第一次安装 报错记录
  • 原文地址:https://www.cnblogs.com/lee0oo0/p/2822987.html
Copyright © 2011-2022 走看看