【问题标题】:Scale date axis of XYPlot to a fixed interval将 XYPlot 的日期轴缩放到固定间隔
【发布时间】:2017-02-24 15:39:17
【问题描述】:

在Java项目中,我使用JFreeChart 1.0.19版本和XYPlot在plot上画线。

我希望将 xAxis(日期轴)缩放为示例中的日期 - 10:00:05、10:00:05、10:00:10、10:00:15……——每 5 秒缩放一次。

但是现在当用户从 10:00:03 开始​​时,它看起来是 10:00:03、10:00:08、10:00:13、10:00:18……

我希望始终将 5 秒缩放为 10:00:05、10:00:05、10:00:10、10:00:15 并且独立于开始时间,如何设置?

我将域轴(时间轴)配置如下:

domainAxis.setAutoRange(true);
domainAxis.setAutoTickUnitSelection(true);
domainAxis.setLowerMargin(0.001);
domainAxis.setUpperMargin(0.001);

domainAxisValueAxis 的对象

我的情节看起来像 如您所见,时间值为 11:21:57、11:22:07、11:22:17 等。我希望始终应为 11:21:55、11:22:05、11:22:15 等.

【问题讨论】:

  • 您没有提供任何代码,但在进行任何录制之前,您似乎只需使用 seconds % 5 检查时钟秒数。
  • 但是前四秒呢?不会有日期,现在是自动缩放
  • 也许有什么建议如何设置情节?
  • 我不知道 JFreeChart,否则我会发布答案。不过,我想说你有几个选择。如果可能,在秒数以 5 结束之前不要开始。您也可以将比例设置为 (5 - (n%5)),其中 n 是当前秒数,然后在 5-(n%5) 秒后将其设置为 5。第三,你可以决定这没什么大不了的,然后就去吧:-)
  • 我已经在下面详细说明了。如需更具体的指导,请编辑您的问题以包含 minimal reproducible example,以显示您修改后的方法。

标签: java plot scale jfreechart


【解决方案1】:

因为domainAxisDateAxis 的一个实例,所以您可以使用setTickUnit() 指定具有所需unitTypemultipleDateTickUnit。在这个片段中,间隔是五秒,格式包括秒:

domainAxis.setTickUnit(new DateTickUnit(DateTickUnitType.SECOND, 5));
domainAxis.setDateFormatOverride(new SimpleDateFormat("HH:mm:ss"));

【讨论】:

  • ValueAxis 不包含方法setTickUnit()
  • 一个DateAxis 是一个抽象类ValueAxis的具体子类;你的问题提到了两者,所以你可能想检查一下。如需更具体的指导,请编辑您的问题以包含 minimal reproducible example,以显示您修改后的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-23
  • 2018-01-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多