簡體   English   中英

android - 如何使用Achartengine實現折線圖

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

我是Android中的Graph概念的新手。 在我的應用程序中,我想使用achartengine實現線圖。 我有achartengine的演示,它包含很多代碼。 我無法理解折線圖。 我想要使​​用achartengine的簡單線圖。 請任何人幫助我。

謝謝


以下方法將生成隨機點(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是一個常數,它表示您想要繪制多少個系列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM