我正在使用 JFreeChart 在我的应用程序中创建时间序列图表。
我使用手动设置它的域轴范围:
...
plot.getDomainAxis().setAutoRange(false);
Calendar c1=Calendar.getInstance();
c1.set(Calendar.HOUR_OF_DAY, 10);
c1.set(Calendar.MINUTE, 0);
Calendar c2=Calendar.getInstance();
c2.set(Calendar.HOUR_OF_DAY, 18);
c2.set(Calendar.MINUTE, 0);
plot.getDomainAxis().setRange(c1.getTimeInMillis(),c2.getTimeInMillis());
...
放大图表然后缩小(在图表本身上使用鼠标)会触发两个轴上的AutoRange
,这使得域轴范围更改为系列边界,而不是我自己的手动范围。
示例(查看域轴的范围):
放大之前(正确):
放大缩小后(不正确 - 是自动调整范围):
如何让它缩小到我手动设置的范围?
谢谢
最佳答案
您可以尝试restoreAutoBounds()
,如图 here ,然后是您的自定义域设置。
附录:您看到的行为是在 ChartPanel
的鼠标监听器实现中定义的。您可以重写 chartProgress()
并在图表完成绘制且未缩放时恢复域轴。
关于java - 在 jfreechart 中缩小后恢复手动域轴范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8551604/