我从数据库中获取Timestamp
数据类型的值。我现在尝试在Jfreechart中绘制x轴上的时间戳值。目前我正在使用
final TimeSeries s1 = new TimeSeries("Series1", Millisecond.class);
我很困惑将时间戳值添加到时间序列中。时间戳值采用以下格式。
2013-07-22 17:10:49.219
任何人都可以帮助我吗?我推荐了很多网站。在某些网站中,他们建议提取要添加到系列中的日期,小时,分钟和毫秒。但是从时间戳开始我应该如何提取值?我是这个主题的新手,日期功能对我来说真的很混乱。
答案 0 :(得分:4)
Timestamp是java.util.Date类的子类,因此对于JFreeChart中的TimeSeries,您可以使用此构造函数直接创建Millisecond实例:
public Millisecond(Date time);
您的代码看起来像这样(假设s1是您的TimeSeries实例):
TimeStamp t = ... // read from somewhere
double value = ... // the data value associated with your timestamp
s1.add(new Millisecond(t), value);
...当然要循环处理所有数据项。
答案 1 :(得分:2)
感谢David Gilbert的回答。 我并没有完全成功,或者我只是误解了你,但毫秒需要一个日期作为参数。 无论如何:以下代码适合我。
public class MyFrame extends JFrame {
public MyFrame() {
XYDataset xyData = createDataset();
JFreeChart timeSeriesChart =
ChartFactory.createTimeSeriesChart("name of chart",
"X-axis-name", "y-axis-name", xyData);
ChartPanel panel = new ChartPanel(timeSeriesChart);
MainPane.add(panel);
this.pack();
}
private XYDataset createDataset() {
TimeSeries timeSeries = new TimeSeries("valueVsTime");
// loop start
long timeStamp = ...//read from somewhere, on x axis
double value = ...//read from somewhere, on y axis
timeSeries.add(new Millisecond(new Date(timeStamp), value));
// loop end
TimeSeriesCollection dataset = new TimeSeriesCollection();
dataset.addSeries(timeSeries);
return dataset;
}
}