如何在JFreeChart TimeSeries

时间:2017-09-15 00:57:34

标签: java time-series jfreechart simpledateformat timeserieschart

我创建了一个类似的图表:

enter image description here

用于添加和/或更新信息的主要代码:

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd H:mm:ss");
Date date = simpleDateFormat.parse(dateAsStringToParse);
Second second = new Second(date);
myInfo.getSeries().addOrUpdate(second, maxValue); // maxValue is an Integer

创建实际图表:

final XYDataset dataset = new TimeSeriesCollection(myInfo.getSeries());
JFreeChart timechart = ChartFactory.createTimeSeriesChart(myInfo.getName()
    + " HPS", "", "HPS", dataset, false, false, false);

我想简单地将一条水平线(平行于X(时间)轴)添加到一个恒定值,让我们说10,000。所以图表看起来像这样:

enter image description here

使用我的代码实现这一目标的最简单(最正确)方法是什么?

1 个答案:

答案 0 :(得分:3)

看起来你想要一个XYLineAnnotation,但TimeSeries的坐标可能很麻烦。从TimeSeriesChartDemo1开始,我进行了以下更改以显示图表。

  1. 首先,我们需要x中第一个和最后一个RegularTimePeriod的{​​{1}}值。

    TimeSeries
  2. 然后,常量long x1, x2; … x1 = s1.getTimePeriod(0).getFirstMillisecond(); x2 = s1.getNextTimePeriod().getLastMillisecond(); 值很容易;我选择了140。

    y

    或者,您可以从double y = 140; 中获取值,例如。

    TimeSeries
  3. 最后,我们构建注释并将其添加到图中。

    double y = s1.getMinY() + ((s1.getMaxY() - s1.getMinY()) / 2);
    
  4. image