Ich verwende die JFreeChart
API, um einige Diagramme in meiner Java-Anwendung zu generieren. In einem meiner Charts, ich versuche, das LogAxis
Objekt zu verwenden, um meine y-Achse eine Log-Skala Achse (A in der Figur) durch den folgenden Code ein:Logarithmische Achse Etiketten/Ticks Anpassung
LogAxis logAxis = new LogAxis("Price($)");
logAxis.setMinorTickMarksVisible(true);
logAxis.setAutoRange(true);
xyplot.setRangeAxis(logAxis);
Dann bekam ich eine y-Achse im Log-Maßstab mit Zecken wie 10^n (wie Abbildung A). Ich möchte es wie B machen, das für den Benutzer intuitiver ist, und jedes Intervall stellt unterschiedliche Werte dar, wie in der Abbildung 2-> 4, 4-> 8, 8-> 16 gezeigt, das Intervall wächst als 2^n. Etwas Minderwertiges ist, dass die Intervalle gleich weit erscheinen, auch wenn sie unterschiedliche Werte repräsentieren. Wenn jedoch O versuchen, dies durch den folgenden Code zu erreichen:
LogAxis logAxis = new LogAxis("Price($)");
logAxis.setBase(2);
logAxis.setTickUnit(new NumberTickUnit(2));
logAxis.setMinorTickMarksVisible(true);
logAxis.setAutoRange(true);
xyplot.setRangeAxis(logAxis);
Was ich bekommen, ist so etwas wie Abbildung C.
Wie kann ich Figur B erreichen?
Ein verwandtes Beispiel gezeigt wird [hier] (http://www.jfree.org/forum/viewtopic.php?f=3&t=119630 # p182652). – trashgod