对于我的应用程序通过套接字连接不断接收的数据,我使用了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));

发布于 2014-10-07 21:06:14
我也有类似的要求。我通过将我的数据集限制为最大和最小值来解决它。当然,在我的例子中,它是有效的,因为我在将从服务器接收的数据放入我的数据集中之前对其进行了转换。
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);
}https://stackoverflow.com/questions/18610277
复制相似问题