List of usage examples for org.jfree.chart.renderer.xy XYLineAndShapeRenderer setSeriesShapesVisible
public void setSeriesShapesVisible(int series, Boolean flag)
From source file:de.dmarcini.submatix.pclogger.gui.spx42LogGraphPanel.java
/** * Erzeuge eine Grafik fr die Nullzeitanzeige Project: SubmatixBTForPC Package: de.dmarcini.submatix.pclogger.gui * // ww w .j a v a2s .c o m * @author Dirk Marciniak (dirk_marciniak@arcor.de) Stand: 02.08.2012 * @param diveList * @param thePlot */ private void makeNulltimeGraph(Vector<Integer[]> diveList, XYPlot thePlot) { XYDataset nullTimeDataSet; // lg.debug("create nulltime dataset"); nullTimeDataSet = createXYDataset(LangStrings.getString("spx42LogGraphPanel.graph.nulltimeScalaTitle"), diveList, ProjectConst.UNITS_DEFAULT, 0, LogDerbyDatabaseUtil.NULLTIME); final XYLineAndShapeRenderer lineNullTimeRenderer = new XYLineAndShapeRenderer(true, true); final LogarithmicAxis nullTimeAxis = new LogarithmicAxis( LangStrings.getString("spx42LogGraphPanel.graph.nulltimeAxisTitle")); nullTimeAxis.setNumberFormatOverride(new DecimalFormat("#.###")); lineNullTimeRenderer.setSeriesPaint(0, new Color(ProjectConst.GRAPH_NULLTIME_ACOLOR)); lineNullTimeRenderer.setSeriesShapesVisible(0, false); lineNullTimeRenderer.setDrawSeriesLineAsPath(true); nullTimeAxis.setAutoRange(false); nullTimeAxis.setRange(0.0D, 200.0D); // Lege die Nullzeit Axenreichweite auf ein bersichtliches Ma fest // nullTimeAxis.setAutoRangeIncludesZero( true ); thePlot.setRangeAxis(GRAPH_NULLTIME, nullTimeAxis); thePlot.mapDatasetToRangeAxis(GRAPH_NULLTIME, GRAPH_NULLTIME); thePlot.setDataset(GRAPH_NULLTIME, nullTimeDataSet); thePlot.setRenderer(GRAPH_NULLTIME, lineNullTimeRenderer); }
From source file:ro.nextreports.engine.chart.JFreeChartExporter.java
private JFreeChart createLineChart() throws QueryException { XYSeriesCollection dataset = new XYSeriesCollection(); String chartTitle = replaceParameters(chart.getTitle().getTitle()); chartTitle = StringUtil.getI18nString(chartTitle, I18nUtil.getLanguageByName(chart, language)); Object[] charts = new Object[chart.getYColumns().size()]; List<String> legends = chart.getYColumnsLegends(); boolean hasLegend = false; for (int i = 0; i < charts.length; i++) { String legend = ""; try {// ww w.ja v a2s . co m legend = replaceParameters(legends.get(i)); legend = StringUtil.getI18nString(legend, I18nUtil.getLanguageByName(chart, language)); } catch (IndexOutOfBoundsException ex) { // no legend set } if ((legend != null) && !"".equals(legend.trim())) { hasLegend = true; } XYSeries lineChart = new XYSeries(legend); charts[i] = lineChart; dataset.addSeries(lineChart); } String xLegend = StringUtil.getI18nString(replaceParameters(chart.getXLegend().getTitle()), I18nUtil.getLanguageByName(chart, language)); String yLegend = StringUtil.getI18nString(replaceParameters(chart.getYLegend().getTitle()), I18nUtil.getLanguageByName(chart, language)); JFreeChart jfreechart = ChartFactory.createXYLineChart(chartTitle, // Title replaceParameters(xLegend), // x-axis Label replaceParameters(yLegend), // y-axis Label dataset, // Dataset PlotOrientation.VERTICAL, // Plot Orientation true, // Show Legend true, // Use tooltips false // Configure chart to generate URLs? ); // hide legend if necessary if (!hasLegend) { jfreechart.removeLegend(); } // hide border jfreechart.setBorderVisible(false); // title setTitle(jfreechart); // charts colors & values boolean showValues = (chart.getShowYValuesOnChart() == null) ? false : chart.getShowYValuesOnChart(); DecimalFormat decimalFormat; DecimalFormat percentageFormat; if (chart.getYTooltipPattern() == null) { decimalFormat = new DecimalFormat("#"); percentageFormat = new DecimalFormat("0.00%"); } else { decimalFormat = new DecimalFormat(chart.getYTooltipPattern()); percentageFormat = decimalFormat; } XYPlot plot = (XYPlot) jfreechart.getPlot(); for (int i = 0; i < charts.length; i++) { plot.getRenderer().setSeriesPaint(i, chart.getForegrounds().get(i)); if (showValues) { plot.getRenderer().setSeriesItemLabelsVisible(i, true); plot.getRenderer().setSeriesItemLabelGenerator(i, new StandardXYItemLabelGenerator("{2}", decimalFormat, percentageFormat)); } } if (showValues) { // increase a little bit the range axis to view all item label values over points plot.getRangeAxis().setUpperMargin(0.2); } // grid axis visibility & colors if ((chart.getXShowGrid() != null) && !chart.getXShowGrid()) { plot.setDomainGridlinesVisible(false); } else { if (chart.getXGridColor() != null) { plot.setDomainGridlinePaint(chart.getXGridColor()); } else { plot.setDomainGridlinePaint(Color.BLACK); } } if ((chart.getYShowGrid() != null) && !chart.getYShowGrid()) { plot.setRangeGridlinesVisible(false); } else { if (chart.getYGridColor() != null) { plot.setRangeGridlinePaint(chart.getYGridColor()); } else { plot.setRangeGridlinePaint(Color.BLACK); } } // chart background plot.setBackgroundPaint(chart.getBackground()); // labels color plot.getDomainAxis().setTickLabelPaint(chart.getXColor()); plot.getRangeAxis().setTickLabelPaint(chart.getYColor()); //legend color plot.getDomainAxis().setLabelPaint(chart.getXLegend().getColor()); plot.getRangeAxis().setLabelPaint(chart.getYLegend().getColor()); // legend font plot.getDomainAxis().setLabelFont(chart.getXLegend().getFont()); plot.getRangeAxis().setLabelFont(chart.getYLegend().getFont()); // hide labels if ((chart.getXShowLabel() != null) && !chart.getXShowLabel()) { plot.getDomainAxis().setTickLabelsVisible(false); plot.getDomainAxis().setTickMarksVisible(false); } if ((chart.getYShowLabel() != null) && !chart.getYShowLabel()) { plot.getRangeAxis().setTickLabelsVisible(false); plot.getRangeAxis().setTickMarksVisible(false); } // label orientation if (chart.getXorientation() == Chart.VERTICAL) { plot.getDomainAxis().setVerticalTickLabels(true); } // labels fonts plot.getDomainAxis().setTickLabelFont(chart.getXLabelFont()); plot.getRangeAxis().setTickLabelFont(chart.getYLabelFont()); // point style Shape pointShape = null; byte style = chart.getType().getStyle(); switch (style) { case ChartType.STYLE_LINE_DOT_SOLID: case ChartType.STYLE_LINE_DOT_HOLLOW: pointShape = new Ellipse2D.Float(-3.0f, -3.0f, 6.0f, 6.0f); break; case ChartType.STYLE_LINE_DOT_ANCHOR: // triangle GeneralPath s5 = new GeneralPath(); s5.moveTo(0.0f, -3.0f); s5.lineTo(3.0f, 3.0f); s5.lineTo(-3.0f, 3.0f); s5.closePath(); pointShape = s5; break; case ChartType.STYLE_LINE_DOT_BOW: GeneralPath s4 = new GeneralPath(); s4.moveTo(-3.0f, -3.0f); s4.lineTo(3.0f, -3.0f); s4.lineTo(-3.0f, 3.0f); s4.lineTo(3.0f, 3.0f); s4.closePath(); pointShape = s4; break; case ChartType.STYLE_LINE_DOT_STAR: pointShape = new Star(-3.0f, 0f).getShape(); break; default: // no shape break; } if (pointShape != null) { XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) plot.getRenderer(); renderer.setUseFillPaint(true); for (int i = 0; i < charts.length; i++) { renderer.setSeriesShapesVisible(i, true); if (style != ChartType.STYLE_LINE_DOT_SOLID) { renderer.setSeriesFillPaint(i, chart.getBackground()); } else { renderer.setSeriesFillPaint(i, chart.getForegrounds().get(i)); } renderer.setSeriesShape(i, pointShape); } } final HashMap<String, String> formatValues = createChart(plot.getRangeAxis(), charts); // in x axis does not contain number values , values are strings representing one unit if (!integerXValue) { ((NumberAxis) plot.getDomainAxis()).setTickUnit(new NumberTickUnit(1)); ((NumberAxis) plot.getDomainAxis()).setNumberFormatOverride(new DecimalFormat() { @Override public StringBuffer format(double number, StringBuffer result, FieldPosition fieldPosition) { String s = formatValues.get(String.valueOf(Math.round(number))); if (s == null) { s = ""; } return result.append(s); } }); } return jfreechart; }
From source file:de.dmarcini.submatix.pclogger.gui.spx42LogGraphPanel.java
/** * Temperaturgraph machen Project: SubmatixBTForPC Package: de.dmarcini.submatix.pclogger.gui * /*from w w w. j av a 2 s .c o m*/ * @author Dirk Marciniak (dirk_marciniak@arcor.de) Stand: 02.08.2012 * @param labels * @param thePlot * @param diveList */ private void makeTemperatureGraph(Vector<Integer[]> diveList, XYPlot thePlot, String[] labels) { XYDataset tempDataSet; Color axisColor = new Color(ProjectConst.GRAPH_TEMPERATURE_ACOLOR); Color renderColor = new Color(ProjectConst.GRAPH_TEMPERATURE_RCOLOR); // lg.debug("create temp dataset"); if (showingUnitSystem == savedUnitSystem || showingUnitSystem == ProjectConst.UNITS_DEFAULT) { // Keine nderung norwendig! tempDataSet = createXYDataset(LangStrings.getString("spx42LogGraphPanel.graph.tempScalaTitle"), diveList, ProjectConst.UNITS_DEFAULT, 0, LogDerbyDatabaseUtil.TEMPERATURE); } else { // bitte konvertiere die Einheiten ins gewnschte Format! tempDataSet = createXYDataset(LangStrings.getString("spx42LogGraphPanel.graph.tempScalaTitle"), diveList, showingUnitSystem, 0, LogDerbyDatabaseUtil.TEMPERATURE); } final XYLineAndShapeRenderer lineTemperatureRenderer = new XYLineAndShapeRenderer(true, true); final NumberAxis tempAxis = new NumberAxis( LangStrings.getString("spx42LogGraphPanel.graph.tempAxisTitle") + " " + labels[1]); tempAxis.setLabelPaint(axisColor); tempAxis.setTickLabelPaint(axisColor); tempAxis.setNumberFormatOverride(new DecimalFormat("###.##")); lineTemperatureRenderer.setSeriesPaint(0, renderColor); lineTemperatureRenderer.setSeriesShapesVisible(0, false); lineTemperatureRenderer.setDrawSeriesLineAsPath(true); tempAxis.setAutoRangeIncludesZero(true); thePlot.setRangeAxis(GRAPH_DEPTH, tempAxis); thePlot.mapDatasetToRangeAxis(GRAPH_DEPTH, 0); thePlot.setDataset(GRAPH_TEMPERATURE, tempDataSet); thePlot.setRenderer(GRAPH_TEMPERATURE, lineTemperatureRenderer); }
From source file:lucee.runtime.tag.Chart.java
private void setMarker(JFreeChart chart, Plot p) { if (!showmarkers) return;//from w ww . ja va2s. co m if (markersize < 1 || markersize > 100) markersize = 4; if (p instanceof XYPlot) { XYPlot xyp = (XYPlot) p; XYItemRenderer r = xyp.getRenderer(); if (r instanceof XYLineAndShapeRenderer) { XYLineAndShapeRenderer xyr = (XYLineAndShapeRenderer) r; xyr.setBaseShapesVisible(true); xyr.setBaseShapesFilled(true); int seriesCount = _series.size(); for (int i = 0; i < seriesCount; i++) { xyr.setSeriesShapesVisible(i, true); xyr.setSeriesItemLabelsVisible(i, true); xyr.setSeriesShape(i, ShapeUtilities.createDiamond(markersize)); xyr.setUseFillPaint(true); xyr.setBaseFillPaint(databackgroundcolor); } } } else if (p instanceof CategoryPlot) { CategoryPlot cp = (CategoryPlot) p; CategoryItemRenderer r = cp.getRenderer(); if (r instanceof LineAndShapeRenderer) { LineAndShapeRenderer lsr = (LineAndShapeRenderer) r; int seriesCount = _series.size(); for (int i = 0; i < seriesCount; i++) { lsr.setSeriesShapesVisible(i, true); lsr.setSeriesItemLabelsVisible(i, true); lsr.setSeriesShape(i, ShapeUtilities.createDiamond(markersize)); lsr.setUseFillPaint(true); lsr.setBaseFillPaint(databackgroundcolor); } } } }
From source file:de.dmarcini.submatix.pclogger.gui.spx42LogGraphPanel.java
/** * Graph fr Anteil Inertgas machen Project: SubmatixBTForPC Package: de.dmarcini.submatix.pclogger.gui * //from w w w .ja v a2 s.c om * @author Dirk Marciniak (dirk_marciniak@arcor.de) Stand: 02.08.2012 * @param diveList * @param thePlot * @param string */ private void makeInnertGasGraph(Vector<Integer[]> diveList, XYPlot thePlot, String gasName) { XYDataset percentDataSet; int graphPos; int lRenderColor; // lg.debug("create percent dataset (" + gasName + ")"); final XYLineAndShapeRenderer setpointRenderer = new XYLineAndShapeRenderer(true, true); if (0 == gasName.indexOf("he")) { percentDataSet = createXYDataset(gasName, diveList, showingUnitSystem, 0, LogDerbyDatabaseUtil.HEPERCENT); graphPos = GRAPH_HE; lRenderColor = ProjectConst.GRAPH_HE_RCOLOR; } else { percentDataSet = createXYDataset(gasName, diveList, showingUnitSystem, 0, LogDerbyDatabaseUtil.N2PERCENT); graphPos = GRAPH_N2; lRenderColor = ProjectConst.GRAPH_N2_RCOLOR; } // die Achse sollte schon erstellt sein thePlot.setDataset(graphPos, percentDataSet); thePlot.mapDatasetToRangeAxis(graphPos, GRAPH_HE); setpointRenderer.setSeriesPaint(0, new Color(lRenderColor)); setpointRenderer.setSeriesShapesVisible(0, false); setpointRenderer.setDrawSeriesLineAsPath(true); thePlot.setRenderer(graphPos, setpointRenderer); }
From source file:edu.umn.ecology.populus.plot.BasicPlotInfo.java
public ChartTheme getJFreeChartTheme() { class PopChartTheme implements ChartTheme { private BasicPlotInfo bpiRef; public PopChartTheme(BasicPlotInfo bpi) { this.bpiRef = bpi; }/*from www . j a v a 2 s .co m*/ public void apply(JFreeChart chart) { JFCXYAdapter jfca = new JFCXYAdapter(); XYPlot plot = chart.getXYPlot(); plot.setDataset(jfca); if (isLogPlot) { plot.setRangeAxis(new LogarithmicAxis("")); } if (isFrequencies) { ValueAxis va = plot.getRangeAxis(); if (va instanceof NumberAxis) { NumberAxis na = (NumberAxis) va; na.setTickUnit(new NumberTickUnit(0.1)); } else { Logging.log("Range Axis is not NumberAxis, why?", Logging.kWarn); } } if (xMinSet) plot.getDomainAxis().setLowerBound(xAxisMin); if (xMaxSet) plot.getDomainAxis().setUpperBound(xAxisMax); if (yMinSet) plot.getRangeAxis().setLowerBound(yAxisMin); if (yMaxSet) plot.getRangeAxis().setUpperBound(yAxisMax); //TODO - just use this renderer plot.setRenderer(new ChartRendererWithOrientatedShapes(bpiRef)); XYItemRenderer r = plot.getRenderer(); // AbstractXYItemRenderer r = plot.getRenderer(); if (r instanceof XYLineAndShapeRenderer) { XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) r; for (int i = 0; i < getNumSeries(); i++) { //Set Line renderer.setSeriesPaint(i, getLineColor(i)); renderer.setSeriesStroke(i, getLineStroke(i)); //Set Symbol renderer.setSeriesFillPaint(i, getSymbolColor(i)); renderer.setSeriesOutlinePaint(i, getSymbolColor(i)); Shape shape = getSymbolShape(i); if (shape != null) { renderer.setSeriesShape(i, shape); renderer.setSeriesShapesFilled(i, isSymbolOpaque(i)); renderer.setUseFillPaint(true); renderer.setUseOutlinePaint(true); renderer.setSeriesShapesVisible(i, true); } } } else if (r instanceof XYBarRenderer) { XYBarRenderer barRenderer = (XYBarRenderer) r; barRenderer.setBarPainter(new StandardXYBarPainter()); } else { Logging.log("Unknown renderer type: " + r.getClass(), Logging.kWarn); } //inner labels, used in AIDS: Therapy plot.clearAnnotations(); Enumeration<InnerLabel> e = innerLabels.elements(); while (e.hasMoreElements()) { InnerLabel lab = (InnerLabel) e.nextElement(); Logging.log("Adding " + lab.caption + " at " + lab.x + ", " + lab.y); XYTextAnnotation annotation = new XYTextAnnotation(lab.caption, lab.x, lab.y); annotation.setTextAnchor(TextAnchor.BOTTOM_CENTER); annotation.setOutlineVisible(true); plot.addAnnotation(annotation); //I actually think the annotation above is ugly. We can use one of these instead in the future, maybe... /*PointerAnnotation may look cool... * That 2.0 is the angle, randomly picked * XYPointerAnnotation annotation = new XYPointerAnnotation(lab.caption, lab.x, lab.y, 2.0); */ /* ValueMarker marker = new ValueMarker(lab.x); marker.setLabel(lab.caption); marker.setLabelAnchor(RectangleAnchor.BOTTOM_LEFT); plot.addDomainMarker(marker); */ } //This is set for GD: AMCM if (startGridded) { plot.setDomainGridlinesVisible(true); plot.setDomainGridlinePaint(Color.BLACK); plot.setRangeGridlinesVisible(true); plot.setRangeGridlinePaint(Color.BLACK); } } } return new PopChartTheme(this); }
From source file:CGgui.java
public void addMinima(double value) { //updata dataset and graph if (value != -1) { //remove previous minima for this number of CGs for (int i = 0; i < minimadataset.getItemCount(); i++) { if (minimadataset.getYValue(0, i) == CurrCG) { minimadataset.remove(minimadataset.getX(0, i), (String) key, true); break; }//from w ww . j av a 2 s.com } //add new minima minimadataset.add(value, (double) CurrCG, (String) key); } else return; //get plot XYPlot xyplot = minchart.getXYPlot(); minchart.clearSubtitles(); //set render options XYLineAndShapeRenderer renderer1 = new XYLineAndShapeRenderer(); XYLineAndShapeRenderer renderer2 = new XYLineAndShapeRenderer(); Shape shape = xyplot.getRenderer().getSeriesShape(0); renderer1.setSeriesLinesVisible(0, false); renderer1.setSeriesPaint(0, Color.RED); renderer1.setSeriesShape(0, shape); if (minimadataset.getItemCount() > 1) { renderer2.setSeriesLinesVisible(0, true); renderer2.setSeriesShapesVisible(0, false); renderer2.setBaseSeriesVisibleInLegend(false); renderer2.setSeriesPaint(0, Color.BLUE); } //get regression LineFunction2D localregline = null; XYDataset regseries; if (minimadataset.getItemCount() > 1) { //create the regression double[] reg = Regression.getOLSRegression(minimadataset, 0); //looking for x values so put x in terms of y //y = a + bx for local //x = y/b - a/b for global if (DEBUG) PrintText("Regression: y = " + reg[0] + " + " + reg[1] + "x\n"); //global (in terms of y) regLine = new LineFunction2D(-reg[0] / reg[1], 1 / reg[1]); //local (in terms of x) localregline = new LineFunction2D(reg[0], reg[1]); regseries = DatasetUtilities.sampleFunction2D(localregline, minimadataset.getDomainLowerBound(false), minimadataset.getDomainUpperBound(false), 2, "Linear Regression"); //plot line xyplot.setDataset(1, regseries); xyplot.setRenderer(1, renderer2); minchart.addSubtitle(0, new TextTitle("Regression: y = " + reg[0] + " + " + reg[1] + "x")); } xyplot.setDataset(0, minimadataset); xyplot.setRenderer(0, renderer1); //f.pack(); //System.gc(); }
From source file:edu.ucla.stat.SOCR.chart.demo.SOCR_EM_MixtureModelChartDemo.java
/** * Creates a chart.//from w ww.j av a2 s . c om * * @param dataset the data for the chart. * * @return a chart. */ // protected JFreeChart createChart(XYDataset dataset, double[][] polygons, int num_poly) { protected JFreeChart createChart(XYDataset[] dataset) { //System.out.println("createChart get called"); boolean legend = false; /*if (num_series>1&&segment_flag==false) legend = true;*/ // System.out.println("createchart: inde="+independentVarLength); // create the chart... JFreeChart chart = ChartFactory.createXYLineChart(chartTitle, // chart title "X", // x axis label "Y", // y axis label dataset[0], // data PlotOrientation.VERTICAL, legend, // include legend true, // tooltips false // urls ); //printDataset(dataset, num_series); // NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART... chart.setBackgroundPaint(Color.white); // get a reference to the plot for further customisation... XYPlot subplot1 = (XYPlot) chart.getPlot(); subplot1.setBackgroundPaint(Color.lightGray); subplot1.setAxisOffset(new RectangleInsets(5.0, 5.0, 5.0, 5.0)); subplot1.setDomainGridlinePaint(Color.white); subplot1.setRangeGridlinePaint(Color.white); XYLineAndShapeRenderer renderer1 = (XYLineAndShapeRenderer) subplot1.getRenderer(); renderer1.setBaseLinesVisible(false); renderer1.setBaseShapesVisible(true); renderer1.setBaseShapesFilled(true); int[] num_group = new int[num_series]; Paint color_mainGroup = mEMexperiment[0].getColorOfMainGroup(); // use same color for all series if EM together // System.out.println("dataset0. seriescount="+dataset[0].getSeriesCount()+" itemcount="+dataset[0].getItemCount(0)); if (num_series == 1) for (int s = 0; s < dataset[0].getSeriesCount(); s++) { renderer1.setSeriesLinesVisible(s, false); renderer1.setSeriesShapesVisible(s, true); renderer1.setSeriesShapesFilled(s, true); renderer1.setSeriesShape(s, series_shapes[0]); // for the shape of the dots renderer1.setSeriesPaint(s, color_mainGroup); } // System.out.println("num_series="+num_series); // System.out.println("num_group="+num_group); // System.out.println("segment_flag="+segment_flag); if (legend) { LegendItemCollection legends_old = subplot1.getFixedLegendItems(); LegendItemCollection legends_new = new LegendItemCollection(); for (int s = 0; s < num_series; s++) { legends_new.add(legends_old.get(s)); } subplot1.setFixedLegendItems(legends_new); } //segment for (int s = 0; s < num_series; s++) { num_group[s] = mEMexperiment[s].getNumOfGroup(); } // System.out.println("num_group[0]="+num_group[0]); if (num_group[0] > 0 && segment_flag && (mixSelected == CG_MIX)) { Paint[] color_groups = mEMexperiment[0].getColorOfGroups(); for (int i = 0; i < num_group[0] - 1; i++) { //System.out.println("color "+ i +"=" + color_groups[i].toString()); renderer1.setSeriesPaint(i, color_groups[i]); } //System.out.println("color main ="+ color_mainGroup.toString()); renderer1.setSeriesPaint(nkSelected, color_mainGroup); } else renderer1.setBasePaint(color_mainGroup); // renderer1.setShape(series_shapes[0]); // subplot1.setDataset(0, dataset[0]); //System.out.println("setting renderer for " +0); // subplot1.setRenderer(0, renderer1); // System.out.println("SOCR_EM creatChart: pt0="+dataset.getXValue(0, 0)+ ","+dataset.getYValue(0, 0)); // change the auto tick unit selection to integer units only... NumberAxis rangeAxis = (NumberAxis) subplot1.getRangeAxis(); rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); rangeAxis.setAutoRangeIncludesZero(true); // rangeAxis.setUpperMargin(0); // rangeAxis.setLowerMargin(0); NumberAxis domainAxis = (NumberAxis) subplot1.getDomainAxis(); domainAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); domainAxis.setAutoRangeIncludesZero(true); // domainAxis.setUpperMargin(0); // domainAxis.setLowerMargin(0); XYLineAndShapeRenderer[] renderer1a = new XYLineAndShapeRenderer[num_series]; if (num_series > 1) { for (int s = 0; s < num_series; s++) { // System.out.println("adding pt for series:"+s +": seriesCount "+ dataset[s].getSeriesCount()+"itemcount="+dataset[s].getItemCount(0)); renderer1a[s] = new XYLineAndShapeRenderer(); if (num_group[0] > 0 && segment_flag && (mixSelected == CG_MIX)) { Paint[] color_groups = mEMexperiment[0].getColorOfGroups(); for (int i = 0; i < num_group[0] - 1; i++) { //System.out.println("color "+ i +"=" + color_groups[i].toString()); renderer1a[s].setSeriesPaint(i, color_groups[i]); } //System.out.println("color main ="+ color_mainGroup.toString()); renderer1a[s].setSeriesPaint(nkSelected, color_mainGroup); } else renderer1a[s].setBasePaint(color_mainGroup); renderer1a[s].setBaseLinesVisible(false); renderer1a[s].setBaseShapesVisible(true); renderer1a[s].setBaseShapesFilled(true); renderer1a[s].setBaseShape(series_shapes[s]); // different shape of dots for each pair of input subplot1.setDataset(s, dataset[s]); // System.out.println("setting renderer for " +s); subplot1.setRenderer(s, renderer1a[s]); } } if (kernels != null) { /* System.out.println("draw kernels"); System.out.println("num_series="+num_series); System.out.println("nkSelected="+nkSelected);*/ XYLineAndShapeRenderer[][] renderer2 = new XYLineAndShapeRenderer[num_series][nkSelected]; for (int s = 0; s < num_series; s++) { Paint[] color_kernels = mEMexperiment[s].getColorOfKernels(); // System.out.println("SOCR_EM creatChart adding kernels:" +num_kernels+ "ws[0]="+ws[0]); for (int i = 0; i < nkSelected; i++) { // System.out.println("drawing kernel for series: "+s +" kernel:" +i); // System.out.println("SOCR_EM creatChart: kernel "+i+" pt0="+kernels[i].getXValue(0, 0)+","+kernels[i].getYValue(0, 0)); renderer2[s][i] = new XYLineAndShapeRenderer(); renderer2[s][i].setBaseStroke(series_strokes[s]); renderer2[s][i].setBaseLinesVisible(true); renderer2[s][i].setBaseShapesVisible(false); // renderer2[s][i].setShapesFilled(false); renderer2[s][i].setBasePaint(color_kernels[i]); subplot1.setDataset(num_series - 1 + s * num_series + i + 1, kernels[s][i]); // System.out.println("setting renderer for " +(num_series-1+s*num_series+i+1)); subplot1.setRenderer(num_series - 1 + s * num_series + i + 1, renderer2[s][i]); //subplot1.setRangeAxis(i+1, rangeAxis); } //i } //s } segment_flag = false; return chart; }
From source file:edu.ucla.stat.SOCR.chart.ChartGenerator_JTable.java
private JFreeChart createXYLineChart(String title, String xLabel, String yLabel, XYDataset dataset) { // create the chart... JFreeChart chart = ChartFactory.createXYLineChart(title, // chart title xLabel, // domain axis label yLabel, // range axis label dataset, // data orientation, // orientation true, // include legend true, // tooltips false // urls );//from w w w . j a v a2 s. c o m chart.setBackgroundPaint(Color.white); XYPlot plot = chart.getXYPlot(); plot.setBackgroundPaint(Color.lightGray); plot.setRangeGridlinePaint(Color.white); plot.setDomainGridlinePaint(Color.white); plot.setNoDataMessage("No data available"); // customise the renderer... XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) plot.getRenderer(); // customise the range axis... if (lineCondition.indexOf("qq") != -1) { renderer.setBaseShapesFilled(true); renderer.setSeriesLinesVisible(1, true); renderer.setSeriesShapesVisible(1, false); renderer.setSeriesLinesVisible(0, false); renderer.setSeriesShapesVisible(0, true); NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); rangeAxis.setAutoRangeIncludesZero(false); rangeAxis.setUpperMargin(0); rangeAxis.setLowerMargin(0); // rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); NumberAxis domainAxis = (NumberAxis) plot.getDomainAxis(); domainAxis.setAutoRangeIncludesZero(false); domainAxis.setUpperMargin(0); domainAxis.setLowerMargin(0); return chart; } NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); rangeAxis.setAutoRange(false); rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); if (timeType.length() != 0) { setDateAxis(plot); } else { NumberAxis domainAxis = (NumberAxis) plot.getDomainAxis(); domainAxis.setAutoRange(false); domainAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); } // System.out.println("lineCondition "+lineCondition); if (lineCondition.indexOf("noshape") != -1) renderer.setBaseShapesVisible(false); else renderer.setBaseShapesVisible(true); if (lineCondition.indexOf("noline") != -1) renderer.setBaseLinesVisible(false); if (lineCondition.indexOf("nofill") != -1) { renderer.setBaseShapesFilled(false); renderer.setBaseFillPaint(Color.white); renderer.setDrawOutlines(true); } else { renderer.setBaseShapesFilled(true); renderer.setUseFillPaint(false); } return chart; }
From source file:net.sf.jclal.gui.view.components.chart.ExternalBasicChart.java
private JFreeChart createChart(XYDataset dataset, String title, String xTitle, String yTitle) { colors.add(Color.BLACK);//w w w . j av a 2 s .co m colors.add(1, Color.BLUE); colors.add(1, Color.RED); colors.add(1, Color.GREEN); colors.add(1, Color.YELLOW); colors.add(1, Color.CYAN); colors.add(1, Color.MAGENTA); colors.add(1, new Color(111, 83, 64)); colors.add(1, new Color(153, 51, 255)); colors.add(1, new Color(102, 204, 255)); colors.add(1, new Color(85, 80, 126)); colors.add(1, new Color(168, 80, 126)); chart = ChartFactory.createXYLineChart(title, xTitle, yTitle, dataset, PlotOrientation.VERTICAL, true, true, false); chart.setBackgroundPaint(Color.white); chart.getXYPlot().setBackgroundPaint(Color.white); chart.getXYPlot().setDomainGridlinePaint(Color.white); chart.getXYPlot().setRangeGridlinePaint(Color.white); int numSeries = series.getSeriesCount(); XYLineAndShapeRenderer renderer = ((XYLineAndShapeRenderer) chart.getXYPlot().getRenderer()); renderer.setDrawSeriesLineAsPath(true); renderer.setSeriesStroke(0, new BasicStroke(2.0F)); renderer.setSeriesStroke(1, new BasicStroke(2.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 1.0f, new float[] { 2 }, 0)); renderer.setSeriesStroke(2, new BasicStroke(2.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 1.0f, new float[] { 6.0f, 2.0f, 6.0f, 2.0f }, 0.0f)); renderer.setSeriesStroke(3, new BasicStroke(2.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 1.0f, new float[] { 12.0f, 2.0f, 2.0f, 2.0f }, 0.0f)); renderer.setSeriesStroke(4, new BasicStroke(2.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 1.0f, new float[] { 12.0f, 2.0f, 2.0f, 2.0f, 2.0f, 2.0f }, 0.0f)); renderer.setSeriesStroke(5, new BasicStroke(2.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 1.0f, new float[] { 12, 2, 12, 2, 2, 2, 2, 2, 2, 2, 2, 2 }, 0)); renderer.setSeriesStroke(6, new BasicStroke(2.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 1.0f, new float[] { 6.0f, 2.0f, 6.0f, 2.0f, 2.0f, 2.0f }, 0.0f)); renderer.setSeriesStroke(7, new BasicStroke(2.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 1.0f, new float[] { 6.0f, 2.0f, 6.0f, 2.0f, 6.0f, 2.0f, 2.0f, 2.0f, 2.0f, 2.0f, 2.0f, 2.0f }, 0.0f)); for (int i = 0; i < numSeries; i++) { if (i == colors.size()) { colors = addColors(colors, numSeries); } if (viewWithOutColor) { renderer.setSeriesPaint(i, Color.BLACK); } else { String name = series.getSeries(i).getKey().toString(); if (!controlCurveColor.containsKey(name)) { renderer.setSeriesPaint(i, colors.get(i)); controlCurveColor.put(name, colors.get(i)); } else { renderer.setSeriesPaint(i, controlCurveColor.get(name)); } renderer.setSeriesShapesVisible(i, viewPointsForm); if (viewWhiteBackground) { chart.getXYPlot().setBackgroundPaint(Color.WHITE); } } } chart.getXYPlot().setRenderer(renderer); return chart; }