2

我正在使用来自 achartengine 优秀库的 ChartFactory.getTimeChartView 方法。renderer.setXAxisMin(OneWeekBefore);我只显示最后一周的记录,允许用户使用属性向左平移以查看以前的记录。

我有 2 个问题:

a) 如何在 TimeChart 中允许 X 轴缩放?
尽管在 X 轴和 Y 轴上都启用了缩放,但我无法在 X 轴上进行缩放。我可能会以不适当的方式使用缩放和平移限制,但找不到什么/为什么。

b)如何改变缩放按钮的行为?
我想以 1:1 的比例更改缩放按钮的行为。按下此按钮,将显示整个图表,而不是仅显示上周。

这是缩放属性设置的一段代码:

    // ZOOM
    double[] panlimits = new double[] { XfirstRecord , maxdate, 0.0, Ymax * 1.2 };
    renderer.setZoomEnabled(enabledXzoom, YenabledYzoom);
    renderer.setZoomButtonsVisible(showZoomButtons);
    renderer.setZoomRate(ZoomRate);
    renderer.setPanLimits(panlimits);
    renderer.setZoomLimits(panlimits);

    renderer.setXAxisMin(OneWeekBefore);

检查丹的答案后的工作更新如下,它适用于我:

        // ZOOM
        double[] panlimits = new double[] { XfirstRecord, now, 0.0, Ymax * 1.2 };
        renderer.setZoomEnabled(XenabledZoom, YenabledZoom);
        renderer.setZoomButtonsVisible(showZoomButtons);
        renderer.setZoomRate(ZoomRate);
        renderer.setPanLimits(panlimits);
        renderer.setZoomLimits(panlimits);

        // SHOW ONLY last WEEK even after Zoom reset
        renderer.setXAxisMin(OneWeekBefore);
        renderer.setInitialRange(new double[] {OneWeekBefore, now, 0.0, Ymax * 1.2});
4

1 回答 1

1

对于第一个问题,平移和缩放限制应该类似于:

// please note that I am using the Java naming of variables
new double[] { oneWeekBefore, today, 0, yMax * 1.2 };

捏缩放有效吗?

对于第二个问题,使用:

renderer.setInitialRange(new double[] {oneWeekBefore, today, 0, yMax * 1.2});
于 2012-10-29T07:27:46.610 回答