我目前正在使用JFreeChart来创建折线图。此折线图每秒都会更新一个新值(当前为随机值)。通过这种方式,您可以了解数据在特定时间段内的变化情况。然而,在我添加了十多个值之后,它们就不再适合在线上了。我希望一次只显示5个值,这些值分布在整个时间范围内。这就是它现在的样子:
注意图表底部的点。我希望它改为: 请注意,我希望保留在这些点之间创建的所有点。因此,11:31:00,11:31:01,11:31:02等数据应该仍然存在。
这就是我目前所拥有的:
LocalDateTime date = LocalDateTime.now();
category = new DefaultCategoryDataset();
category.addValue(new Random().nextInt(10), "Data", date.getHour() + ":" + date.getMinute() + ":" + date.getSecond());
chart = ChartFactory.createLineChart("Values", "Time", "Data", category, PlotOrientation.VERTICAL, false, true, false);
((NumberAxis) ((CategoryPlot) chart.getPlot()).getRangeAxis()).setStandardTickUnits(NumberAxis.createIntegerTickUnits());
答案 0 :(得分:1)
我是通过使用TimeSeriesChart得到的。这就是我最终的结果:
TimeSeriesCollection collection = new TimeSeriesCollection();
TimeSeries serie = new TimeSeries("Data");
collection.addSeries(serie);
JFreeChart chart = ChartFactory.createTimeSeriesChart("Data", "Time", "Data", collection, false, true, false);