List of usage examples for org.jfree.chart.renderer.xy XYStepRenderer XYStepRenderer
public XYStepRenderer()
From source file:msi.gama.outputs.layers.ChartDataListStatement.java
public ChartDataList createData(final IScope scope) throws GamaRuntimeException { ChartDataList datalist = new ChartDataList(); // scope.addVarWithValue(ChartDataListStatement.UPDATEDATA, new Boolean(true)); // scope.addVarWithValue(ChartDataListStatement.REVERSEDATA, new Boolean(reverse)); // for (int i=0; i<values.size(); i++) // {/* w w w . j a v a 2 s . com*/ // ((ArrayList) scope.getVarValue(ChartDataStatement.DATAS)).add(values.get(i)); // } IExpression valexp = getFacet(IKeyword.VALUE); datalist.valuelistexp = valexp; Boolean reverse = Cast.asBool(scope, getFacetValue(scope, "inverse_series_categories", false)); datalist.doreverse = reverse; IExpression categexp = getFacet(ChartDataListStatement.CATEGNAMES); datalist.categlistexp = categexp; IExpression colorexp = getFacet(IKeyword.COLOR); datalist.colorlistexp = colorexp; IExpression serexp = getFacet(IKeyword.LEGEND); datalist.legendlistexp = serexp; if (categexp != null) { // scope.addVarWithValue(ChartDataListStatement.CATEGNAMES, categexp); } if (serexp != null) { // scope.addVarWithValue(ChartDataListStatement.SERIESNAMES, serexp); } /* Object val=valexp.resolveAgainst(scope).value(scope); if (!(val instanceof GamaList)) { GuiUtils.debug("chart list with no list..."); return datalist; } IList values = Cast.asList(scope,val); GamaList defaultnames=new GamaList<String>(); GamaList defaultcolors=new GamaList<GamaColor>(); for (int i=0; i<values.size();i++) { defaultnames.add("data"+i); if (i<10) { if (i==0) defaultcolors.add((GamaColor)Cast.asColor(scope,GamaColor.CYAN)); if (i==1) defaultcolors.add((GamaColor)Cast.asColor(scope,GamaColor.RED)); if (i==2) defaultcolors.add((GamaColor)Cast.asColor(scope,GamaColor.YELLOW)); if (i==3) defaultcolors.add((GamaColor)Cast.asColor(scope,GamaColor.GREEN)); if (i==4) defaultcolors.add((GamaColor)Cast.asColor(scope,GamaColor.BLUE)); if (i==5) defaultcolors.add((GamaColor)Cast.asColor(scope,GamaColor.PINK)); if (i==6) defaultcolors.add((GamaColor)Cast.asColor(scope,GamaColor.MAGENTA)); if (i==7) defaultcolors.add((GamaColor)Cast.asColor(scope,GamaColor.ORANGE)); if (i==8) defaultcolors.add((GamaColor)Cast.asColor(scope,GamaColor.LIGHT_GRAY)); if (i==9) defaultcolors.add((GamaColor)Cast.asColor(scope,GamaColor.DARK_GRAY)); } if (i>=10) if (i<GamaColor.colors.size()) defaultcolors.add(GamaColor.int_colors.values().toArray()[i]); else defaultcolors.add(GamaColor.getInt(Random.opRnd(scope, 10000))); } IList colors=defaultcolors; boolean dynamicseriesnames=false; GamaList seriesnames=defaultnames; IExpression serievalue=(IExpression) scope.getVarValue(ChartDataListStatement.SERIESNAMES); if (serievalue!=null) { Object valc=serievalue.resolveAgainst(scope).value(scope); if ((valc instanceof GamaList)) { dynamicseriesnames=true; seriesnames=(GamaList)valc; for (int i=0; i<Math.min(values.size(),seriesnames.size());i++) { defaultnames.set(i,seriesnames.get(i)+"("+i+")"); } } } // GuiUtils.debug("dyncateg:"+defaultnames); // names = Cast.asList(scope, getFacetValue(scope, IKeyword.LEGEND,getFacetValue(scope, IKeyword.NAME,defaultnames))); colors = Cast.asList(scope, getFacetValue(scope, IKeyword.COLOR,defaultcolors)); */ boolean showMarkers = getFacetValue(scope, ChartDataStatement.MARKER, true); boolean showLine = getFacetValue(scope, ChartDataStatement.LINE_VISIBLE, true); boolean fillMarkers = getFacetValue(scope, ChartDataStatement.FILL, true); String style = getLiteral(IKeyword.STYLE); if (style == null) { style = IKeyword.LINE; } AbstractRenderer r = null; if (style.equals(IKeyword.LINE)) { r = new XYLineAndShapeRenderer(true, showMarkers); ((XYLineAndShapeRenderer) r).setBaseShapesFilled(fillMarkers); ((XYLineAndShapeRenderer) r).setSeriesLinesVisible(0, showLine); } else if (style.equals(IKeyword.AREA)) { r = new XYAreaRenderer(); } else if (style.equals(IKeyword.WHISKER)) { r = new BoxAndWhiskerRenderer(); } else if (style.equals(IKeyword.BAR)) { r = new BarRenderer(); } else if (style.equals(IKeyword.DOT)) { r = new XYDotRenderer(); } else if (style.equals(IKeyword.SPLINE)) { r = new XYSplineRenderer(); } else if (style.equals(IKeyword.STEP)) { r = new XYStepRenderer(); } else if (style.equals(IKeyword.AREA_STACK)) { r = new StackedXYAreaRenderer2(); } else if (style.equals(IKeyword.STACK)) { r = new StackedBarRenderer(); } datalist.renderer = r; return datalist; }
From source file:SciTK.PlotXYStep.java
/** Initialization routine (common to both constructors) */ private void init(String x_label, String y_label, String window_title, double x_min, double x_max) { chart = ChartFactory.createXYStepChart("", x_label, y_label, data, PlotOrientation.VERTICAL, false, true, false);//from w ww .ja v a 2 s . c om chart.setBackgroundPaint(Color.white); XYPlot plot = chart.getXYPlot(); // the plot itself // Use a step renderer for this type of chart: XYStepRenderer renderer = new XYStepRenderer(); renderer.setBaseStroke(new BasicStroke(2.0f)); renderer.setBaseToolTipGenerator(new StandardXYToolTipGenerator()); renderer.setDefaultEntityRadius(6); renderer.setLegendItemLabelGenerator(new MultipleXYSeriesLabelGenerator()); // need to tell the plot to use this renderer plot.setRenderer(renderer); // create new axis with range set by dataset max/min: NumberAxis domainAxis = new NumberAxis(x_label); domainAxis.setRange(x_min, x_max); plot.setDomainAxis(domainAxis); // for some reason default is white, change it to black: setGridlineColor(Color.BLACK); super.window_title = window_title; super.initUI(); }
From source file:replicatorg.app.ui.panels.ControlPanel.java
private ChartPanel makeChart() { JFreeChart chart = ChartFactory.createXYLineChart(null, null, null, t0MeasuredDataset, PlotOrientation.VERTICAL, false, false, false); chart.setBorderVisible(false);//from www .ja v a2 s. c om chart.setBackgroundPaint(null); XYPlot plot = chart.getXYPlot(); ValueAxis axis = plot.getDomainAxis(); axis.setLowerMargin(0); axis.setFixedAutoRange(3L * 60L * 1000L); // auto range to three minutes TickUnits unitSource = new TickUnits(); unitSource.add(new NumberTickUnit(60L * 1000L)); // minutes unitSource.add(new NumberTickUnit(1L * 1000L)); // seconds axis.setStandardTickUnits(unitSource); axis.setTickLabelsVisible(false); // We don't need to see the millisecond count axis = plot.getRangeAxis(); axis.setRange(0, 300); // set temperature range from 0 to 300 degrees C so you can see overshoots XYStepRenderer renderer = new XYStepRenderer(); plot.setDataset(1, t0TargetDataset); plot.setRenderer(1, renderer); plot.getRenderer(1).setSeriesPaint(0, t0TargetColor); plot.getRenderer(0).setSeriesPaint(0, t0MeasuredColor); plot.setDataset(2, pMeasuredDataset); plot.setRenderer(2, new XYLineAndShapeRenderer(true, false)); plot.getRenderer(2).setSeriesPaint(0, pMeasuredColor); plot.setDataset(3, pTargetDataset); plot.setRenderer(3, new XYStepRenderer()); plot.getRenderer(3).setSeriesPaint(0, pTargetColor); plot.setDatasetRenderingOrder(DatasetRenderingOrder.REVERSE); ChartPanel chartPanel = new ChartPanel(chart); chartPanel.setPreferredSize(new Dimension(400, 160)); chartPanel.setOpaque(false); return chartPanel; }
From source file:org.pentaho.platform.uifoundation.chart.JFreeChartEngine.java
private static JFreeChart createXYSeriesCollectionChart( final XYSeriesCollectionChartDefinition chartDefinition) { JFreeChart chart = null;/*from w ww . ja v a2 s . c o m*/ // TODO Make the following accessible from the chartDefinition String domainAxisLabel = null; String rangeAxisLabel = null; boolean tooltips = true; boolean urls = true; // ----------------------------------------------------------- String title = chartDefinition.getTitle(); boolean legend = chartDefinition.isLegendIncluded(); NumberAxis domainAxis = chartDefinition.isThreeD() ? new NumberAxis3D(domainAxisLabel) : new NumberAxis(domainAxisLabel); domainAxis.setAutoRangeIncludesZero(chartDefinition.isDomainIncludesZero()); domainAxis.setAutoRangeStickyZero(chartDefinition.isDomainStickyZero()); ValueAxis rangeAxis = new NumberAxis(rangeAxisLabel); AbstractXYItemRenderer renderer = null; switch (chartDefinition.getChartType()) { case LINE_CHART_TYPE: renderer = chartDefinition.isThreeD() ? new XYLine3DRenderer() : new XYLineAndShapeRenderer(true, false); ((XYLineAndShapeRenderer) renderer).setShapesVisible(chartDefinition.isMarkersVisible()); ((XYLineAndShapeRenderer) renderer).setBaseShapesFilled(chartDefinition.isMarkersVisible()); break; case AREA_CHART_TYPE: renderer = new XYAreaRenderer(); break; case STEP_CHART_TYPE: renderer = new XYStepRenderer(); break; case STEP_AREA_CHART_TYPE: renderer = new XYStepAreaRenderer(); break; case DIFFERENCE_CHART_TYPE: renderer = new XYDifferenceRenderer(); break; case DOT_CHART_TYPE: renderer = new XYDotRenderer(); ((XYDotRenderer) renderer).setDotHeight(chartDefinition.getDotHeight()); ((XYDotRenderer) renderer).setDotWidth(chartDefinition.getDotWidth()); break; default: // should log an error if invalid chart type passed in - at least return null for no renderer return null; } if (renderer != null && legend) { renderer.setLegendItemURLGenerator(new StandardXYSeriesLabelGenerator()); } if (tooltips) { XYToolTipGenerator generator = new StandardXYToolTipGenerator(chartDefinition.getTooltipContent(), new DecimalFormat(chartDefinition.getTooltipXFormat()), new DecimalFormat(chartDefinition.getTooltipYFormat())); renderer.setToolTipGenerator(generator); } if (urls) { renderer.setURLGenerator(new StandardXYURLGenerator()); } renderer.setStroke(JFreeChartEngine.getLineStyleStroke(chartDefinition.getLineStyle(), chartDefinition.getLineWidth())); XYPlot plot = new XYPlot(chartDefinition, domainAxis, rangeAxis, renderer); JFreeChartEngine.updatePlot(plot, chartDefinition); chart = new JFreeChart(title, JFreeChart.DEFAULT_TITLE_FONT, plot, legend); return chart; }
From source file:com.freedomotic.jfrontend.extras.GraphPanel.java
private void createChart(UsageDataFrame points, String title) { series = new TimeSeries(title); for (UsageData d : points.getData()) { Date resultdate = d.getDateTime(); Millisecond ms_read = new Millisecond(resultdate); int poweredValue = -1; if (d.getObjBehavior().equalsIgnoreCase("powered")) { poweredValue = d.getObjValue().equalsIgnoreCase("true") ? 1 : 0; } else if (d.getObjBehavior().equalsIgnoreCase("brigthness")) { try { poweredValue = Integer.parseInt(d.getObjValue()); } catch (NumberFormatException ex) { poweredValue = -1;/*from w w w. ja v a 2 s. c o m*/ } } series.addOrUpdate(ms_read, poweredValue); } XYDataset xyDataset = new TimeSeriesCollection(series); chart = ChartFactory.createTimeSeriesChart("Chart", "TIME", "VALUE", xyDataset, true, // legend true, // tooltips false // urls ); chart.setAntiAlias(true); // Set plot styles XYPlot plot = (XYPlot) chart.getPlot(); plot.setBackgroundPaint(Color.lightGray); plot.setDomainGridlinePaint(Color.white); plot.setRangeGridlinePaint(Color.white); plot.setAxisOffset(new RectangleInsets(2.0, 2.0, 2.0, 2.0)); // Set series line styles plot.setRenderer(new XYStepRenderer()); XYItemRenderer r = plot.getRenderer(); if (r instanceof XYLineAndShapeRenderer) { XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) r; renderer.setShapesVisible(true); renderer.setShapesFilled(true); } // Set date axis style DateAxis axis = (DateAxis) plot.getDomainAxis(); String formatString = "MM-dd HH"; DateTickUnitType dtut = DateTickUnitType.HOUR; if (jComboGranularity.getSelectedItem().equals("Year")) { formatString = "yyyy"; dtut = DateTickUnitType.YEAR; } else if (jComboGranularity.getSelectedItem().equals("Month")) { axis.setDateFormatOverride(new SimpleDateFormat("yyyy-MM")); dtut = DateTickUnitType.MONTH; } else if (jComboGranularity.getSelectedItem().equals("Day")) { axis.setDateFormatOverride(new SimpleDateFormat("MM-dd")); dtut = DateTickUnitType.DAY; } else if (jComboGranularity.getSelectedItem().equals("Minute")) { formatString = "MM-dd HH:mm"; dtut = DateTickUnitType.MINUTE; } else if (jComboGranularity.getSelectedItem().equals("Second")) { formatString = "HH:mm:SS"; dtut = DateTickUnitType.SECOND; } DateFormat formatter = new SimpleDateFormat(formatString); DateTickUnit unit = new DateTickUnit(dtut, 1, formatter); axis.setTickUnit(unit); ChartPanel chartPanel = new ChartPanel(chart); chartPanel.setPreferredSize(new java.awt.Dimension(800, 500)); graphPanel.removeAll(); graphPanel.add(chartPanel); }
From source file:tools.descartes.bungee.chart.ChartGenerator.java
public static XYPlot createIntensityPlot(final List<ArrivalRateTuple> intensities) { final TimeSeriesCollection dataset = new TimeSeriesCollection(); final TimeSeries series = new TimeSeries("load intensity"); for (ArrivalRateTuple intensity : intensities) { long milliseconds = (referenceDate.getTime() / 1000 + (long) Math.floor(intensity.getTimeStamp())) * 1000;/* w w w.j a va 2 s . c o m*/ series.add(new FixedMillisecond(milliseconds), intensity.getArrivalRate()); } dataset.addSeries(series); XYStepRenderer renderer = new XYStepRenderer(); //renderer.setSeriesStroke(0, (new BasicStroke(2.0F))); renderer.setSeriesPaint(0, Color.GRAY); final NumberAxis rangeAxis = new NumberAxis("Arrival Rate [1/s]"); //rangeAxis.setRange(0, 220); final XYPlot intensityPlot = new XYPlot(dataset, null, rangeAxis, renderer); return intensityPlot; }
From source file:org.pentaho.platform.uifoundation.chart.JFreeChartEngine.java
private static JFreeChart createTimeSeriesCollectionChart( final TimeSeriesCollectionChartDefinition chartDefinition) { JFreeChart chart = null;/*w ww . jav a 2 s .com*/ // TODO Make the following accessible from the chartDefinition String domainAxisLabel = null; String rangeAxisLabel = null; boolean tooltips = true; boolean urls = true; // ----------------------------------------------------------- String title = chartDefinition.getTitle(); boolean legend = chartDefinition.isLegendIncluded(); DateAxis domainAxis = new DateAxis(domainAxisLabel, TimeZone.getDefault()); ValueAxis rangeAxis = new NumberAxis(rangeAxisLabel); XYItemRenderer renderer = null; switch (chartDefinition.getChartType()) { case LINE_CHART_TYPE: renderer = chartDefinition.isThreeD() ? new XYLine3DRenderer() : new XYLineAndShapeRenderer(true, false); ((XYLineAndShapeRenderer) renderer).setShapesVisible(chartDefinition.isMarkersVisible()); ((XYLineAndShapeRenderer) renderer).setBaseShapesFilled(chartDefinition.isMarkersVisible()); break; case AREA_CHART_TYPE: renderer = new XYAreaRenderer(); break; case STEP_CHART_TYPE: renderer = new XYStepRenderer(); break; case STEP_AREA_CHART_TYPE: renderer = new XYStepAreaRenderer(); break; case DIFFERENCE_CHART_TYPE: renderer = new XYDifferenceRenderer(); break; case DOT_CHART_TYPE: renderer = new XYDotRenderer(); ((XYDotRenderer) renderer).setDotHeight(chartDefinition.getDotHeight()); ((XYDotRenderer) renderer).setDotWidth(chartDefinition.getDotWidth()); break; default: // should log an error if invalid chart type passed in - at least return null for no renderer return null; } if (tooltips) { XYToolTipGenerator generator = new StandardXYToolTipGenerator(chartDefinition.getTooltipContent(), new SimpleDateFormat(chartDefinition.getTooltipXFormat()), new DecimalFormat(chartDefinition.getTooltipYFormat())); renderer.setToolTipGenerator(generator); } if (urls) { renderer.setURLGenerator(new StandardXYURLGenerator()); } renderer.setStroke(JFreeChartEngine.getLineStyleStroke(chartDefinition.getLineStyle(), chartDefinition.getLineWidth())); XYPlot plot = new XYPlot(chartDefinition, domainAxis, rangeAxis, renderer); JFreeChartEngine.updatePlot(plot, chartDefinition); chart = new JFreeChart(title, JFreeChart.DEFAULT_TITLE_FONT, plot, legend); return chart; }
From source file:tools.descartes.bungee.chart.ChartGenerator.java
public static XYPlot createDemandPlot(final List<ArrivalRateTuple> intensities, final IntensityDemandMapping mapping) { final TimeSeriesCollection dataset = new TimeSeriesCollection(); final TimeSeries series = new TimeSeries("resource demand"); for (ArrivalRateTuple intensity : intensities) { long milliseconds = (referenceDate.getTime() / 1000 + (long) Math.floor(intensity.getTimeStamp())) * 1000;/*from w w w.ja v a 2 s .c o m*/ series.add(new FixedMillisecond(milliseconds), mapping.getResourceDemand(intensity.getArrivalRate())); } dataset.addSeries(series); XYStepRenderer renderer = new XYStepRenderer(); renderer.setSeriesPaint(0, Color.RED); renderer.setSeriesStroke(0, new BasicStroke(STROKE_WIDTH)); final NumberAxis rangeAxis = new NumberAxis("Resource Amount"); rangeAxis.setAutoRangeIncludesZero(true); //rangeAxis.setRange(0,2.2); rangeAxis.setTickUnit(new NumberTickUnit(2)); final XYPlot amountPlot = new XYPlot(dataset, null, rangeAxis, renderer); return amountPlot; }
From source file:charts.Chart.java
public static JFreeChart MultipleStepChartOverlayed(XYDataset[] datasets1, XYDataset[] datasets2, String title, String x_axis_label, String y_axis_label, boolean showlegend, float maxvalue, float minvalue, boolean showchart) { ValueAxis domainAxis = new NumberAxis(x_axis_label); domainAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); ValueAxis rangeAxis = new NumberAxis(y_axis_label); rangeAxis.setStandardTickUnits(NumberAxis.createStandardTickUnits()); if (minvalue == 0 && maxvalue == 0) { rangeAxis.setAutoRange(true);// w ww. jav a 2s .c om } else { rangeAxis.setRange(minvalue, maxvalue); } //define o grafo combinado, determinando o label do eixo x. CombinedDomainXYPlot parent = new CombinedDomainXYPlot(domainAxis); for (int i = 0; i < datasets1.length; i++) { XYItemRenderer renderer1 = new XYStepRenderer(); renderer1.setBaseStroke(new BasicStroke(2.0f)); renderer1.setBaseSeriesVisibleInLegend(showlegend); XYPlot subplot = new XYPlot(datasets1[i], domainAxis, rangeAxis, renderer1); subplot.setBackgroundPaint(Color.white); subplot.setRangeGridlinePaint(Color.black); subplot.setDomainGridlinesVisible(true); XYSplineRenderer renderer2 = new XYSplineRenderer(); renderer2.setSeriesPaint(0, Color.LIGHT_GRAY); renderer2.setBaseStroke(new BasicStroke(2.0f)); renderer2.setShapesVisible(true); renderer2.setBaseSeriesVisibleInLegend(false); subplot.setDataset(1, datasets2[i]); subplot.setRenderer(1, renderer2); parent.add(subplot, 1); } JFreeChart jfreechart = new JFreeChart(title, parent); JPanel jpanel = new ChartPanel(jfreechart); jpanel.setPreferredSize(new Dimension(defaultwidth, defaultheight)); if (showchart) { JFrame chartwindow = new JFrame(title); chartwindow.setContentPane(jpanel); chartwindow.pack(); RefineryUtilities.centerFrameOnScreen(chartwindow); chartwindow.setVisible(true); } return jfreechart; }
From source file:edu.ucla.stat.SOCR.chart.ChartGenerator_JTable.java
private JFreeChart createXYStepChart(String title, String xLabel, String yLabel, XYDataset dataset) { JFreeChart chart = ChartFactory.createXYLineChart(title, xLabel, yLabel, dataset, orientation, true, true, false);//from w ww .j ava 2s . c o m XYPlot plot = (XYPlot) chart.getPlot(); XYStepRenderer renderer = new XYStepRenderer(); // renderer.setStroke(new BasicStroke(2.0f)); // renderer.setToolTipGenerator(new StandardXYToolTipGenerator()); renderer.setDefaultEntityRadius(6); //renderer.setLegendItemLabelGenerator(new SOCRXYSeriesLabelGenerator()); plot.setRenderer(renderer); return chart; }