List of usage examples for org.jfree.chart ChartFactory createTimeSeriesChart
public static JFreeChart createTimeSeriesChart(String title, String timeAxisLabel, String valueAxisLabel, XYDataset dataset, boolean legend, boolean tooltips, boolean urls)
From source file:de.fau.amos.ChartRenderer.java
/** * Creates Chart with TimeLine (JFreeChart object) from TimeSeriesCollection. Is used when granularity is set to hours. * Adjusts display of the chart, not the values itself. * /*from ww w. j a va 2 s .co m*/ * @param collection TimeSeriesCollection that should be used as basis of chart. * @param timeGranularity Selected granularity. Value is similar to granularity contained in TimeSeriesCollection "collection". * @param time first element of time that is displayed. Is used for caption text and axis text. * @param unit Unit of displayed values (kWh or kWh/TNF). * @return Returns finished JFreeChart object. */ private JFreeChart createTimeLineChart(TimeSeriesCollection collection, String timeGranularity, String time, String unit) { // Modification of X-Axis Label int day = Integer.parseInt(time.substring(8, 10)); int month = Integer.parseInt(time.substring(5, 7)); int year = Integer.parseInt(time.substring(0, 4)); //get Weekday Calendar c = Calendar.getInstance(); c.set(year, month - 1, day, 0, 0); int weekDay = c.get(Calendar.DAY_OF_WEEK); String dayString = new DateFormatSymbols(Locale.US).getWeekdays()[weekDay] + ", " + day + ". "; String monthString = new DateFormatSymbols(Locale.US).getMonths()[month - 1]; String xAxisLabel = "" + dayString + monthString + " " + time.substring(0, 4); //Creation of the lineChart JFreeChart lineChart = ChartFactory.createTimeSeriesChart("Line Chart", // title xAxisLabel, // x-axis label // "Energy Consumption "+("1".equals(unit)?"[kWh]":("2".equals(unit)?"[kWh/TNF]":("3".equals(unit)?"[TNF]":""))), // y-axis label ("1".equals(unit) ? "Energy Consumption [kWh]" : ("2".equals(unit) ? "Energy Consumption [kWh/TNF]" : ("3".equals(unit) ? "Produced Pieces [TNF]" : ""))), collection, // data true, // create legend? false, // generate tooltips? false // generate URLs? ); //graphical modifications for LineChart lineChart.setBackgroundPaint(Color.white); XYPlot plot = lineChart.getXYPlot(); plot.setBackgroundPaint(Color.white); plot.setDomainGridlinePaint(Color.white); plot.setRangeGridlinePaint(Color.white); plot.setAxisOffset(new RectangleInsets(0, 0, 0, 0)); return lineChart; }
From source file:org.streamspinner.harmonica.application.CQGraphTerminal.java
private JPanel getJPanel() { if (jPanel == null) { c = new TimeSeriesCollection(); JFreeChart ch = ChartFactory.createTimeSeriesChart("", "", "", c, true, true, true); XYPlot plot = ch.getXYPlot();//w ww. j a v a 2s . c o m plot.setBackgroundPaint(Color.BLACK); plot.setRangeGridlinePaint(Color.WHITE); jPanel = new ChartPanel(ch, false); jPanel.setMaximumSize(new Dimension(400, Short.MAX_VALUE)); jPanel.setPreferredSize(new Dimension(400, Short.MAX_VALUE)); } return jPanel; }
From source file:org.tolven.web.ChartAction.java
/** * Create Growth Chart//www. ja v a2 s . c o m * * @author Suja * added on 02/01/2011 * @param type - 1: Height & 2: Weight * @return */ public JFreeChart createChart(int type) { long patientId = Long.parseLong(getRequestParameter("element").toString().split(":")[1].split("-")[1]); MenuData patMD = getMenuLocal().findMenuDataItem(patientId); int age = 0; int gender = 1; Date dob = null; if (patMD != null) { DateFormat df = new SimpleDateFormat("yyyy"); dob = patMD.getDate01(); Date cur = new Date(); age = Integer.parseInt(df.format(cur)) - Integer.parseInt(df.format(dob)); if (patMD.getString04().equals("Male")) gender = 1; else gender = 2; } // create dataset XYDataset dataset = createDataset(type, gender, age, dob); String title = ""; if (type == 1 && age < 3) title = "Height birth to 36 Months Old " + (gender == 1 ? "Male" : "Female"); else if (type == 1 && age >= 3) title = "Height 2-20 Year Old " + (gender == 1 ? "Male" : "Female"); else if (type == 2 && age < 3) title = "Weight birth to 36 Months Old " + (gender == 1 ? "Male" : "Female"); else if (type == 2 && age >= 3) title = "Weight 2-20 Year Old " + (gender == 1 ? "Male" : "Female"); JFreeChart chart = ChartFactory.createTimeSeriesChart(title, // title "X-Value", // x-axis label "Y-Value", // y-axis label dataset, // data true, // create legend? true, // generate tooltips? false // generate URLs? ); chart.setBackgroundPaint(Color.lightGray); XYPlot plot = (XYPlot) chart.getPlot(); plot.setBackgroundPaint(Color.white); plot.setDomainGridlinePaint(Color.lightGray); plot.setRangeGridlinePaint(Color.lightGray); plot.setAxisOffset(new RectangleInsets(0.0, 0.0, 0.0, 0.0)); plot.setDomainCrosshairVisible(true); plot.setRangeCrosshairVisible(true); XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(); for (int i = 1; i < 10; i++) { renderer.setSeriesLinesVisible(i, true); renderer.setSeriesShapesVisible(i, false); } renderer.setSeriesLinesVisible(0, true); renderer.setSeriesShapesVisible(0, true); plot.setRenderer(renderer); plot.setDomainAxis(new NumberAxis("Age (Months)")); plot.setRangeAxis(new NumberAxis((type == 1 ? "Height (Centimeters)" : "Weight (Kilograms)"))); return chart; }
From source file:compecon.dashboard.panel.HouseholdsPanel.java
protected ChartPanel createUtilityFunctionMechanicsPanel(Currency currency) { TimeSeriesCollection timeSeriesCollection = new TimeSeriesCollection(); timeSeriesCollection.addSeries(ApplicationContext.getInstance().getModelRegistry() .getNationalEconomyModel(currency).householdsModel.budgetModel.getTimeSeries()); for (ConvexFunctionTerminationCause terminationCause : ConvexFunctionTerminationCause.values()) { timeSeriesCollection.addSeries(ApplicationContext.getInstance().getModelRegistry() .getNationalEconomyModel(currency).householdsModel.convexFunctionTerminationCauseModels .get(terminationCause).getTimeSeries()); }/* w w w . j a va 2 s . c o m*/ // budget is correct here JFreeChart chart = ChartFactory.createTimeSeriesChart("Utility Function Mechanics", "Date", "Budget Spent", (XYDataset) timeSeriesCollection, true, true, false); configureChart(chart); return new ChartPanel(chart); }
From source file:gov.llnl.lc.infiniband.opensm.plugin.gui.chart.PortCounterXYplotPanel.java
private JFreeChart createChart() { // 1. counter value //// ww w . ja va 2 s . co m // -- see worker thread for following axis -- // // 2. delta/period // // -- if error counter -- // 3. include xmit and rcv traffic deltas? (own scale) // // // -- if traffic counter -- // 3. include rate and utilization values? // SMT_UpdateService updateService = SMT_UpdateService.getInstance(); OMS_Collection history = updateService.getCollection(); if ((history == null) || (history.getSize() < 2)) { // need at least two datapoints to this chart to make sense logger.severe("OMS Delta unavailable, cannot createChart(), must wait for more historical snapshots"); MessageManager.getInstance().postMessage( new SmtMessage(SmtMessageType.SMT_MSG_SEVERE, "Cannot build chart without historical data")); return null; } MessageManager.getInstance() .postMessage(new SmtMessage(SmtMessageType.SMT_MSG_INFO, "Worker Building Plot")); long deltaPeriod = history.getAveDeltaSeconds(); // the primary dataset of the desired counter which will be axis1 XYDataset dataset1 = createDataset(history); // setup the chart for the desired counter JFreeChart chart = ChartFactory.createTimeSeriesChart( PortCounter.getName() + " [" + Vertex.getName() + " port " + Port.getPortNumber() + "]", "Time of Day", PortCounterAxisLabel.COUNTS.getName(), dataset1, true, true, false); chart.addSubtitle(new TextTitle("Port Counter Activity (" + deltaPeriod + " sec. delta)")); XYPlot plot = (XYPlot) chart.getPlot(); plot.setOrientation(PlotOrientation.VERTICAL); plot.setDomainPannable(true); plot.setRangePannable(true); plot.getRangeAxis().setFixedDimension(15.0); return chart; }
From source file:Main.Interface_Main.java
private JFreeChart createChartVolt(final XYDataset dataset) { final JFreeChart result = ChartFactory.createTimeSeriesChart("Voltage", "Time", "Volts", dataset, false, true, false);/*from www.j a va 2 s . c o m*/ final XYPlot plot = result.getXYPlot(); XYItemRenderer xyir = plot.getRenderer(); xyir.setSeriesPaint(0, Color.GREEN); xyir.setSeriesPaint(1, Color.RED); xyir.setSeriesPaint(2, Color.BLUE); plot.setBackgroundPaint(Color.BLACK); ValueAxis domainAxis = plot.getDomainAxis(); domainAxis.setAutoRange(true); NumberAxis yAxis = (NumberAxis) plot.getRangeAxis(); yAxis.setAutoRangeMinimumSize(5.2); yAxis.setRangeType(RangeType.POSITIVE); yAxis.setAutoRangeIncludesZero(true); ValueAxis rangeAxis = plot.getRangeAxis(); rangeAxis.setAutoRange(true); return result; }
From source file:ca.myewb.frame.servlet.GraphServlet.java
private JFreeChart getDaily3Stats(Session s) { JFreeChart chart;//from w w w .ja va 2 s .c o m List<DailyStatsModel> stats = (new SafeHibList<DailyStatsModel>( s.createQuery("select ds from DailyStatsModel as ds where day<? and day>=? order by day desc") .setDate(0, new Date()).setDate(1, GraphServlet.getStartDate()))).list(); TimeSeriesCollection theData = new TimeSeriesCollection(); TimeSeries regUpgrades = new TimeSeries("Regular Upgrades", Day.class); theData.addSeries(regUpgrades); TimeSeries renewals = new TimeSeries("Regular Renewals", Day.class); theData.addSeries(renewals); TimeSeries regDowngrades = new TimeSeries("Regular Downgrades", Day.class); theData.addSeries(regDowngrades); for (DailyStatsModel ds : stats) { Day theDay = new Day(ds.getDay()); regUpgrades.add(theDay, ds.getRegupgrades()); renewals.add(theDay, ds.getRenewals()); regDowngrades.add(theDay, ds.getRegdowngrades()); } chart = ChartFactory.createTimeSeriesChart("Regular membership changes (14-day moving avg)", "Day", "Occurrences", MovingAverage.createMovingAverage(theData, "", 14, 0), true, true, true); XYPlot plot = (XYPlot) chart.getPlot(); plot.getRangeAxis().setUpperBound(10); XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) plot.getRenderer(); renderer.setSeriesStroke(0, new BasicStroke(2.0f)); renderer.setSeriesStroke(1, new BasicStroke(2.0f)); renderer.setSeriesStroke(2, new BasicStroke(2.0f)); return chart; }
From source file:Main.Interface_Main.java
private JFreeChart createChartWatt(final XYDataset dataset) { final JFreeChart result = ChartFactory.createTimeSeriesChart("Wattage", "Time", "Watts", dataset, false, true, false);/*from w w w. ja va 2 s . co m*/ final XYPlot plot = result.getXYPlot(); XYItemRenderer xyir = plot.getRenderer(); xyir.setSeriesPaint(0, Color.GREEN); plot.setBackgroundPaint(Color.BLACK); ValueAxis domainAxis = plot.getDomainAxis(); domainAxis.setAutoRange(true); NumberAxis yAxis = (NumberAxis) plot.getRangeAxis(); yAxis.setAutoRangeMinimumSize(5); yAxis.setRangeType(RangeType.POSITIVE); yAxis.setAutoRangeIncludesZero(true); ValueAxis rangeAxis = plot.getRangeAxis(); rangeAxis.setAutoRange(true); return result; }
From source file:de.tor.tribes.ui.views.DSWorkbenchStatsFrame.java
private void setupChart(String pInitialId, XYDataset pInitialDataset) { chart = ChartFactory.createTimeSeriesChart("Spielerstatistiken", // title "Zeiten", // x-axis label pInitialId, // y-axis label pInitialDataset, // data jShowLegend.isSelected(), // create legend? true, // generate tooltips? false // generate URLs? );//from w w w. j a v a 2 s .c o m chart.setBackgroundPaint(Constants.DS_BACK); XYPlot plot = (XYPlot) chart.getPlot(); setupPlotDrawing(plot); XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(); for (int i = 0; i < plot.getSeriesCount(); i++) { renderer.setSeriesLinesVisible(i, jShowLines.isSelected()); renderer.setSeriesShapesVisible(i, jShowDataPoints.isSelected()); plot.setRenderer(i, renderer); } renderer.setDefaultItemLabelsVisible(jShowItemValues.isSelected()); renderer.setDefaultItemLabelGenerator(new org.jfree.chart.labels.StandardXYItemLabelGenerator()); renderer.setDefaultToolTipGenerator( new StandardXYToolTipGenerator(StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT, new SimpleDateFormat("dd.MM.yyyy HH:mm:ss"), NumberFormat.getInstance())); int lastDataset = plot.getDatasetCount() - 1; if (lastDataset > 0) { plot.getRangeAxis().setAxisLinePaint(plot.getLegendItems().get(lastDataset).getLinePaint()); plot.getRangeAxis().setLabelPaint(plot.getLegendItems().get(lastDataset).getLinePaint()); plot.getRangeAxis().setTickLabelPaint(plot.getLegendItems().get(lastDataset).getLinePaint()); plot.getRangeAxis().setTickMarkPaint(plot.getLegendItems().get(lastDataset).getLinePaint()); } NumberFormat nf = NumberFormat.getInstance(); nf.setMinimumFractionDigits(0); nf.setMaximumFractionDigits(0); NumberAxis na = ((NumberAxis) plot.getRangeAxis()); if (na != null) { na.setNumberFormatOverride(nf); } }
From source file:view.App.java
private void renderChart(SpreadObject obj) { try {// w w w . j av a 2 s . co m jPanel3.removeAll(); jPanel3.revalidate(); chart = ChartFactory.createTimeSeriesChart( obj.getBaseStock().getTicker() + " : " + obj.getSecondStock().getTicker(), "date", "spread ratio", createDataset(obj), true, true, false); } catch (ParseException e) { System.out.println(" " + e.toString()); } final XYPlot plot = chart.getXYPlot(); XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(); renderer.setSeriesShape(0, new Ellipse2D.Double(-3, -3, 0, 0)); renderer.setSeriesPaint(0, Color.RED); plot.setRenderer(renderer); axis = (DateAxis) plot.getDomainAxis(); axis.setDateFormatOverride(new SimpleDateFormat("dd-MM-yyyy")); ChartPanel chartPanel = new ChartPanel(chart); chartPanel.setDomainZoomable(true); chartPanel.setRangeZoomable(false); Border border = BorderFactory.createCompoundBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4), BorderFactory.createEtchedBorder()); chartPanel.setBorder(border); jPanel3.add(chartPanel); jPanel3.revalidate(); }