Android AchartEngine条形图绘图问题

时间:2015-04-24 06:05:29

标签: android graph achartengine

我制作动态条形图演示,我每次点击都会重新绘制下一个栏。 但问题在于

  • Bar正在从右边添加。
  • 酒吧大小继续收缩新酒吧。

我必须制作一个从左边添加固定条宽度的条形图。

以下是屏幕截图的内容 On every click bar size changes and adding from right

代码:

dataset = new XYMultipleSeriesDataset();

    series = new XYSeries("data");

    dataset.addSeries(series);

    /*
     * for (int i = 0; i < 20; i++) { series.add(0, 0); }
     */

    // Now we create the renderer
    renderer = new XYSeriesRenderer();
    renderer.setLineWidth(1);
    renderer.setColor(Color.RED);
    renderer.setChartValuesSpacing(1);
    // Include low and max value
    // we add point markers
    renderer.setPointStyle(PointStyle.CIRCLE);
    renderer.setPointStrokeWidth(.1f);
    renderer.setShowLegendItem(false);

    mRenderer = new XYMultipleSeriesRenderer();
    mRenderer.addSeriesRenderer(renderer);
    mRenderer.setBackgroundColor(Color.argb(0x00, 0xff, 0xff, 0xff));

    // We want to avoid black border
    mRenderer.setMarginsColor(Color.argb(0x00, 0xff, 0x00, 0x00)); // transparent
    mRenderer.setAxesColor(Color.argb(0x00, 0xff, 0x00, 0x00));
    mRenderer.setGridColor(Color.argb(0x00, 0xff, 0x00, 0x00)); // margins

    // margins
    // Disable Pan on two axis
    mRenderer.setPanEnabled(false, false);
    mRenderer.setYAxisMax(20);
    mRenderer.setYAxisMin(0);

    mRenderer.setShowGrid(false); // we show the grid
    mRenderer.clearYTextLabels();
    mRenderer.setShowGridY(false);
    mRenderer.setApplyBackgroundColor(true);
    mRenderer.setBackgroundColor(Color.argb(0x00, 0xff, 0xff, 0xff));
    mRenderer.setMarginsColor(Color.argb(0x00, 0xff, 0xff, 0xff));
    mRenderer.setPanEnabled(false, false);
    mRenderer.setZoomEnabled(false, false);
    mRenderer.setShowLabels(false);
    mRenderer.setXLabelsPadding(2);
    mRenderer.setPointSize(1);
    mRenderer.setBarSpacing(.2);

    mChartView = ChartFactory.getBarChartView(this, dataset, mRenderer,
            BarChart.Type.DEFAULT);

    graphLayout.addView(mChartView, 0);

    b = (Button) findViewById(R.id.button1);
    b.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            generate();

        }
    });

}

protected void generate() {
    int r = randInt(1, 20);
    // dataset.addSeries(series);

    series.add(0, r);

    mChartView.repaint();
}

1 个答案:

答案 0 :(得分:0)

设置multiRenderer.setXAxisMax(maxX);价值

maxX =到图表中的系列数。 。如果你想让它不收缩,试着设置maxX值,只允许图表在下面的示例代码中显示图表中所有系列的25%:

multiRenderer.setXAxisMax(maxX * .25);