List of usage examples for org.jfree.chart.renderer.xy XYBarRenderer setAutoPopulateSeriesFillPaint
public void setAutoPopulateSeriesFillPaint(boolean auto)
From source file:maltcms.ui.fileHandles.serialized.JFCPanel.java
private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboBox1ActionPerformed String s = (String) jComboBox1.getSelectedItem(); Logger.getLogger(getClass().getName()).log(Level.INFO, "Selected: {0}", s); XYPlot oldPlot = this.chartPanel.getChart().getXYPlot(); XYItemRenderer xyir = oldPlot.getRenderer(); if (xyir instanceof XYBlockRenderer) { jComboBox1.setEnabled(false);// www.j a va2 s. c o m return; } this.chartPanel.getChart().getXYPlot().setRenderer(null); int datasets = this.chartPanel.getChart().getXYPlot().getSeriesCount(); XYItemRenderer newRenderer = null; if (xyir instanceof XYLineAndShapeRenderer) { if (s.equalsIgnoreCase("lines")) { ((XYLineAndShapeRenderer) xyir).setBaseLinesVisible(true); ((XYLineAndShapeRenderer) xyir).setBaseShapesVisible(false); newRenderer = xyir; //this.chartPanel.getChart().getXYPlot().setRenderer(newRenderer); } else if (s.equalsIgnoreCase("lines and shapes")) { ((XYLineAndShapeRenderer) xyir).setBaseLinesVisible(true); ((XYLineAndShapeRenderer) xyir).setBaseShapesVisible(true); newRenderer = xyir; //this.chartPanel.getChart().getXYPlot().setRenderer(newRenderer); } else if (s.equalsIgnoreCase("shapes")) { ((XYLineAndShapeRenderer) xyir).setBaseLinesVisible(false); ((XYLineAndShapeRenderer) xyir).setBaseShapesVisible(true); newRenderer = xyir; } else if (s.equalsIgnoreCase("bars")) { XYBarRenderer xyl = new XYBarRenderer(0); StandardXYBarPainter sp = new StandardXYBarPainter(); xyl.setBarPainter(sp); xyl.setShadowVisible(false); xyl.clearSeriesPaints(true); xyl.setAutoPopulateSeriesFillPaint(false); xyl.setAutoPopulateSeriesOutlinePaint(false); xyl.setAutoPopulateSeriesPaint(false); newRenderer = xyl; } else if (s.equalsIgnoreCase("clustered bars")) { ClusteredXYBarRenderer xyl = new ClusteredXYBarRenderer(0, true); StandardXYBarPainter sp = new StandardXYBarPainter(); xyl.setBarPainter(sp); xyl.setShadowVisible(false); xyl.clearSeriesPaints(true); xyl.setAutoPopulateSeriesFillPaint(false); xyl.setAutoPopulateSeriesOutlinePaint(false); xyl.setAutoPopulateSeriesPaint(false); newRenderer = xyl; } } else { if (s.equalsIgnoreCase("lines")) { newRenderer = new XYLineAndShapeRenderer(true, false); //this.chartPanel.getChart().getXYPlot().setRenderer(newRenderer); } else if (s.equalsIgnoreCase("lines and shapes")) { newRenderer = new XYLineAndShapeRenderer(true, true); //this.chartPanel.getChart().getXYPlot().setRenderer(newRenderer); } else if (s.equalsIgnoreCase("shapes")) { newRenderer = new XYLineAndShapeRenderer(false, true); //this.chartPanel.getChart().getXYPlot().setRenderer(newRenderer); } else if (s.equalsIgnoreCase("bars")) { XYBarRenderer xyl = new XYBarRenderer(0); StandardXYBarPainter sp = new StandardXYBarPainter(); xyl.setBarPainter(sp); xyl.setShadowVisible(false); xyl.clearSeriesPaints(true); xyl.setAutoPopulateSeriesFillPaint(false); xyl.setAutoPopulateSeriesOutlinePaint(false); xyl.setAutoPopulateSeriesPaint(false); newRenderer = xyl; } else if (s.equalsIgnoreCase("clustered bars")) { ClusteredXYBarRenderer xyl = new ClusteredXYBarRenderer(0, true); StandardXYBarPainter sp = new StandardXYBarPainter(); xyl.setBarPainter(sp); xyl.setShadowVisible(false); xyl.clearSeriesPaints(true); xyl.setAutoPopulateSeriesFillPaint(false); xyl.setAutoPopulateSeriesOutlinePaint(false); xyl.setAutoPopulateSeriesPaint(false); newRenderer = xyl; } } newRenderer.setBasePaint(xyir.getBasePaint()); newRenderer.setBaseOutlinePaint(xyir.getBaseOutlinePaint()); newRenderer.setBaseItemLabelPaint(xyir.getBaseItemLabelPaint()); // XYPlot xyp = new XYPlot(); // for(int i = 0;i<oldPlot.getRangeAxisCount();i++) { // xyp.setRangeAxis(i, oldPlot.getRangeAxis(i)); // } // for(int i = 0;i<oldPlot.getDomainAxisCount();i++) { // xyp.setDomainAxis(i, oldPlot.getDomainAxis(i)); // } for (int i = 0; i < datasets; i++) { // XYDataset xyds = oldPlot.getDataset(i); // xyp.setDataset(i, xyds); newRenderer.setSeriesPaint(i, xyir.getSeriesPaint(i)); newRenderer.setSeriesOutlinePaint(i, xyir.getSeriesOutlinePaint(i)); newRenderer.setSeriesItemLabelPaint(i, xyir.getSeriesItemLabelPaint(i)); } oldPlot.setRenderer(newRenderer); // this.chartPanel.setChart(new JFreeChart(xyp)); }
From source file:org.locationtech.udig.processingtoolbox.tools.HistogramDialog.java
private void updateChart(SimpleFeatureCollection features, String field) { int bin = spinner.getSelection(); double[] values = getValues(features, field); HistogramDataset dataset = new HistogramDataset(); dataset.addSeries(field, values, bin, minMaxVisitor.getMinX(), minMaxVisitor.getMaxX()); dataset.setType(histogramType);/*from w w w . j a v a 2 s . c o m*/ JFreeChart chart = ChartFactory.createHistogram(EMPTY, null, null, dataset, PlotOrientation.VERTICAL, false, false, false); // 1. Create a single plot containing both the scatter and line chart.setBackgroundPaint(java.awt.Color.WHITE); chart.setBorderVisible(false); XYPlot plot = (XYPlot) chart.getPlot(); plot.setForegroundAlpha(0.85F); plot.setBackgroundPaint(java.awt.Color.WHITE); plot.setOrientation(PlotOrientation.VERTICAL); plot.setDomainGridlinePaint(java.awt.Color.LIGHT_GRAY); plot.setRangeGridlinePaint(java.awt.Color.LIGHT_GRAY); int fontStyle = java.awt.Font.BOLD; FontData fontData = getShell().getDisplay().getSystemFont().getFontData()[0]; NumberAxis valueAxis = new NumberAxis(cboField.getText()); valueAxis.setLabelFont(new Font(fontData.getName(), fontStyle, 12)); valueAxis.setTickLabelFont(new Font(fontData.getName(), fontStyle, 10)); valueAxis.setAutoRange(false); valueAxis.setRange(minMaxVisitor.getMinX(), minMaxVisitor.getMaxX()); String rangeAxisLabel = histogramType == HistogramType.FREQUENCY ? "Frequency" : "Ratio"; //$NON-NLS-1$ //$NON-NLS-2$ NumberAxis rangeAxis = new NumberAxis(rangeAxisLabel); rangeAxis.setLabelFont(new Font(fontData.getName(), fontStyle, 12)); rangeAxis.setTickLabelFont(new Font(fontData.getName(), fontStyle, 10)); if (histogramType == HistogramType.FREQUENCY) { rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); } XYBarRenderer renderer = (XYBarRenderer) plot.getRenderer(); renderer.setShadowVisible(false); CustomXYBarPainter.selectedColumn = -1; // init renderer.setBarPainter(new CustomXYBarPainter()); renderer.setAutoPopulateSeriesFillPaint(true); renderer.setAutoPopulateSeriesPaint(true); renderer.setShadowXOffset(3); renderer.setMargin(0.01); renderer.setBaseItemLabelsVisible(true); ItemLabelPosition pos = new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.TOP_CENTER); renderer.setBasePositiveItemLabelPosition(pos); XYToolTipGenerator plotToolTip = new StandardXYToolTipGenerator(); renderer.setBaseToolTipGenerator(plotToolTip); // color GradientPaint gp0 = new GradientPaint(0.0f, 0.0f, java.awt.Color.GRAY, 0.0f, 0.0f, java.awt.Color.LIGHT_GRAY); renderer.setSeriesPaint(0, gp0); plot.setDomainAxis(0, valueAxis); plot.setRangeAxis(0, rangeAxis); // 3. Setup line // Create the line data, renderer, and axis XYItemRenderer lineRenderer = new XYLineAndShapeRenderer(true, false); // Lines only lineRenderer.setSeriesPaint(0, java.awt.Color.RED); lineRenderer.setSeriesStroke(0, new BasicStroke(2f)); // Set the line data, renderer, and axis into plot NumberAxis xLineAxis = new NumberAxis(EMPTY); xLineAxis.setTickMarksVisible(false); xLineAxis.setTickLabelsVisible(false); xLineAxis.setAutoRange(false); NumberAxis yLineAxis = new NumberAxis(EMPTY); yLineAxis.setTickMarksVisible(false); yLineAxis.setTickLabelsVisible(false); yLineAxis.setAutoRange(false); double maxYValue = Double.MIN_VALUE; for (int i = 0; i < dataset.getItemCount(0); i++) { maxYValue = Math.max(maxYValue, dataset.getYValue(0, i)); } XYSeriesCollection lineDatset = new XYSeriesCollection(); // Vertical Average XYSeries vertical = new XYSeries("Average"); //$NON-NLS-1$ vertical.add(minMaxVisitor.getAverageX(), 0); vertical.add(minMaxVisitor.getAverageX(), maxYValue); lineDatset.addSeries(vertical); plot.setDataset(1, lineDatset); plot.setRenderer(1, lineRenderer); plot.setDomainAxis(1, xLineAxis); plot.setRangeAxis(1, yLineAxis); // Map the line to the second Domain and second Range plot.mapDatasetToDomainAxis(1, 0); plot.mapDatasetToRangeAxis(1, 0); chartComposite.setChart(chart); chartComposite.forceRedraw(); }