我是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());
}
手动触摸和移动视图后,如何重新启用自动跟踪功能?
截图:
答案 0 :(得分: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);
答案 1 :(得分:0)
至于我对你的问题的理解,你应该给出限制
mRenderer.setMargins(new int[] { 60, 120, 60, 60 });