List of usage examples for org.jfree.chart.renderer.xy StackedXYAreaRenderer2 StackedXYAreaRenderer2
public StackedXYAreaRenderer2()
From source file:com.android.ddmuilib.net.NetworkPanel.java
/** * Create chart of recent network activity. *///from w w w .j a va 2s . c om private void createChart() { mChart = ChartFactory.createTimeSeriesChart(null, null, null, null, false, false, false); // create backing datasets and series mRxTotalSeries = new TimeSeries("RX total"); mTxTotalSeries = new TimeSeries("TX total"); mRxTotalSeries.setMaximumItemAge(HISTORY_MILLIS); mTxTotalSeries.setMaximumItemAge(HISTORY_MILLIS); mTotalCollection = new TimeSeriesCollection(); mTotalCollection.addSeries(mRxTotalSeries); mTotalCollection.addSeries(mTxTotalSeries); mRxDetailDataset = new LiveTimeTableXYDataset(); mTxDetailDataset = new LiveTimeTableXYDataset(); mTotalRenderer = new XYAreaRenderer(XYAreaRenderer.AREA); mRenderer = new StackedXYAreaRenderer2(); final XYPlot xyPlot = mChart.getXYPlot(); xyPlot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD); xyPlot.setDataset(0, mTotalCollection); xyPlot.setDataset(1, mRxDetailDataset); xyPlot.setDataset(2, mTxDetailDataset); xyPlot.setRenderer(0, mTotalRenderer); xyPlot.setRenderer(1, mRenderer); xyPlot.setRenderer(2, mRenderer); // we control domain axis manually when taking samples mDomainAxis = xyPlot.getDomainAxis(); mDomainAxis.setAutoRange(false); final NumberAxis axis = new NumberAxis(); axis.setNumberFormatOverride(new BytesFormat(true)); axis.setAutoRangeMinimumSize(50); xyPlot.setRangeAxis(axis); xyPlot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT); // draw thick line to separate RX versus TX traffic xyPlot.addRangeMarker(new ValueMarker(0, java.awt.Color.BLACK, new java.awt.BasicStroke(2))); // label to indicate that positive axis is RX traffic final ValueMarker rxMarker = new ValueMarker(0); rxMarker.setStroke(new java.awt.BasicStroke(0)); rxMarker.setLabel("RX"); rxMarker.setLabelFont(rxMarker.getLabelFont().deriveFont(30f)); rxMarker.setLabelPaint(java.awt.Color.LIGHT_GRAY); rxMarker.setLabelAnchor(RectangleAnchor.TOP_RIGHT); rxMarker.setLabelTextAnchor(TextAnchor.BOTTOM_RIGHT); xyPlot.addRangeMarker(rxMarker); // label to indicate that negative axis is TX traffic final ValueMarker txMarker = new ValueMarker(0); txMarker.setStroke(new java.awt.BasicStroke(0)); txMarker.setLabel("TX"); txMarker.setLabelFont(txMarker.getLabelFont().deriveFont(30f)); txMarker.setLabelPaint(java.awt.Color.LIGHT_GRAY); txMarker.setLabelAnchor(RectangleAnchor.BOTTOM_RIGHT); txMarker.setLabelTextAnchor(TextAnchor.TOP_RIGHT); xyPlot.addRangeMarker(txMarker); mChartComposite = new ChartComposite(mPanel, SWT.BORDER, mChart, ChartComposite.DEFAULT_WIDTH, ChartComposite.DEFAULT_HEIGHT, ChartComposite.DEFAULT_MINIMUM_DRAW_WIDTH, ChartComposite.DEFAULT_MINIMUM_DRAW_HEIGHT, 4096, 4096, true, true, true, true, false, true); final FormData data = new FormData(); data.top = new FormAttachment(mHeader); data.left = new FormAttachment(0); data.bottom = new FormAttachment(70); data.right = new FormAttachment(100); mChartComposite.setLayoutData(data); }
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++) // {//from www .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:net.atomique.ksar.graph.Graph.java
private JFreeChart makegraph(LocalDateTime start, LocalDateTime end) { long begingenerate = System.currentTimeMillis(); CombinedDomainXYPlot plot = new CombinedDomainXYPlot(axisofdate); // do the stacked stuff for (PlotStackConfig tmp : graphconfig.getStacklist().values()) { if (tmp == null) { continue; }// w w w. j av a2s. c om TimeTableXYDataset tmp2 = StackListbyName.get(tmp.getTitle()); if (tmp2 != null) { StackedXYAreaRenderer2 renderer = new StackedXYAreaRenderer2(); NumberAxis graphaxistitle = tmp.getAxis(); XYPlot temp_plot = new XYPlot(tmp2, axisofdate, graphaxistitle, renderer); for (int i = 0; i < tmp2.getSeriesCount(); i++) { Color color = GlobalOptions.getDataColor(tmp2.getSeriesKey(i).toString()); if (color != null) { renderer.setSeriesPaint(i, color); renderer.setDefaultStroke(new BasicStroke(1.0F)); } } plot.add(temp_plot, tmp.getSize()); } } // do the line stuff for (PlotStackConfig tmp : graphconfig.getPlotlist().values()) { XYItemRenderer renderer = new StandardXYItemRenderer(); ArrayList<String> t = new ArrayList<>(); String[] s = tmp.getHeaderStr().split("\\s+"); Collections.addAll(t, s); XYDataset c = create_collection(t); NumberAxis graphaxistitle = tmp.getAxis(); XYPlot tmpplot = new XYPlot(c, axisofdate, graphaxistitle, renderer); for (int i = 0; i < s.length; i++) { Color color = GlobalOptions.getDataColor(s[i]); if (color != null) { renderer.setSeriesPaint(i, color); renderer.setDefaultStroke(new BasicStroke(1.0F)); } } plot.add(tmpplot, tmp.getSize()); } if (plot.getSubplots().isEmpty()) { return null; } if (start != null && end != null) { Second g_start = convertLocalDateTimeToSecond(start); Second g_end = convertLocalDateTimeToSecond(end); axisofdate.setRange(g_start.getStart(), g_end.getEnd()); } plot.setOrientation(PlotOrientation.VERTICAL); JFreeChart mychart = new JFreeChart(graphtitle, Config.getDEFAULT_FONT(), plot, true); long endgenerate = System.currentTimeMillis(); mychart.setBackgroundPaint(Color.white); if (GlobalOptions.isDodebug()) { log.debug("graph generation: {} ms", (endgenerate - begingenerate)); } return mychart; }
From source file:org.pentaho.platform.uifoundation.chart.JFreeChartEngine.java
private static JFreeChart createStackedTimeSeriesChart( final TimeTableXYDatasetChartDefinition chartDefinition) { JFreeChart chart = null;//from w w w.j ava 2 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(); DateAxis domainAxis = new DateAxis(domainAxisLabel, TimeZone.getDefault()); ValueAxis rangeAxis = new NumberAxis(rangeAxisLabel); XYItemRenderer renderer = null; switch (chartDefinition.getChartType()) { case AREA_CHART_TYPE: renderer = chartDefinition.isStacked() ? new StackedXYAreaRenderer2() : new XYAreaRenderer(); 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:edu.ucla.stat.SOCR.chart.ChartGenerator_JTable.java
private JFreeChart createTableXYAreaChart(String title, String xLabel, String yLabel, TableXYDataset dataset) { JFreeChart chart = ChartFactory.createStackedXYAreaChart(title, // chart title xLabel, // x axis label yLabel, // y axis label dataset, // data orientation, true, // include legend true, // tooltips false // urls );/* w w w . j a v a2s .co m*/ XYPlot plot = (XYPlot) chart.getPlot(); StackedXYAreaRenderer2 renderer = new StackedXYAreaRenderer2(); // renderer.setToolTipGenerator(new StandardXYToolTipGenerator()); plot.setRenderer(0, renderer); return chart; }