我有一个 JFreeChart 线图,它会在算法的每次迭代中使用一个数据点动态更新。因为数据点的数量很快就会变得非常大,所以我使用了 setFixedAutoRange(double)域轴上的方法。这将图表限制为显示最近的 n 个迭代(在我的例子中为 200)。
除了前 200 次迭代之外,这种方法效果很好。问题是,在进行 200 次迭代之前,轴包含负值(例如,在 50 次迭代之后,范围从 -150 到 50)。负迭代没有意义。我希望轴从零开始,而不是从负值开始。我怎样才能实现这个目标?
我不介意轴最初是从 0 到 200(图表的右侧部分留空,直到绘图填满它)还是从 0 开始到 1 并增长(以便绘图始终拉伸(stretch)到图表的整个宽度)。尽管我稍微偏爱前者,但两者都可以接受。
我尝试过的事情:
- 调用 setLowerBound与 setFixedAutoRange 配合不佳。
- 调用 setRangeType(RangeType.POSITIVE)似乎没有什么区别。
有什么想法吗?
最佳答案
我遇到了同样的问题,我解决了:
axis.setAutoRangeMinimumSize(100); // Ensures graph always shows at least 0-100.
axis.setRangeType(RangeType.POSITIVE);
我正在使用 JFreeChart v1.0.14。也许自问题最初发布以来他们已经修复了 setAutoRangeType
的错误?
这种方法的一个缺点是零值不可见。
关于java - 如何使用 JFreeChart 固定自动范围避免负值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/492457/