首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JFreeChart -如何在TimeSeries图的X轴上实时显示并保存数据

JFreeChart -如何在TimeSeries图的X轴上实时显示并保存数据
EN

Stack Overflow用户
提问于 2016-02-28 20:23:29
回答 1查看 380关注 0票数 1

我是JFreeChart的新手。

我想更改the code of Trashgod以监视Java中的某些内容。所以我需要:

保存显示的所有数据。他的代码只保存了最后10个样本。

2-在X轴上有可变标度:

  • 有一个int输入howManyDays (或者类似于int输入,一些聪明的东西就很好;-):int howManyDays =7;//在本例中是:1周的数据
  • 在X轴上有一个可变的标度,有点复杂:例如,在执行的第一秒钟中,它有1分钟的比例。然后10分钟..。当午夜已经过去,它应该打印当前的一天。

我知道这条指令

代码语言:javascript
运行
复制
      Timer timer = new Timer(100, new ActionListener()

这意味着每100毫秒就会添加一个新的数据,然后更新图表。我会把它改为10000 -> 10秒。测试JFreeChart的计时器:

代码语言:javascript
运行
复制
            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);
                }
            });

我当然不需要解决办法。

我真正需要的是:

  • 如果有人能对垃圾神的代码加评论的话?
  • 或者有人能给我一些技巧来做这样的代码?
  • 或者有人已经做过这样的事了?

祝你今天愉快!

EN

回答 1

Stack Overflow用户

发布于 2016-02-29 11:46:40

虽然你的问题有点宽泛,但这里有一些关于如何处理这样一项任务的建议。

  • DynamicTimeSeriesCollection被设计为只保留最近的数据,而不是全部;请注意here是如何填充时隙的。
  • 要保存所有数据,请按照建议的TimeSeries使用here;只有在调用setMaximumItemAge()时才会删除旧的项。
  • 要格式化时间轴,请使用setDateFormatOverride()作为建议的here;滴答单元将在数据积累时自动调整;除非有特定的原因,否则不要更改它们。
  • 若要在后台收集数据,请使用SwingWorker,如here所示。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35687809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档