2016-09-15 4 views
0

Ich zeichne ein zweidimensionales Diagramm, in dem ich Bereiche für beide Achsen um bestimmte Werte einstelle. Aber wenn ich das Diagramm-Menü 'Auto-Bereich> beide Achsen' wähle, bekomme ich andere Bereiche (vielleicht offensichtlich).Wie setze ich jfreechart auto range auf die gewählten Werte?

Ich möchte Auto-Bereich in meinen definierten Bereich mit meinen Werten festlegen. Wie kann ich das machen?

XYPlot xyPlot = chart.getXYPlot(); 
NumberAxis domainAxis = (NumberAxis) xyPlot.getDomainAxis(); 

domainAxis.setRange(minXChart, maxXChart); 
domainAxis.setTickUnit(new NumberTickUnit(xTickInterval)); 

rangeAxis.setRange(minYChart, maxYChart); 
rangeAxis.setTickUnit(new NumberTickUnit(yTickInterval)); 
  1. graph with defined range (ich will genau das gleiche, aber mit Auto-Range)

  2. graph with auto range (schlecht aussehende)

Antwort

1

Einige mögliche Ansätze:

  • Überschreiben Sie die Methode restoreAutoBounds(), wie in here gezeigt, um Ihre bevorzugten Grenzen festzulegen.

  • die Funktion aus dem Kontextmenü entfernen zoom Parameter eines geeigneten ChartPanel Konstruktor und die Aktion mit Ihrer eigenen Kontrolle behandeln, als here für Auto Zoom gezeigt.

+0

Ich habe nur gefunden Lösung Teil meiner Frage mit falschem Auto-Bereich verbunden: ‚// Befestigungs x-Achse NumberAxis domainAxis = (NumberAxis) xyPlot.getDomainAxis(); domainAxis.setLowerMargin (0); domainAxis.setUpperMargin (0); // Fixieren der y-Achse NumberAxis rangeAxis = (NumberAxis) xyPlot.getRangeAxis(); rangeAxis.setAutoRangeIncludesZero (false); ' Problem mit der unteren Grenze Y-Achse war, dass alle meine Datenpunkte positive Werte sind. Aber ich weiß immer noch nicht, wie man AutoRange auf die gewählten Werte einstellen. –

+0

Code in Kommentaren ist unvollständig und schwer zu lesen; Bitte bearbeiten Sie Ihre Frage, um eine [mcve] einzubeziehen, die Ihren überarbeiteten Ansatz zeigt. – trashgod

Verwandte Themen