java - 如何使用 JFreeChart 固定自动范围避免负值

标签 java swing charts graph jfreechart

我有一个 JFreeChart 线图,它会在算法的每次迭代中使用一个数据点动态更新。因为数据点的数量很快就会变得非常大,所以我使用了 setFixedAutoRange(double)域轴上的方法。这将图表限制为显示最近的 n 个迭代(在我的例子中为 200)。

除了前 200 次迭代之外,这种方法效果很好。问题是,在进行 200 次迭代之前,轴包含负值(例如,在 50 次迭代之后,范围从 -150 到 50)。负迭代没有意义。我希望轴从零开始,而不是从负值开始。我怎样才能实现这个目标?

我不介意轴最初是从 0 到 200(图表的右侧部分留空,直到绘图填满它)还是从 0 开始到 1 并增长(以便绘图始终拉伸(stretch)到图表的整个宽度)。尽管我稍微偏爱前者,但两者都可以接受。

我尝试过的事情:

有什么想法吗?

最佳答案

我遇到了同样的问题,我解决了:

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/

相关文章:

java - 清除 Swing 组件值

javascript - 中心图例不是所有图表,而是仅按绘图区域

java - 带有 switch 语句的基本数组

java - 网格袋布局挣扎

Java Unicode 字符串排序

java - 如果用户单击已禁用的按钮,是否可以提示用户一条错误消息,JAVA

objective-c - 带核心图形的功能区图(图表)

SVG 与基于 HTML5 Canvas 的图表

java - 将子图像数据存储在数组中

java - SVN删除的文件,如何恢复?