List of usage examples for org.jfree.chart.renderer.xy XYLineAndShapeRenderer setSeriesShapesFilled
public void setSeriesShapesFilled(int series, Boolean flag)
From source file:jmeanshift.ChartProof.java
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed dataset.removeAllSeries();/*from w ww.j a va 2 s . c o m*/ Vector<Vector> vdataset = new Vector<Vector>(); vdataset.add(data1); vdataset.add(data2); // dataset.add(data3); //dataset.add(data4); System.out.print("["); for (int k = 0; k < data1.size(); k++) { System.out.print(" " + data1.get(k)); } System.out.print(" ]"); System.out.print("\n"); System.out.print("["); for (int k = 0; k < data1.size(); k++) { System.out.print(" " + data2.get(k)); } System.out.print(" ]"); System.out.print("\n"); MeanShift domean = new MeanShift(); double criteria = Double.parseDouble(jTextField1.getText().trim()); double band = Double.parseDouble(jTextField2.getText().trim()); domean.setMergeClusters(jcbMergeClusters.isSelected()); domean.doMeanShift(vdataset, band, criteria, jcbRandomMode.isSelected()); XYSeries[] clusters = new XYSeries[domean.getkClusters()]; XYSeries[] clustersCenter = new XYSeries[domean.getkClusters()]; XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(); //varre o numero de cluster for (int y = 0; y < domean.getkClusters(); y++) { clustersCenter[y] = new XYSeries("center " + y); dataset.addSeries(clustersCenter[y]); clusters[y] = new XYSeries("cluster " + y); dataset.addSeries(clusters[y]); double[] cc = domean.clusterCenter.get(y); clustersCenter[y].add(cc[0], cc[1]); renderer.setSeriesLinesVisible(dataset.getSeriesCount() - 2, Boolean.FALSE); renderer.setSeriesLinesVisible(dataset.getSeriesCount() - 1, Boolean.FALSE); renderer.setSeriesShape(dataset.getSeriesCount() - 2, new Rectangle2D.Double(-3.0, -3.0, 6.0, 6.0)); renderer.setSeriesShape(dataset.getSeriesCount() - 1, new Ellipse2D.Double(-2.0, -2.0, 3.0, 3.0)); renderer.setSeriesShapesFilled(dataset.getSeriesCount() - 2, Boolean.TRUE); renderer.setSeriesShapesFilled(dataset.getSeriesCount() - 1, Boolean.TRUE); for (int k = 0; k < domean.clustersMembers.size(); k++) { if (y == domean.clustersMembers.get(k)) { clusters[y].add(data1.get(k), data2.get(k)); //System.out.println("y: " + y + " x1: " +series.getX(k)+ " x2: "+series.getY(k)); } } } plot.setRenderer(renderer); }
From source file:org.esa.beam.visat.toolviews.stat.StatisticsPanel.java
private static ChartPanel getScatterPlotPanel(XIntervalSeriesCollection dataset, String xAxisLabel, String yAxisLabel, Color color, double domainBounds[], double rangeBounds[]) { // JFreeChart chart = ChartFactory.createScatterPlot( JFreeChart chart = ChartFactory.createXYLineChart(null, xAxisLabel, yAxisLabel, dataset, PlotOrientation.VERTICAL, false, // Legend? true, // tooltips false // url );//w w w . j av a2 s.c om final XYPlot xyPlot = chart.getXYPlot(); // xyPlot.setForegroundAlpha(0.85f); xyPlot.setBackgroundAlpha(0.0f); xyPlot.setNoDataMessage("No data"); xyPlot.setAxisOffset(new RectangleInsets(5, 5, 5, 10)); // todo Danny set bounds here // if (domainBounds[0] != domainBounds[1]) { // xyPlot.getDomainAxis().setLowerBound(domainBounds[0]); // xyPlot.getDomainAxis().setUpperBound(domainBounds[1]); // } // // if (rangeBounds[0] != rangeBounds[1]) { // xyPlot.getRangeAxis().setLowerBound(rangeBounds[0]); // xyPlot.getRangeAxis().setUpperBound(rangeBounds[1]); // } if (!Double.isNaN(domainBounds[0])) { xyPlot.getDomainAxis().setLowerBound(domainBounds[0]); } if (!Double.isNaN(domainBounds[1])) { xyPlot.getDomainAxis().setUpperBound(domainBounds[1]); } if (!Double.isNaN(rangeBounds[0])) { xyPlot.getRangeAxis().setLowerBound(rangeBounds[0]); } if (!Double.isNaN(rangeBounds[1])) { xyPlot.getRangeAxis().setUpperBound(rangeBounds[1]); } final XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) xyPlot.getRenderer(); renderer.setSeriesPaint(0, color); renderer.setUseFillPaint(true); renderer.setDrawOutlines(true); renderer.setSeriesShapesFilled(0, true); renderer.setSeriesFillPaint(0, color); ChartPanel chartPanel = new ChartPanel(chart); // chartPanel.setPreferredSize(new Dimension(300, 200)); return chartPanel; }
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; }// www . j a v a2s. c o 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:edu.ucla.stat.SOCR.chart.demo.SOCR_EM_MixtureModelChartDemo.java
/** * Creates a chart.//w w w.j ava 2 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; }