List of usage examples for org.jfree.data.time TimeSeriesCollection TimeSeriesCollection
public TimeSeriesCollection()
From source file:com.leonarduk.finance.chart.CandlestickChart.java
/** * Builds an additional JFreeChart dataset from a ta4j time series. * * @param series// www . j av a2 s . c o m * a time series * @return an additional dataset */ private static TimeSeriesCollection createAdditionalDataset(final TimeSeries series) { final ClosePriceIndicator indicator = new ClosePriceIndicator(series); final TimeSeriesCollection dataset = new TimeSeriesCollection(); final org.jfree.data.time.TimeSeries chartTimeSeries = new org.jfree.data.time.TimeSeries( series.getName() + " price"); for (int i = 0; i < series.getTickCount(); i++) { final Tick tick = series.getTick(i); chartTimeSeries.add(new Second(tick.getEndTime().toDate()), indicator.getValue(i).toDouble()); } dataset.addSeries(chartTimeSeries); return dataset; }
From source file:ws.moor.bt.grapher.ChartBuilder.java
public ChartBuilder(String chartName) { this.chartName = chartName; timeSeries = new TimeSeriesCollection(); }
From source file:org.apache.phoenix.pherf.result.impl.ImageResultHandler.java
@Override public synchronized void write(Result result) throws Exception { TimeSeriesCollection timeSeriesCollection = new TimeSeriesCollection(); int rowCount = 0; int maxLegendCount = 20; int chartDimension = 1100; ResultValue<DataModelResult> resultValue = result.getResultValues().get(0); DataModelResult dataModelResult = resultValue.getResultValue(); for (ScenarioResult scenarioResult : dataModelResult.getScenarioResult()) { for (QuerySetResult querySetResult : scenarioResult.getQuerySetResult()) { for (QueryResult queryResult : querySetResult.getQueryResults()) { for (ThreadTime tt : queryResult.getThreadTimes()) { TimeSeries timeSeries = new TimeSeries( queryResult.getStatement() + " :: " + tt.getThreadName()); rowCount++;/*from w ww . ja va 2 s .c o m*/ synchronized (tt.getRunTimesInMs()) { for (RunTime rt : tt.getRunTimesInMs()) { if (rt.getStartTime() != null) { timeSeries.add(new Millisecond(rt.getStartTime()), rt.getElapsedDurationInMs()); } } } timeSeriesCollection.addSeries(timeSeries); } } } } boolean legend = rowCount > maxLegendCount ? false : true; JFreeChart chart = ChartFactory.createTimeSeriesChart(dataModelResult.getName(), "Time", "Query Time (ms)", timeSeriesCollection, legend, true, false); StandardXYItemRenderer renderer = new StandardXYItemRenderer(StandardXYItemRenderer.SHAPES_AND_LINES); chart.getXYPlot().setRenderer(renderer); chart.getXYPlot().setBackgroundPaint(Color.WHITE); chart.getXYPlot().setRangeGridlinePaint(Color.BLACK); for (int i = 0; i < rowCount; i++) { chart.getXYPlot().getRenderer().setSeriesStroke(i, new BasicStroke(3f)); } try { ChartUtilities.saveChartAsJPEG(new File(resultFileName), chart, chartDimension, chartDimension); } catch (IOException e) { e.printStackTrace(); } }
From source file:org.jfree.chart.demo.MemoryUsageDemo.java
public MemoryUsageDemo(int i) { super(new BorderLayout()); total = new TimeSeries("Total Memory"); total.setMaximumItemAge(i);//from w ww.j av a 2 s. c om free = new TimeSeries("Free Memory"); free.setMaximumItemAge(i); TimeSeriesCollection timeseriescollection = new TimeSeriesCollection(); timeseriescollection.addSeries(total); timeseriescollection.addSeries(free); DateAxis dateaxis = new DateAxis("Time"); NumberAxis numberaxis = new NumberAxis("Memory"); dateaxis.setTickLabelFont(new Font("SansSerif", 0, 12)); numberaxis.setTickLabelFont(new Font("SansSerif", 0, 12)); dateaxis.setLabelFont(new Font("SansSerif", 0, 14)); numberaxis.setLabelFont(new Font("SansSerif", 0, 14)); XYLineAndShapeRenderer xylineandshaperenderer = new XYLineAndShapeRenderer(true, false); xylineandshaperenderer.setSeriesPaint(0, Color.red); xylineandshaperenderer.setSeriesPaint(1, Color.green); xylineandshaperenderer.setSeriesStroke(0, new BasicStroke(3F, 0, 2)); xylineandshaperenderer.setSeriesStroke(1, new BasicStroke(3F, 0, 2)); XYPlot xyplot = new XYPlot(timeseriescollection, dateaxis, numberaxis, xylineandshaperenderer); xyplot.setBackgroundPaint(Color.lightGray); xyplot.setDomainGridlinePaint(Color.white); xyplot.setRangeGridlinePaint(Color.white); xyplot.setAxisOffset(new RectangleInsets(5D, 5D, 5D, 5D)); dateaxis.setAutoRange(true); dateaxis.setLowerMargin(0.0D); dateaxis.setUpperMargin(0.0D); dateaxis.setTickLabelsVisible(true); numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); JFreeChart jfreechart = new JFreeChart("JVM Memory Usage", new Font("SansSerif", 1, 24), xyplot, true); jfreechart.setBackgroundPaint(Color.white); ChartPanel chartpanel = new ChartPanel(jfreechart, true); chartpanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4), BorderFactory.createLineBorder(Color.black))); add(chartpanel); }
From source file:org.mwc.debrief.sensorfusion.views.MouseClickProblemDemo.java
/** * @param title/*w w w.j a va 2s. c o m*/ * the frame title. */ public MouseClickProblemDemo(final String title) { super(title); final TimeSeries s1 = new TimeSeries("Series to click"); s1.add(new Month(2, 2001), 181.8); s1.add(new Month(3, 2001), 167.3); s1.add(new Month(4, 2001), 153.8); s1.add(new Month(5, 2001), 167.6); s1.add(new Month(6, 2001), 158.8); s1.add(new Month(7, 2001), 148.3); s1.add(new Month(8, 2001), 153.9); s1.add(new Month(9, 2001), 142.7); s1.add(new Month(10, 2001), 123.2); final TimeSeriesCollection dataset = new TimeSeriesCollection(); dataset.addSeries(s1); final JFreeChart chart = ChartFactory.createTimeSeriesChart("[Alt]-click to switch orientation", // title "Time axis", // x-axis label "Value axis", // y-axis label dataset, // data false, // create legend? false, // generate tooltips? false // generate URLs? ); final ChartPanel chartPanel = new ChartPanel(chart); chartPanel.setPreferredSize(new java.awt.Dimension(500, 270)); chartPanel.addChartMouseListener(new ChartMouseListener() { public void chartMouseMoved(final ChartMouseEvent arg0) { } public void chartMouseClicked(final ChartMouseEvent arg0) { System.out.println("clicked on:" + arg0.getEntity()); if (arg0.getTrigger().isAltDown()) { if (chart.getXYPlot().getOrientation() == PlotOrientation.HORIZONTAL) chart.getXYPlot().setOrientation(PlotOrientation.VERTICAL); else chart.getXYPlot().setOrientation(PlotOrientation.HORIZONTAL); } } }); setContentPane(chartPanel); }
From source file:com.griddynamics.jagger.reporting.chart.ChartHelper.java
public static JFreeChart createTimeSeriesChart(String title, List<TimeSeriesChartSpecification> specifications, String xLabel, String yLabel, ColorTheme theme) { TimeSeriesCollection dataCollection = new TimeSeriesCollection(); for (TimeSeriesChartSpecification specification : specifications) { TimeSeries series = new TimeSeries(specification.getLabel(), Millisecond.class); for (Map.Entry<Date, Double> point : specification.getData().entrySet()) { series.add(new Millisecond(point.getKey()), point.getValue()); }// w w w .ja v a2s .c o m dataCollection.addSeries(series); } JFreeChart chart = ChartFactory.createTimeSeriesChart(title, xLabel, yLabel, dataCollection, true, false, false); formatColorTheme(chart, theme); XYPlot plot = chart.getXYPlot(); Color[] colors = generateJetSpectrum(specifications.size()); for (int i = 0; i < specifications.size(); i++) { plot.getRenderer().setSeriesPaint(i, colors[i]); } DateAxis axis = (DateAxis) plot.getDomainAxis(); axis.setDateFormatOverride(new SimpleDateFormat("dd/MM hh:mm:ss")); return chart; }
From source file:compecon.dashboard.panel.MoneyPanel.java
protected ChartPanel createCreditUtilizationRatePanel() { TimeSeriesCollection timeSeriesCollection = new TimeSeriesCollection(); for (Currency currency : Currency.values()) timeSeriesCollection.addSeries(ApplicationContext.getInstance().getModelRegistry() .getNationalEconomyModel(currency).creditUtilizationRateModel.getTimeSeries()); JFreeChart chart = ChartFactory.createTimeSeriesChart("Credit Utilization Rate", "Date", "Credit Utilization Rate", timeSeriesCollection, true, true, false); configureChart(chart);/* w w w . j a v a 2 s . c om*/ return new ChartPanel(chart); }
From source file:org.softinica.maven.jmeter.report.analyser.ValueByTimestampAnalyzer.java
@Override protected JFreeChart createChart(PageDefinition definition, Input input) { Map<String, Map<Long, Double>> allSeries = new HashMap<String, Map<Long, Double>>(); for (Sample sample : input.getSamples()) { Map<Long, Double> duration = allSeries.get(sample.getLabel()); if (duration == null) { duration = new HashMap<Long, Double>(); allSeries.put(sample.getLabel(), duration); }/*from ww w . j a v a2s . c om*/ duration.put(sample.getTimestamp(), sample.getValue()); } TimeSeriesCollection dataset = new TimeSeriesCollection(); for (String label : allSeries.keySet()) { Map<Long, Double> duration = allSeries.get(label); TimeSeries series = new TimeSeries(label); for (Long key : duration.keySet()) { series.addOrUpdate(new Millisecond(new Date(key)), duration.get(key)); } dataset.addSeries(series); } return ChartFactory.createTimeSeriesChart(definition.getTitle(), "Time", "Value", dataset); }
From source file:com.geminimobile.chart.GeminiChartUtil.java
public void createReport(OutputStream out, List<ChartSeries> chartData, String strTitle, String strDomainAxisLabel) { strDomainAxisLabel = "Time Interval: " + strDomainAxisLabel; String strYAxisLabel;//from w w w . j a v a2 s . c o m //String strCategoryType = " "; strYAxisLabel = "Count"; //SimpleDateFormat sdf = new SimpleDateFormat("MMMM-dd hh:mm a"); //build a dataset as needed by JFreeChart // note: strCategoryType is for a chart with multiple categories. // i.e. idisplay multiple bars for each time interval. // TimeSeriesCollection dataSet = new TimeSeriesCollection(); // For each series of data, create a TimeSeries for (int i = 0; i < chartData.size(); i++) { ChartSeries chartSeries = chartData.get(i); TimeSeries timeSeries = new TimeSeries(chartSeries.getName(), Millisecond.class); List<ChartValueByTime> data = chartSeries.getData(); //int cumulValue = 0; for (int j = 0; j < data.size(); j++) { ChartValueByTime chartVal = data.get(j); Millisecond ms = new Millisecond(new Date(chartVal.getTime())); // *NOT* Store the cumulative value . So maintain a running total. //cumulValue += chartVal.getValue(); //timeSeries.add(ms, cumulValue); timeSeries.add(ms, chartVal.getValue()); } dataSet.addSeries(timeSeries); } JFreeChart lineChart = ChartFactory.createTimeSeriesChart(strTitle, // chart title strDomainAxisLabel, // domain axis label strYAxisLabel, // range axis label dataSet, // data true, // legend false, // tooltips false // urls ); try { ChartUtilities.writeChartAsPNG(out, lineChart, 800, 400); } catch (IOException e) { e.printStackTrace(); } }
From source file:org.codehaus.mojo.chronos.chart.SummaryGCChartSource.java
public JFreeChart getChart(ResourceBundle bundle, ReportConfig config) { String beforeLabel = bundle.getString("chronos.label.gc.before"); String afterLabel = bundle.getString("chronos.label.gc.after"); TimeSeriesCollection dataset1 = new TimeSeriesCollection(); TimeSeries heapBeforeSeries = new TimeSeries(beforeLabel, Millisecond.class); samples.extractHeapBefore(heapBeforeSeries); TimeSeries heapAfterSeries = new TimeSeries(afterLabel, Millisecond.class); samples.extractHeapAfter(heapAfterSeries); dataset1.addSeries(heapBeforeSeries); dataset1.addSeries(heapAfterSeries); TimeSeriesCollection dataset = dataset1; String title = bundle.getString("chronos.label.gc"); String timeLabel = bundle.getString("chronos.label.gc.time"); String valueLabel = bundle.getString("chronos.label.gc.mem"); JFreeChart chart = ChartFactory.createTimeSeriesChart(title, timeLabel, valueLabel, dataset, true, true, false);/*from w ww .j a va 2 s.com*/ ChartUtil.setupXYPlot(chart, new SimpleDateFormat("HH:mm:ss")); return chart; }