缩放时使用 TimeSeriesCollection 在图表中显示最新插入的值
Show newest inserted values in chart with TimeSeriesCollection when zoomed
我有一个用 JFreeChart 实现的实时图表。 x 轴显示时间,图表中有多个 TimeSeriesCollections。如果将值添加到 TimeSeries,则图表会更新并仅在未缩放时显示该值。是否有可能在缩放模式下自动显示新值(意味着保持缩放范围并向右跳转)。
谢谢
奥利
我找到了一个可能的解决方案:
this.chart.addChangeListener((ChartChangeEvent cce) -> {
if (scrollToNewest) {
Number max = DatasetUtilities.findMaximumDomainValue(this.plot.getDataset(0));
ValueAxis va = this.plot.getDomainAxis();
Range r = va.getRange();
double curUpperBound = r.getUpperBound();
double diff = max.doubleValue() - curUpperBound;
Range newR = new Range(r.getLowerBound() + diff, r.getUpperBound() + diff);
va.setRange(newR);
}
});
我有一个用 JFreeChart 实现的实时图表。 x 轴显示时间,图表中有多个 TimeSeriesCollections。如果将值添加到 TimeSeries,则图表会更新并仅在未缩放时显示该值。是否有可能在缩放模式下自动显示新值(意味着保持缩放范围并向右跳转)。
谢谢 奥利
我找到了一个可能的解决方案:
this.chart.addChangeListener((ChartChangeEvent cce) -> {
if (scrollToNewest) {
Number max = DatasetUtilities.findMaximumDomainValue(this.plot.getDataset(0));
ValueAxis va = this.plot.getDomainAxis();
Range r = va.getRange();
double curUpperBound = r.getUpperBound();
double diff = max.doubleValue() - curUpperBound;
Range newR = new Range(r.getLowerBound() + diff, r.getUpperBound() + diff);
va.setRange(newR);
}
});