我正在使用JFreeChart API在我的Java应用程序中生成一些图表.在我的一个图表中,我尝试使用LogAxis对象通过以下代码使我的y轴成为对数刻度轴(图中的A):
LogAxis logAxis = new LogAxis("Price($)");
logAxis.setMinorTickMarksVisible(true);
logAxis.setAutoRange(true);
xyplot.setRangeAxis(logAxis);
然后我得到一个对数刻度的y轴,刻度为10 ^ n(如图A).我想让它像B一样,对用户来说更直观,并且每个间隔代表不同的值,如图所示,2-> 4,4-> 8,8-> 16,间隔增长为2 ^ n.不足之处在于,即使它们代表不同的值,间隔也会显示相同的宽度.但是,当O尝试通过以下代码实现此目的时:
LogAxis logAxis = new LogAxis("Price($)");
logAxis.setBase(2);
logAxis.setTickUnit(new NumberTickUnit(2));
logAxis.setMinorTickMarksVisible(true);
logAxis.setAutoRange(true);
xyplot.setRangeAxis(logAxis);
我得到的是图C.
我怎样才能达到图B?
最佳答案
即使您使用的是LogAxis,也可以指定整数刻度单位,如下面@ amaidment示例的变体所示.
/** @see https://stackoverflow.com/a/10353270/230513 */
private static void createFrame() {