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?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage