2016-05-29 5 views
1

В настоящее время я использую JFreeChart для создания линейной диаграммы. Эта линейная диаграмма обновляется каждую секунду с новым значением (в настоящее время это случайное значение). Таким образом, вы можете увидеть, как ваши данные изменились за определенный период времени. Однако после того, как я добавил более десяти значений, они больше не помещаются на линии, превращаясь в точки. Я хотел бы иметь только 5 значений, показанных за раз, которые распространяются по всем таймингам. Вот как это выглядит сейчас: enter image description hereJFreeChart скрывает (некоторые) значения оси x

Обратите внимание на точки в нижней части диаграммы. Я бы хотел, чтобы это было изменено на следующее: enter image description here Обратите внимание, что я хочу сохранить все точки, созданные между этими точками во времени. Поэтому данные от 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()); 

ответ

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); 
Смежные вопросы