1

我是 achartengine 的新手,我喜欢它。很好!

我正在使用带有动态添加点的折线图。如果我不碰它,自动缩放和跟随功能就可以正常工作。但是我想在 y 轴顶部有一些额外的空间(见截图)。我怎样才能做到这一点?我不希望这些点触及图表的上边缘。

这是我的代码:

public Linegraph() {
        mDataset.addSeries(dataset);

        renderer.setColor(Color.BLUE);
        renderer.setPointStyle(PointStyle.TRIANGLE);
        renderer.setFillPoints(true);

        // enable zoom
        mRenderer.setZoomButtonsVisible(true);
        mRenderer.setXTitle("Value #");
        mRenderer.setYTitle("Value");
        mRenderer.setLabelsTextSize(25);
        mRenderer.setLegendTextSize(25);
        mRenderer.setChartTitleTextSize(25);
        mRenderer.setAxisTitleTextSize(25);
        mRenderer.setYLabelsAlign(Align.LEFT);
        mRenderer.setXLabelsColor(Color.RED);
        mRenderer.setYLabelsColor(0, Color.RED);
        mRenderer.addSeriesRenderer(renderer);
        mRenderer.setYAxisMin(-1);
        mRenderer.setXAxisMin(-1);

    }

    public GraphicalView getView(Context context) {
        return ChartFactory.getLineChartView(context, mDataset, mRenderer);
    }

    public void addNewPoint(Point p) {
        dataset.add(p.getX(), p.getY());
    }

手动触摸和移动视图后,如何重新启用自动跟随功能?

截屏:

在此处输入图像描述

4

2 回答 2

1

一个选项是始终知道数据范围并将可见区域设置为包含范围并添加一些小空间的内容。例如,如果 X 轴上的数据范围在 0 到 100 之间,Y 轴上的数据范围在 5 到 10 之间,那么这样的事情会很好:

renderer.setXAxisMin(-0.5);
renderer.setXAxisMax(100.5);
renderer.setXAxisMin(4.75);
renderer.setXAxisMax(10.25);

对于第二个问题:

renderer.initAxisRange(1);
于 2013-01-16T18:43:36.707 回答
0

至于我对你的问题的理解,你应该给出泛限制

mRenderer.setMargins(new int[] { 60, 120, 60, 60 });

于 2014-01-18T10:33:58.017 回答