图形在X和Y轴外可见

时间:2013-09-04 09:35:28

标签: android graph achartengine

我正在使用achartengine来获取我的应用程序通过套接字连接不断接收的数据。该点是针对时间绘制的,该时间是我的x轴。一旦图形到位,用户就可以平移和缩放图形。一切都是黄油般的。唯一的问题是当用户缩放图形时,图形的某些部分在x和y轴的另一侧也是可见的。

如何限制图形在X轴和Y轴外可见?

这是我代码的一部分。

XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();

renderer.setChartTitleTextSize(12);
renderer.setLabelsTextSize(15);
renderer.setMarginsColor(Color.argb(0x00, 0x01, 0x01, 0x01));
renderer.setApplyBackgroundColor(true);
renderer.setBackgroundColor(Color.TRANSPARENT);
renderer.setZoomEnabled(true, true);
    renderer.setPointSize(5f);
renderer.setShowGrid(true);
renderer.setXTitle(xTitle);
renderer.setYTitle(yTitle);
renderer.setLabelsColor(getResources().getColor(R.color.black));
renderer.setXLabelsColor(getResources().getColor(R.color.black));
renderer.setYLabelsColor(0, getResources().getColor(R.color.black));
renderer.setDisplayValues(true);
renderer.setSelectableBuffer(20);
renderer.setShowLegend(false);

    renderer.setRange(new double[] { timeSeriesChart.getMinX(),
            timeSeriesChart.getMaxX(), 0/* minY */, maxY });

    renderer.setPanLimits(getChartLimit(
     isTimeChart, timeSeriesChart.getMinX(), timeSeriesChart.getMaxX(),
     (maxY*-1)+timeSeriesChart.getMinY(),
     maxY));

enter image description here

1 个答案:

答案 0 :(得分:0)

我有类似的要求。我通过将我的数据集夹到最大值和最小值来解决它。当然,在我的情况下,它是有效的,因为我在将数据放入我的数据集之前,正在转换从服务器收到的数据。

TimeSeries mTimeSeries;

...
...

private void addValue(Date time, double val){
    if(val >= MAX_VALUE){
        val = MAX_VALUE;
    }
    if(val <= MIN_VALUE){
        val = MIN_VALUE;
    }

    mTimeSeries.add(time, val);
}