I have data for every 15 minutes. I want to plot a graph to display values from 'date1' to 'date2'. The plot should show every 15 minutes value. But display on X-axis should show only dates.
how to plot day-wise chart using Jfreechart
Asked Answered
How to create a sample XYPlot with 15 minute intervals (shown as date)
1) Create your data.
XYSeries dataSeries = new XYSeries("SMS Sent");
2) Add your axes. If you want the x-axis to show dates, use a DateAxis as the x-axis. Input your date data as a long (in milliseconds). jfreecharts will take care of the formatting for you.
DateAxis dateAxis = new DateAxis(timeAxisTitle);
DateTickUnit unit = null;
unit = new DateTickUnit(DateTickUnit.MINUTE,15);
DateFormat chartFormatter = new SimpleDateFormat("yyyy/MM/dd HH:mm");
dateAxis.setDateFormatOverride(chartFormatter);
dateAxis.setTickUnit(unit);
NumberAxis valueAxis = new NumberAxis(valueAxisTitle);
3) Use a DateTickUnit object to set the tick size (e.g. 15 mins.) This will plot a point every 15 mins.
4) Use a Tooltip generator to generate tooltips (optional)
XYSeriesCollection xyDataset = new XYSeriesCollection(dataSeries);
StandardXYToolTipGenerator ttg = new StandardXYToolTipGenerator(
"{0}: {2}", chartFormatter, NumberFormat.getInstance());
StandardXYItemRenderer renderer = new StandardXYItemRenderer(
StandardXYItemRenderer.SHAPES_AND_LINES, ttg, null);
renderer.setShapesFilled(true);
XYPlot plot = new XYPlot(xyDataset, dateAxis, valueAxis, renderer);
JFreeChart chart = new JFreeChart(chartTitle, JFreeChart.DEFAULT_TITLE_FONT, plot, false);
chart.setBackgroundPaint(java.awt.Color.WHITE);
5) create the chart by instantiating a new JFreeChart object. You can then save it or display it on screen. Refer to Java documentation on how to do this.
© 2022 - 2024 — McMap. All rights reserved.