Как масштабировать график для конкретных времен в jfreechart?
Прямо сейчас я создаю график для всех случаев времени в базах данных, используя jfreechart. Есть ли способ генерировать график для указанных "fromtime" и "totime" вместо выборки для всех экземпляров времени? И есть ли способ масштабирования графика? Например, этот график генерируется каждые три минуты, как в базе данных. Но мне нужны показания только за каждые 10 минут. Буду очень признателен за вашу помощь. Спасибо.
Вот значения базы данных
Здесь значения отображаются каждые три минуты, но мне нужно каждые 10 минут.
private CategoryDataset createDataset() {
List <Double> loadavg1min = new ArrayList<Double>();
List <Double> loadavg5min = new ArrayList<Double>();
List <Double> loadavg15min = new ArrayList<Double>();
List <String> time = new ArrayList<String>();
int i = 1;
try
{
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
DateFormat dateFormat = new SimpleDateFormat("hh:mm:ss");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/Chithragupth?autoReconnect=true&useSSL=false","root","Hamburg89$");
Statement stmt=con.createStatement();
String f = df.format(from);
String t = df.format(to);
ResultSet rs=stmt.executeQuery("select * from cpuload where jobId = 14");
String timer;
while(rs.next())
{
timer = dateFormat.format(rs.getTimestamp(3));
time.add(timer);
loadavg1min.add(rs.getDouble(4));
loadavg5min.add(rs.getDouble(5));
loadavg15min.add(rs.getDouble(6));
}
// create the dataset...
final DefaultCategoryDataset dataset = new DefaultCategoryDataset();
for(i = 0;i<loadavg1min.size();i++)
dataset.addValue(loadavg1min.get(i)," loadAvg1min" , time.get(i));
for(i = 0;i<loadavg5min.size();i++)
dataset.addValue(loadavg5min.get(i)," loadAvg5min" , time.get(i));
for(i = 0;i<loadavg15min.size();i++)
dataset.addValue(loadavg15min.get(i)," loadAvg15min" , time.get(i));
return dataset;
}
catch (SQLException e)
{
System.out.println(e.getMessage());
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
return null;
}
/**
* Creates a sample chart.
*
* @param dataset a dataset.
*
* @return The chart.
*/
private JFreeChart createChart(final CategoryDataset dataset) {
// create the chart...
final JFreeChart chart = ChartFactory.createLineChart(
"Line Chart Demo 1", // chart title
"Time in minutes", // domain axis label
"CPULoad", // range axis label
dataset, // data
PlotOrientation.VERTICAL, // orientation
true, // include legend
true, // tooltips
false // urls
);
chart.setBackgroundPaint(Color.white);
final CategoryPlot plot = (CategoryPlot) chart.getPlot();
plot.setBackgroundPaint(Color.white);
plot.setRangeGridlinePaint(Color.gray);
// customise the range axis...
final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
rangeAxis.setAutoRangeIncludesZero(true);
return chart;
}