我认为我的问题与上一篇文章非常相似。在 JFreeChart 中,我使用 DateAxis 的 setRange 方法在时间序列图中设置轴的边界。
DateAxis dateAxis = (DateAxis)plot.getDomainAxis();
plot.setDomainAxis(dateAxis);
dateAxis.setRange(firstDate, lastDate);
但是,当我使用它并尝试减少显示的即时报价单位数量时
DateFormat dateFormat = new SimpleDateFormat("MMM-yyyy");
TickUnits tickUnits = new TickUnits();
tickUnits.add(new DateTickUnit(DateTickUnitType.YEAR, 1, dateFormat));
dateAxis.setStandardTickUnits(tickUnits);
显示的第一个即时报价单位是第一个日期的下一个 1 月 1 日。我见过像dateAxis.setTickMarkPosition(DateTickMarkPosition.START);
这样的方法,但它们没有达到我的愿望。我希望第一个即时报价单位是我指定的第一个日期。
为了更清楚起见,我的问题与另一个网站上的这篇文章是相同的问题,没有回复。
我做了一个小技巧来让事情正常进行。我没有使用firstDate
和lastDate
来设置我使用dateAxis
firstDate
减一天,lastDate
加一天。