【问题标题】:android - How to implement the Line Graph using Achartengineandroid - 如何使用 Achartengine 实现折线图
【发布时间】:2011-10-07 07:08:34
【问题描述】:

我是 android 中 Graph 概念的新手。在我的应用程序中,我想使用 achartengine 实现折线图。我有 achartengine 的演示,它包含很多代码。我无法理解折线图。我想要使​​用 achartengine 的简单折线图。请任何人帮助我。

谢谢

【问题讨论】:

    标签: android graph achartengine


    【解决方案1】:


    以下方法将生成随机点 (x,y) 并将其添加到 XYSeries(它是要在图表上绘制的一系列点)。

    private XYMultipleSeriesDataset getDemoDataset() {
        XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
        final int nr = 7;
        Random r = new Random();
        for (int i = 0; i < SERIES_NR; i++) {
            XYSeries series = new XYSeries("Demo series " + (i + 1));
            for (int k = 0; k < nr; k++) {
                series.add(k, 20 + r.nextInt() % 100);
            }
            dataset.addSeries(series);
        }
        return dataset;
    }
    

    以下方法将返回一个用于绘制折线图的多重渲染器。

    private XYMultipleSeriesRenderer getDemoRenderer() {
        XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
        renderer.setAxisTitleTextSize(12);
        renderer.setChartTitleTextSize(12);
        renderer.setLabelsTextSize(15);
        renderer.setLegendTextSize(15);
        renderer.setPointSize(5f);
        renderer.setMargins(new int[] { 20, 30, 15, 0 });
        XYSeriesRenderer r = new XYSeriesRenderer();
        r.setColor(Color.BLACK);
        r.setPointStyle(PointStyle.CIRCLE);
        r.setFillBelowLine(false);
        r.setFillPoints(true);
        renderer.addSeriesRenderer(r);
        setChartSettings(renderer);
        return renderer;
    }
    

    以下方法将为您的图表设置设置。您可以在 AChartEngine 提供的文档中查找更多选项。

    private void setChartSettings(XYMultipleSeriesRenderer renderer) {
        renderer.setChartTitle("Chart demo");
        renderer.setXTitle("x values");
        renderer.setYTitle("y values");
        renderer.setApplyBackgroundColor(false);
        renderer.setRange(new double[] {0,6,-70,40});
        renderer.setFitLegend(false);
        renderer.setAxesColor(Color.BLACK);
        renderer.setShowGrid(true);
        renderer.setXAxisMin(0.5);
        renderer.setXAxisMax(10.5);
        renderer.setYAxisMin(0);
        renderer.setZoomEnabled(false);
        renderer.setYAxisMax(30);
      }
    

    您现在可以通过两种方式获取折线图:

    • 图表作为可以添加到任何布局的视图:

      ChartFactory.getLineChartView(this, getDemoDataset(), getDemoRenderer());

    • 图表作为一个新活动的意图

      ChartFactory.getLineChartIntent(this, getDemoDataset(), getDemoRenderer());

    PS:SERIES_NR 是一个常数,它告诉您要绘制多少条线系列。

    【讨论】:

    • 正是我想要的。继续加油
    猜你喜欢
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    相关资源
    最近更新 更多