简体   繁体   English

android - 如何使用Achartengine实现折线图

[英]android - How to implement the Line Graph using Achartengine

I am new to Graph concept in android. 我是Android中的Graph概念的新手。 In my app i want implement the line graph using achartengine. 在我的应用程序中,我想使用achartengine实现线图。 I have the demo of achartengine it consists a lot of code. 我有achartengine的演示,它包含很多代码。 I am not able to understand the line graph. 我无法理解折线图。 I want simple Line graph using achartengine. 我想要使​​用achartengine的简单线图。 Please can anybody help me. 请任何人帮助我。

thanks 谢谢


Following method will generate random points (x,y) and add it to XYSeries (it is series of points to be plotted on chart). 以下方法将生成随机点(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;
}

Following Method will return a multiple renderer which is used to draw line charts. 以下方法将返回一个多重渲染器,用于绘制折线图。

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;
}

Following method will set the settings for your chart. 以下方法将设置图表的设置。 You can look for more options in docs provided by AChartEngine. 您可以在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);
  }

You can now get the line chart in two ways: 您现在可以通过两种方式获取折线图:

  • Chart as a view which can be added to any layout: 图表作为可添加到任何布局的视图:

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

  • Chart as an Intent for a new activity alltogether 图表作为新活动的意图

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

PS: SERIES_NR is a constant which tells how many line series you want to draw. PS: SERIES_NR是一个常数,它表示您想要绘制多少个系列。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM