我是JFreeChart的新手。
我想更改the code of Trashgod以监控Java中的内容。所以我需要:
1 - 显示所有数据。他的代码只保留了最后10个样本。
2 - 在X轴上具有可变比例:
有一个int输入howManyDays(或类似int输入的东西,有点聪明的东西会很棒;-)):int howManyDays = 7; //在这种情况下:1周的数据
在X轴上具有可变比例有点复杂:例如,在执行的第一秒内,它具有1分钟的比例。然后10分钟...当午夜过去时,它应该打印当天。
我知道这条指令
Timer timer = new Timer(100, new ActionListener()
表示每100毫秒添加一个新数据,然后更新图表。我将其更改为10 000 - > 10秒我的测试JFreeChart的计时器:
Timer timer = new Timer(10000, new ActionListener() {
private int i,data;
@Override
public void actionPerformed(ActionEvent e) {
if ((i%10)==0) {
this.data += (int) Math.ceil(2*Math.random());
}
this.i++;
chart.update(this.data);
}
});
当然,我不需要解决方案。
我真正需要什么:
祝你有个美好的一天!
答案 0 :(得分:1)
虽然你的问题有点宽泛,但这里有一些关于接近这个任务的指示。
DynamicTimeSeriesCollection
旨在仅保留最近的数据,而不是全部;请注意here如何填充时段。
要保留所有数据,请按建议使用TimeSeries
here;只有在您调用setMaximumItemAge()
时才会删除旧项目。
要格式化时间轴,请按建议使用setDateFormatOverride()
here;当数据累积时,滴答单位会自动调整;除非你有某些特定的理由这样做,否则不要改变它们。
要在后台收集数据,请使用SwingWorker
,如图所示here。