Я использую TimeSeries jfreechart для отображения производительности сети. Я хочу показать общее время, прошедшее в секундах, но он показывает только секунды от 0 до 59, а затем снова сбрасывает секунды на 0. Мне нужно показать данные за последние 120 секунд.
Вот код: Эта функция используется для создания диаграммы:
private JFreeChart createChart(XYDataset xydataset) {
result = ChartFactory.createTimeSeriesChart("admin0", "", "MBytes/S", xydataset, true, true, true);
TextTitle objTitle = new TextTitle("admin0", new Font("Verdana", Font.BOLD, 12));
result.setTitle(objTitle);
final XYPlot plot = result.getXYPlot();
plot.setDomainGridlinesVisible(true);
plot.setRangeGridlinesVisible(true);
plot.setBackgroundPaint(Color.WHITE);
plot.setRangeGridlinePaint(Color.GRAY);
plot.setDomainGridlinePaint(Color.GRAY);
DateAxis xaxis = (DateAxis)plot.getDomainAxis();
xaxis.setAutoRange(true); ////set true to move graph with time.
xaxis.setFixedAutoRange(120000.0);
xaxis.setTickUnit(new DateTickUnit(DateTickUnit.SECOND, 15, new SimpleDateFormat("ss")));
NumberAxis range = (NumberAxis) plot.getRangeAxis();///y-Axis
range.setRange(0.0, 1.0);
range.setTickUnit(new NumberTickUnit(0.2));
XYItemRenderer renderer = plot.getRenderer();
renderer.setSeriesPaint(0, Color.RED);
renderer.setSeriesPaint(1, Color.GREEN);
return result;
}
А вот код для создания набора данных:
private XYDataset createAdmin0DatasetTest() {
TimeSeriesCollection dataset = new TimeSeriesCollection();
try
{
if(performanceData != null)
{
long speed = 0;
double recieveRate = 0;
double sendRate = 0;
long timeinMilli = 0;
long devider = 4294967296l;
long snapTime = 0;
Vector admin0Vec = (Vector)this.performanceData.get("admin0");
if(admin0Vec != null && admin0Vec.size() > 0)
{
Vector innerVec = (Vector)admin0Vec.get(0);
recieveRate = Long.parseLong(innerVec.get(2).toString());
sendRate = Long.parseLong(innerVec.get(1).toString());
timeinMilli = Long.parseLong(innerVec.get(0).toString());
}catch(Exception ex)
{
System.out.println("Exception in adding same values");
}
for(int i = 1 ; i < admin0Vec.size() ; i++)
{
innerVec = (Vector)admin0Vec.get(i);
recieveRate = Long.parseLong(innerVec.get(2).toString());
sendRate = Long.parseLong(innerVec.get(1).toString());
timeinMilli = Long.parseLong(innerVec.get(0).toString());
try
{
this.adminRecieve.addOrUpdate(new Second(new Date(timeinMilli)), recieveRate);
this.adminSend.addOrUpdate(new Second(new Date(timeinMilli)), sendRate);
}catch(Exception ex)
{
System.out.println("Exception in adding same values");
//ex.printStackTrace();
}
}
dataset = new TimeSeriesCollection(this.adminRecieve);
dataset.addSeries(adminSend);
}
}
}catch(Exception ex)
{
ex.printStackTrace();
}
return dataset;
}
Пожалуйста, помогите мне