1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
| public static File getGraph(Bean bean) {
final TimeSeries series = new TimeSeries("flux " + bean.getId());
int i = 0;
for (DateTime d : bean.getDates()) {
Day day = new Day(d.getDayOfMonth(), d.getMonthOfYear(),
d.getYear());
series.add(day, bean.getNombresFichiers().get(i));
i++;
}
DateAxis domain = new DateAxis("Date");
// domain.setDateFormatOverride(new SimpleDateFormat("dd/MM/yyyy"));
domain.setTickUnit(new DateTickUnit(DateTickUnitType.DAY, 1));
domain.setVerticalTickLabels(true);
NumberAxis range = new NumberAxis("Nombre de fichiers");
final TimeSeriesCollection dataset = new TimeSeriesCollection();
dataset.addSeries(series);
XYItemRenderer renderer = new XYLineAndShapeRenderer(true, false);
renderer.setSeriesPaint(0, Color.black);
XYPlot plot = new XYPlot(dataset, domain, range, renderer);
plot.setBackgroundPaint(Color.lightGray);
plot.setDomainGridlinePaint(Color.darkGray);
plot.setRangeGridlinePaint(Color.darkGray);
plot.setAxisOffset(new RectangleInsets(5.0, 5.0, 5.0, 5.0));
range.setAutoRange(true);
range.setLowerMargin(0.0);
range.setUpperMargin(0.0);
range.setTickLabelsVisible(true);
range.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
JFreeChart chart = new JFreeChart(plot);
chart.setTitle(new TextTitle("Historisation des données par flux"));
XYItemRenderer r = plot.getRenderer();
if (r instanceof XYLineAndShapeRenderer) {
XYLineAndShapeRenderer renderer1 = (XYLineAndShapeRenderer) r;
Shape cross = ShapeUtilities.createDiagonalCross(3, 1);
// pour voir les points
renderer1.setBaseShape(cross);
renderer1.setBaseShapesVisible(true);
renderer1.setBaseShapesFilled(true);
}
final ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension(600, 300));
chartPanel.setMouseZoomable(true, false);
File outputfile = new File("sortie/"+bean.getId() + "_"
+ bean.getNomTable() +"_"+strDateLivrables +".png");
try {
ChartUtilities.saveChartAsJPEG(outputfile, chart, 1600, 950);
} catch (IOException e) {
e.printStackTrace();
}
return outputfile;
} |
Partager