-2

我正在使用 aChartEngine 处理图表,面临的问题是虽然正在生成图表,但问题是图表没有按照视图内部的需要出现,如何解决?

从下拉菜单中选择 Bar 时 缩放前

缩小和平移后(通过与图形交互) 在此处输入图像描述

这是我的代码

private static XYMultipleSeriesDataset getBarDataset(int rightAnswers, int wrongAnswers) 
{
         String[] labels={"right","wrong"};
          List<Double> values = new ArrayList<Double>();
            values.add((double) rightAnswers);
            values.add((double) wrongAnswers);
            XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
            for (int i = 0; i < titles.length; i++) 
            {
                XYSeries series = new XYSeries(titles[i]);
                series.add(i,values.get(i));
                dataset.addSeries(i,series);
            }
            return dataset;
}

2)渲染器

protected static XYMultipleSeriesRenderer buildBarRenderer(int[] colors) {
        XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
        renderer.addXTextLabel(0, "right");
        renderer.addXTextLabel(1, "wrong");
        renderer.setChartTitle("Results");

        int length = colors.length;
          SimpleSeriesRenderer r = new SimpleSeriesRenderer();
          r.setColor(colors[0]);
          renderer.addSeriesRenderer(r);
          r = new SimpleSeriesRenderer();
          r.setColor(colors[1]);
          renderer.addSeriesRenderer(r);
          renderer.setScale(10);
          renderer.setXLabels(0);
          renderer.setApplyBackgroundColor(true);
          renderer.setBackgroundColor(Color.WHITE);
          renderer.setAxesColor(Color.CYAN);
        renderer.setBarWidth(30);
        return renderer;
      }

3) 视图

ChartFactory.getBarChartView(context, getBarDataset(rightAnswers, wrongAnswers), buildBarRenderer(new int[]{Color.GREEN,Color.RED}), Type.DEFAULT);

询问

1)如何固定位置和精确的平移图

2)我们可以在条上产生 3d 效果吗?如何?

3)与aChartEngine相比,还有其他更简单的库吗?

4

1 回答 1

1

为了解决图表中有条形的问题,我们需要根据您的最小值和最大值指定 X 轴和 Y 轴的最小值和最大值,例如;对于渲染器,您需要

renderer.setXAxisMin(-1);
renderer.setXAxisMax(wrongAnswers);
renderer.setYAxisMax(10);
renderer.setYAxisMin(0);

所以最终的结果是

最后结果

于 2013-07-13T06:00:10.260 回答