Ich verwende die Methode ChartFactory.getTimeChartView aus der ausgezeichneten Bibliothek achartengine. Ich zeige nur die letzte Woche der Datensätze, so dass der Benutzer nach links schwenken, um frühere Datensätze zu sehen, mit renderer.setXAxisMin(OneWeekBefore);
Eigentum.
Ich habe 2 Fragen:
a) Wie kann man den Zoom der X-Achse in TimeChart ermöglichen?
Ich kann auf der X-Achse nicht zoomen, obwohl der Zoom sowohl auf der X- als auch auf der Y-Achse aktiviert ist. Möglicherweise verwende ich die Zoom- und Schwenkbegrenzungen auf unangemessene Weise, kann aber nicht herausfinden, was/warum.
b) Wie kann man das Verhalten der Zoomtaste ändern?
Ich würde gerne das Verhalten der Zoomtaste 1:1 ändern. Wenn ich diese Taste drücke, wird das gesamte Diagramm angezeigt und nicht nur die letzte Woche.
Hier ist der Code für die Einstellung der Zoom-Eigenschaften:
// 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);
Arbeits-Update nach der Überprüfung Dan's Antwort ist wie unten, es funktioniert für mich:
// 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});