Używam interfejsu API JFreeChart
do generowania wykresów w mojej aplikacji Java. W jednym z moich wykresów, staram się korzystać z obiektu LogAxis
aby moja oś y oś log skalę (A na rysunku) za pomocą następującego kodu:Logarytmiczna konfiguracja etykiet osi/kleszczy
LogAxis logAxis = new LogAxis("Price($)");
logAxis.setMinorTickMarksVisible(true);
logAxis.setAutoRange(true);
xyplot.setRangeAxis(logAxis);
Potem dostałem oś y w skali logarytmicznej z taktami jak 10^n (jak na rysunku A). Chcę zrobić to jak B, który jest bardziej intuicyjny dla użytkownika, a każdy interwał reprezentuje różne wartości, jak pokazano na rysunku, 2-> 4, 4-> 8, 8-> 16, interwał rośnie jako 2^n. Coś mniej znaczącego, interwały wyświetlają się równie szeroko, nawet jeśli reprezentują inną wartość. Jednak, gdy O próbują to osiągnąć za pomocą następującego kodu:
LogAxis logAxis = new LogAxis("Price($)");
logAxis.setBase(2);
logAxis.setTickUnit(new NumberTickUnit(2));
logAxis.setMinorTickMarksVisible(true);
logAxis.setAutoRange(true);
xyplot.setRangeAxis(logAxis);
Co mogę to coś jak na rysunku C
Jak mogę osiągnąć Rysunek B?
Podobnym przykładem jest pokazany [tutaj] (http://www.jfree.org/forum/viewtopic.php?f=3&t=119630 # p182652). – trashgod