Logarithmische Achsenbeschriftung / Tick-Anpassung
Ich benutze dieJFreeChart
API zum Generieren eines Diagramms in meiner Java-Anwendung. In einem meiner Diagramme versuche ich, das zu verwendenLogAxis
Objekt, um meine y-Achse durch den folgenden Code zu einer logarithmischen Achse (A in der Abbildung) zu machen:
<code>LogAxis logAxis = new LogAxis("Price($)"); logAxis.setMinorTickMarksVisible(true); logAxis.setAutoRange(true); xyplot.setRangeAxis(logAxis); </code>
Dann habe ich eine y-Achse in log-Skala mit Ticks wie 10 ^ n (wie Abbildung A). Ich möchte es wie B machen, was für den Benutzer intuitiver ist, und jedes Intervall stellt andere Werte dar, wie in der Abbildung 2-> 4, 4-> 8, 8-> 16 gezeigt, das Intervall wächst als 2 ^ n Kleinigkeiten sind, dass die Intervalle gleich breit angezeigt werden, auch wenn sie unterschiedliche Werte darstellen. Wenn Sie jedoch versuchen, dies mit dem folgenden Code zu erreichen:
<code>LogAxis logAxis = new LogAxis("Price($)"); logAxis.setBase(2); logAxis.setTickUnit(new NumberTickUnit(2)); logAxis.setMinorTickMarksVisible(true); logAxis.setAutoRange(true); xyplot.setRangeAxis(logAxis); </code>
Was ich bekomme, ist so etwas wie Figur C.
Wie kann ich Figur B erreichen?