Example usage for org.jfree.chart.renderer.xy XYLineAndShapeRenderer setSeriesPaint

List of usage examples for org.jfree.chart.renderer.xy XYLineAndShapeRenderer setSeriesPaint

Introduction

In this page you can find the example usage for org.jfree.chart.renderer.xy XYLineAndShapeRenderer setSeriesPaint.

Prototype

public void setSeriesPaint(int series, Paint paint) 

Source Link

Document

Sets the paint used for a series and sends a RendererChangeEvent to all registered listeners.

Usage

From source file:iDynoOptimizer.MOEAFramework26.src.org.moeaframework.analysis.diagnostics.ApproximationSetViewer.java

/**
 * Updates the display.  This method must only be invoked on the event
 * dispatch thread./*w w  w .j  av  a  2  s  . c o  m*/
 */
protected void update() {
    XYSeriesCollection dataset = new XYSeriesCollection();

    //generate approximation set
    for (int seedIndex : seedList.getSelectedIndices()) {
        Accumulator accumulator = accumulators.get(seedIndex);
        int index = 0;

        if (!accumulator.keySet().contains("Approximation Set")) {
            continue;
        }

        while ((index < accumulator.size("NFE") - 1)
                && ((Integer) accumulator.get("NFE", index) < slider.getValue())) {
            index++;
        }

        List<?> list = (List<?>) accumulator.get("Approximation Set", index);
        XYSeries series = new XYSeries(localization.getString("text.seed", seedIndex + 1), false, true);

        for (Object object : list) {
            Solution solution = (Solution) object;
            series.add(getValue(solution, 0), getValue(solution, 1));
        }

        dataset.addSeries(series);
    }

    //generate reference set
    if (referenceSet != null) {
        XYSeries series = new XYSeries(localization.getString("text.referenceSet"), false, true);

        for (Solution solution : referenceSet) {
            series.add(getValue(solution, 0), getValue(solution, 1));
        }

        dataset.addSeries(series);
    }

    JFreeChart chart = ChartFactory.createScatterPlot(getTitle() + " @ " + slider.getValue() + " NFE",
            (String) xAxisSelection.getSelectedItem(), (String) yAxisSelection.getSelectedItem(), dataset,
            PlotOrientation.VERTICAL, true, true, false);

    //set the renderer to only display shapes
    XYPlot plot = chart.getXYPlot();
    XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(false, true);

    for (int i = 0; i < dataset.getSeriesCount(); i++) {
        Paint paint = paintHelper.get(dataset.getSeriesKey(i));
        renderer.setSeriesPaint(i, paint);
    }

    plot.setRenderer(renderer);

    //set the zoom based on the user's preferences
    if ((initialRangeBounds == null) || (initialDomainBounds == null)) {
        initialRangeBounds = plot.getRangeAxis().getRange();
        initialDomainBounds = plot.getDomainAxis().getRange();
    }

    if (useInitialBounds.isSelected()) {
        plot.getRangeAxis().setRange(initialRangeBounds);
        plot.getDomainAxis().setRange(initialDomainBounds);
    } else if (useZoomBounds.isSelected()) {
        if ((zoomRangeBounds == null) || (zoomDomainBounds == null)) {
            zoomRangeBounds = initialRangeBounds;
            zoomDomainBounds = initialDomainBounds;
        }

        plot.getRangeAxis().setRange(zoomRangeBounds);
        plot.getDomainAxis().setRange(zoomDomainBounds);
    } else if (useReferenceSetBounds.isSelected()) {
        if (referenceRangeBounds.getLength() > 0.0) {
            plot.getRangeAxis().setRange(referenceRangeBounds);
        }

        if (referenceDomainBounds.getLength() > 0.0) {
            plot.getDomainAxis().setRange(referenceDomainBounds);
        }
    }

    //register with the chart to receive zoom events
    chart.addChangeListener(this);

    chartContainer.removeAll();
    chartContainer.add(new ChartPanel(chart), BorderLayout.CENTER);
    chartContainer.revalidate();
    chartContainer.repaint();
}

From source file:org.esa.beam.visat.toolviews.stat.ProfilePlotPanel.java

private void configureRendererForCorrelativeData(XYLineAndShapeRenderer renderer) {
    renderer.setSeriesLinesVisible(1, false);
    renderer.setSeriesShapesVisible(1, true);
    renderer.setSeriesStroke(1, new BasicStroke(1.0f));
    renderer.setSeriesPaint(1, StatisticChartStyling.CORRELATIVE_POINT_PAINT);
    renderer.setSeriesFillPaint(1, StatisticChartStyling.CORRELATIVE_POINT_FILL_PAINT);
    renderer.setSeriesShape(1, StatisticChartStyling.CORRELATIVE_POINT_SHAPE);
}

From source file:com.epiq.bitshark.ui.FrequencyDomainPanel.java

/**
 * Initialize the graph/*  w ww.  jav a  2  s .c om*/
 */
private void initGraph() {

    this.series = new BasicSeries("FFT");
    XYSeriesCollection dataset = new XYSeriesCollection(series);

    JFreeChart graph = ChartFactory.createXYLineChart(null, // title
            "", // no x-axis label
            "", // no y-axis label
            dataset, // data
            PlotOrientation.VERTICAL, false, // no legend
            false, // no tooltips
            false // no URLs
    );

    graph.setBorderVisible(false);
    graph.setPadding(new RectangleInsets(-5, 0, 0, 0));
    graph.setBackgroundPaint(null);
    graph.setBackgroundImageAlpha(0.0f);
    graph.setAntiAlias(true);

    plot = (XYPlot) graph.getPlot();

    powerAxis = new PowerAxis();
    plot.setRangeAxis(powerAxis);

    frequencyAxis = new FrequencyAxis();
    frequencyAxis.setTickLabelInsets(new RectangleInsets(10, 0, 0, 0));
    plot.setDomainAxis(frequencyAxis);

    XYItemRenderer r = plot.getRenderer();
    if (r instanceof XYLineAndShapeRenderer) {
        XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) r;
        renderer.setBaseShapesVisible(false);
        renderer.setBaseShapesFilled(true);
        renderer.setSeriesPaint(0, Common.EPIQ_GREEN);
        renderer.setSeriesStroke(0, new BasicStroke(1.0f));
    }

    plot.setBackgroundAlpha(0.0f);
    plot.setBackgroundPaint(null);
    plot.setDomainGridlinePaint(Color.LIGHT_GRAY);
    plot.setRangeGridlinePaint(Color.LIGHT_GRAY);
    plot.setAxisOffset(new RectangleInsets(0, 0, 0, 0));

    // X-axis setup
    plot.getDomainAxis().setAutoRange(false);
    plot.getDomainAxis().setVisible(true);
    plot.getDomainAxis().setRange(0, FMCUartClient.BLOCK_SIZE - 1);
    plot.setDomainCrosshairVisible(false);
    plot.setDomainCrosshairPaint(new Color(46, 46, 46));

    // Y-axis setup
    plot.getRangeAxis().setAutoRange(false);
    plot.getRangeAxis().setVisible(true);
    plot.getRangeAxis().setRange(-50, 70);
    plot.setRangeCrosshairVisible(false);

    markerAnnotation.setVisible(false);
    plot.addAnnotation(markerAnnotation);
    plot.addAnnotation(markerTextAnnotation);

    this.markerTitle.setFont(new Font("Tahoma", Font.BOLD, 12));
    this.markerTitle.setFrame(new BlockBorder(new Color(46, 46, 46)));
    this.markerTitle.setBackgroundPaint(new Color(200, 200, 255, 100));
    this.markerTitle.setText("");
    this.markerTitle.setPadding(5, 15, 5, 15);
    this.markerTitle.setExpandToFitSpace(false);
    this.markerTitle.setBounds(new Rectangle2D.Double(0, 0, 100, 30));

    chartPanel = new ChartPanel(graph, false);
    chartPanel.setMaximumDrawWidth(Integer.MAX_VALUE);
    chartPanel.setMaximumDrawHeight(Integer.MAX_VALUE);
    chartPanel.setMinimumDrawWidth(0);
    chartPanel.setMinimumDrawHeight(0);
    chartPanel.setMouseZoomable(true);
    chartPanel.setOpaque(false);

    chartPanel.addChartMouseListener(new ChartMouseListener() {

        @Override
        public void chartMouseClicked(ChartMouseEvent event) {
            markerLocked = !markerLocked;
        }

        @Override
        public void chartMouseMoved(ChartMouseEvent event) {
            updateMouseMarker(event);
        }

    });

    chartPanel.addMouseListener(new MouseListener() {
        @Override
        public void mouseClicked(MouseEvent e) {
        }

        @Override
        public void mousePressed(MouseEvent e) {
        }

        @Override
        public void mouseReleased(MouseEvent e) {
        }

        @Override
        public void mouseEntered(MouseEvent e) {
        }

        @Override
        public void mouseExited(MouseEvent e) {
            if (!markerLocked) {
                markerAnnotation.setVisible(false);
                plot.setDomainCrosshairVisible(false);
                markerTitle.setVisible(false);
                markerTitle.setText("");
            }
        }

    });

    chartPanel.addMouseWheelListener(new MouseWheelListener() {
        @Override
        public void mouseWheelMoved(MouseWheelEvent e) {
            int clicks = e.getWheelRotation();
            plot.getRangeAxis().setUpperBound(plot.getRangeAxis().getUpperBound() + clicks);
            plot.getRangeAxis().setLowerBound(plot.getRangeAxis().getLowerBound() + clicks);
        }
    });

}

From source file:com.rapidminer.gui.plotter.charts.MultipleSeriesChartPlotter.java

private JFreeChart createChart() {

    // create the chart...
    JFreeChart chart = ChartFactory.createXYLineChart(null, // chart title
            null, // x axis label
            null, // y axis label
            null, // data
            PlotOrientation.VERTICAL, false, // include legend
            true, // tooltips
            false // urls
    );//w  ww  .  j a va 2  s . com

    chart.setBackgroundPaint(Color.white);

    // get a reference to the plot for further customization...
    XYPlot plot = (XYPlot) chart.getPlot();
    plot.setBackgroundPaint(Color.WHITE);
    plot.setAxisOffset(new RectangleInsets(5.0, 5.0, 5.0, 5.0));
    plot.setDomainGridlinePaint(Color.LIGHT_GRAY);
    plot.setRangeGridlinePaint(Color.LIGHT_GRAY);

    // domain axis

    if ((indexAxis >= 0) && (!dataTable.isNominal(indexAxis))) {
        if ((dataTable.isDate(indexAxis)) || (dataTable.isDateTime(indexAxis))) {
            DateAxis domainAxis = new DateAxis(dataTable.getColumnName(indexAxis));
            domainAxis.setTimeZone(Tools.getPreferredTimeZone());
            chart.getXYPlot().setDomainAxis(domainAxis);
        }
    } else {
        plot.getDomainAxis().setStandardTickUnits(NumberAxis.createIntegerTickUnits(Locale.US));
        ((NumberAxis) plot.getDomainAxis()).setAutoRangeStickyZero(false);
        ((NumberAxis) plot.getDomainAxis()).setAutoRangeIncludesZero(false);
    }
    ValueAxis xAxis = plot.getDomainAxis();
    if (indexAxis > -1) {
        xAxis.setLabel(getDataTable().getColumnName(indexAxis));
    } else {
        xAxis.setLabel(SERIESINDEX_LABEL);
    }
    xAxis.setAutoRange(true);
    xAxis.setLabelFont(LABEL_FONT_BOLD);
    xAxis.setTickLabelFont(LABEL_FONT);
    xAxis.setVerticalTickLabels(isLabelRotating());
    if (indexAxis > 0) {
        if (getRangeForDimension(indexAxis) != null) {
            xAxis.setRange(getRangeForDimension(indexAxis));
        }
    } else {
        if (getRangeForName(SERIESINDEX_LABEL) != null) {
            xAxis.setRange(getRangeForName(SERIESINDEX_LABEL));
        }
    }

    // renderer and range axis
    synchronized (dataTable) {
        int numberOfSelectedColumns = 0;
        for (int c = 0; c < dataTable.getNumberOfColumns(); c++) {
            if (getPlotColumn(c)) {
                if (dataTable.isNumerical(c)) {
                    numberOfSelectedColumns++;
                }
            }
        }

        int columnCount = 0;
        for (int c = 0; c < dataTable.getNumberOfColumns(); c++) {
            if (getPlotColumn(c)) {
                if (dataTable.isNumerical(c)) {
                    // YIntervalSeries series = new
                    // YIntervalSeries(this.dataTable.getColumnName(c));
                    XYSeriesCollection dataset = new XYSeriesCollection();
                    XYSeries series = new XYSeries(dataTable.getColumnName(c));
                    Iterator<DataTableRow> i = dataTable.iterator();
                    int index = 1;
                    while (i.hasNext()) {
                        DataTableRow row = i.next();
                        double value = row.getValue(c);

                        if ((indexAxis >= 0) && (!dataTable.isNominal(indexAxis))) {
                            double indexValue = row.getValue(indexAxis);
                            series.add(indexValue, value);
                        } else {
                            series.add(index++, value);
                        }
                    }
                    dataset.addSeries(series);

                    XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();

                    Color color = getColorProvider().getPointColor(1.0d);
                    if (numberOfSelectedColumns > 1) {
                        color = getColorProvider()
                                .getPointColor(columnCount / (double) (numberOfSelectedColumns - 1));
                    }
                    renderer.setSeriesPaint(0, color);
                    renderer.setSeriesStroke(0,
                            new BasicStroke(1.5f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND));
                    renderer.setSeriesShapesVisible(0, false);

                    NumberAxis yAxis = new NumberAxis(dataTable.getColumnName(c));
                    if (getRangeForDimension(c) != null) {
                        yAxis.setRange(getRangeForDimension(c));
                    } else {
                        yAxis.setAutoRange(true);
                        yAxis.setAutoRangeStickyZero(false);
                        yAxis.setAutoRangeIncludesZero(false);
                    }
                    yAxis.setLabelFont(LABEL_FONT_BOLD);
                    yAxis.setTickLabelFont(LABEL_FONT);
                    if (numberOfSelectedColumns > 1) {
                        yAxis.setAxisLinePaint(color);
                        yAxis.setTickMarkPaint(color);
                        yAxis.setLabelPaint(color);
                        yAxis.setTickLabelPaint(color);
                    }

                    plot.setRangeAxis(columnCount, yAxis);
                    plot.setRangeAxisLocation(columnCount, AxisLocation.TOP_OR_LEFT);

                    plot.setDataset(columnCount, dataset);
                    plot.setRenderer(columnCount, renderer);
                    plot.mapDatasetToRangeAxis(columnCount, columnCount);

                    columnCount++;
                }
            }
        }
    }

    chart.setBackgroundPaint(Color.white);

    return chart;
}

From source file:com.joey.software.regionSelectionToolkit.controlers.ImageProfileToolDynamicRangePanel.java

public void updatePlotPanel() {
    // Chack data size of
    int length = getDataLength();

    if (xData.length != length) {
        xData = new float[length];
    }//from w w  w.j  ava2 s  .c  om

    if (aScan.length != length) {
        aScan = new float[length];
    }

    // Update X Range
    float[] range = xRange;
    for (int i = 0; i < xData.length; i++) {
        xData[i] = (range[0] + (range[1] - range[0]) * (i / (xData.length - 1)));
    }

    updateAScan();

    XYSeriesCollection datCol1 = PlotingToolkit.getCollection(xData, aScan, "Data");

    XYLineAndShapeRenderer dataRender1 = new XYLineAndShapeRenderer(true, false);

    dataRender1.setSeriesPaint(0, Color.CYAN);
    dataPlot.getXYPlot().setRenderer(0, dataRender1);
    dataPlot.getXYPlot().setDataset(0, datCol1);
}

From source file:org.gwaspi.gui.reports.ManhattanPlotZoom.java

private JFreeChart createChart(XYDataset dataset, ChromosomeKey chr) {
    JFreeChart chart = ChartFactory.createScatterPlot(null, "", "P value", dataset, PlotOrientation.VERTICAL,
            true, false, false);//  ww w .j a va 2 s  .c o m

    XYPlot plot = (XYPlot) chart.getPlot();
    plot.setNoDataMessage("NO DATA");
    plot.setDomainZeroBaselineVisible(true);
    plot.setRangeZeroBaselineVisible(true);

    // CHART BACKGROUD COLOR
    chart.setBackgroundPaint(Color.getHSBColor(0.1f, 0.1f, 1.0f)); // Hue, saturation, brightness
    plot.setBackgroundPaint(manhattan_back); // Hue, saturation, brightness 9

    // GRIDLINES
    plot.setDomainGridlineStroke(new BasicStroke(0.0f));
    plot.setDomainMinorGridlineStroke(new BasicStroke(0.0f));
    plot.setDomainGridlinePaint(manhattan_back.darker().darker()); // Hue, saturation, brightness 7
    plot.setDomainMinorGridlinePaint(manhattan_back); // Hue, saturation, brightness 9
    plot.setRangeGridlineStroke(new BasicStroke(0.0f));
    plot.setRangeMinorGridlineStroke(new BasicStroke(0.0f));
    plot.setRangeGridlinePaint(manhattan_back.darker().darker()); // Hue, saturation, brightness 7
    plot.setRangeMinorGridlinePaint(manhattan_back.darker()); // Hue, saturation, brightness 8

    plot.setDomainMinorGridlinesVisible(true);
    plot.setRangeMinorGridlinesVisible(true);

    // DOTS RENDERER
    XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) plot.getRenderer();
    renderer.setSeriesPaint(0, manhattan_dot);
    //      renderer.setSeriesOutlinePaint(0, Color.DARK_GRAY);
    //      renderer.setUseOutlinePaint(true);
    // Set dot shape of the currently appended Series
    renderer.setSeriesShape(0, new Rectangle2D.Double(0.0, 0.0, 2, 2));

    renderer.setSeriesVisibleInLegend(0, false);

    NumberAxis positionAxis = (NumberAxis) plot.getDomainAxis();
    //      domainAxis.setAutoRangeIncludesZero(false);
    //      domainAxis.setTickMarkInsideLength(2.0f);
    //      domainAxis.setTickMarkOutsideLength(2.0f);
    //      domainAxis.setMinorTickCount(2);
    //      domainAxis.setMinorTickMarksVisible(true);
    positionAxis.setLabelAngle(1.0);
    positionAxis.setAutoRangeIncludesZero(false);
    positionAxis.setAxisLineVisible(true);
    positionAxis.setTickLabelsVisible(true);
    positionAxis.setTickMarksVisible(true);

    // ADD INVERSE LOG(10) Y AXIS
    LogAxis logPAxis = new LogAxis("P value");
    logPAxis.setBase(10);
    logPAxis.setInverted(true);
    logPAxis.setNumberFormatOverride(GenericReportGenerator.FORMAT_P_VALUE);

    logPAxis.setTickMarkOutsideLength(2.0f);
    logPAxis.setMinorTickCount(2);
    logPAxis.setMinorTickMarksVisible(true);
    logPAxis.setAxisLineVisible(true);
    logPAxis.setUpperMargin(0);

    TickUnitSource units = NumberAxis.createIntegerTickUnits();
    logPAxis.setStandardTickUnits(units);
    plot.setRangeAxis(0, logPAxis);

    // Add significance Threshold to subplot
    //threshold = 0.5/rdMatrixMetadata.getMarkerSetSize();  // (0.05/10? SNPs => 5*10-?)
    final Marker thresholdLine = new ValueMarker(threshold);
    thresholdLine.setPaint(Color.red);
    // Add legend to threshold
    thresholdLine.setLabel("P = " + GenericReportGenerator.FORMAT_P_VALUE.format(threshold));
    thresholdLine.setLabelAnchor(RectangleAnchor.TOP_RIGHT);
    thresholdLine.setLabelTextAnchor(TextAnchor.BOTTOM_RIGHT);
    plot.addRangeMarker(thresholdLine);

    // Marker label if below threshold
    XYItemRenderer lblRenderer = plot.getRenderer();

    // THRESHOLD AND SELECTED LABEL GENERATOR
    MySeriesItemLabelGenerator lblGenerator = new MySeriesItemLabelGenerator(threshold, chr);
    lblRenderer.setSeriesItemLabelGenerator(0, lblGenerator);
    lblRenderer.setSeriesItemLabelFont(0, new Font("SansSerif", Font.PLAIN, 12));
    lblRenderer.setSeriesPositiveItemLabelPosition(0, new ItemLabelPosition(ItemLabelAnchor.CENTER,
            TextAnchor.TOP_LEFT, TextAnchor.BOTTOM_LEFT, Math.PI / 4.0));

    // TOOLTIP GENERATOR
    MyXYToolTipGenerator tooltipGenerator = new MyXYToolTipGenerator(chr);

    lblRenderer.setBaseToolTipGenerator(tooltipGenerator);

    lblRenderer.setSeriesItemLabelsVisible(0, true);

    return chart;
}

From source file:de.bund.bfr.knime.pmmlite.views.chart.ChartCreator.java

private List<XYItemRenderer> createStrictRenderers(String id, int n) {
    List<XYItemRenderer> renderers = new ArrayList<>();
    List<Color> colorList = colorLists.containsKey(id) ? colorLists.get(id) : ChartUtils.createColorList(n);
    List<NamedShape> shapeList = shapeLists.containsKey(id) ? shapeLists.get(id)
            : ChartUtils.createShapeList(n);

    for (int i = 0; i < n; i++) {
        XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(drawLines, true);

        renderer.setBaseToolTipGenerator(new StandardXYToolTipGenerator());
        renderer.setSeriesPaint(0, colorList.get(i));
        renderer.setSeriesShape(0, shapeList.get(i).getShape());
        renderers.add(renderer);//from   ww  w. ja  v  a 2s.  co m
    }

    return renderers;
}

From source file:com.sdk.connector.chart.CoherenceDomainRenderer.java

public CoherenceDomainRenderer(final String title, JPanel panel, String side) {
    sdf = Protocol.getInstance().getTimestampFormat();

    serieFFT.setKey(side + " FFT Based");
    serieLomb.setKey(side + " Lomb Based");
    serieMemse.setKey(side + " AR Based");

    dataset.addSeries(serieFFT);// w  w w. j a v a 2 s .  com
    dataset.addSeries(serieLomb);
    dataset.addSeries(serieMemse);

    chart = ChartFactory.createTimeSeriesChart(title,
            java.util.ResourceBundle.getBundle("com/sdk/connector/chart/Bundle").getString("coherence.xlabel"),
            java.util.ResourceBundle.getBundle("com/sdk/connector/chart/Bundle").getString("coherence.ylabel"),
            dataset, true, true, false);

    chart.getRenderingHints().put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
    chart.getRenderingHints().put(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);

    chart.getRenderingHints().put(RenderingHints.KEY_ALPHA_INTERPOLATION,
            RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY);
    chart.getRenderingHints().put(RenderingHints.KEY_FRACTIONALMETRICS,
            RenderingHints.VALUE_FRACTIONALMETRICS_ON);
    chart.getRenderingHints().put(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);
    chart.getRenderingHints().put(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_NORMALIZE);
    chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
    chart.getRenderingHints().put(RenderingHints.KEY_TEXT_LCD_CONTRAST, 100);
    //chart.setBackgroundPaint(new GradientPaint(0, 0, Color.white, 0, 1000, Color.GREEN));
    // chart.setBackgroundPaint(new Color(220,255,220,0));
    //chart.setBackgroundImage(new javax.swing.ImageIcon(getClass().getResource("/com/sdk/connector/resources/background.png")).getImage());
    chart.addSubtitle(rangeAnnotation);
    plot = (XYPlot) chart.getPlot();

    XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
    renderer.setSeriesLinesVisible(0, true);
    renderer.setSeriesShapesVisible(0, true);
    renderer.setBaseToolTipGenerator(new StandardXYToolTipGenerator(
            StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT, sdf, new DecimalFormat("0.00")));
    renderer.setSeriesOutlinePaint(0, Color.BLACK);

    if (side.startsWith(
            java.util.ResourceBundle.getBundle("com/sdk/connector/chart/Bundle").getString("side.left"))) {
        renderer.setSeriesPaint(0, Color.BLUE);
        leftSide = true;
    } else {
        renderer.setSeriesPaint(0, Color.RED);
        leftSide = false;
    }
    renderer.setSeriesShape(0, new Ellipse2D.Double(-1.0, -1.0, 3.0, 3.0));

    DateTickUnit dtUnit = new DateTickUnit(DateTickUnitType.MINUTE, 1, tickSDF);
    final DateAxis domainAxis = (DateAxis) plot.getDomainAxis();
    domainAxis.setTickUnit(dtUnit);

    //        ValueAxis axis = plot.getDomainAxis();
    //        axis = plot.getRangeAxis();
    //        ((NumberAxis) axis).setTickUnit(new NumberTickUnit(100));

    plot.setRenderer(renderer);
    plot.setBackgroundPaint(Color.WHITE);
    plot.setDomainGridlinePaint(Color.BLACK);
    plot.setRangeGridlinePaint(Color.BLACK);
    plot.getRenderer().setSeriesStroke(0, new BasicStroke(1.0f));
    // plot.getRenderer().setSeriesStroke(1, new BasicStroke(1.0f));
    plot.setForegroundAlpha(0.5f);
    plot.setNoDataMessage(
            java.util.ResourceBundle.getBundle("com/sdk/connector/chart/Bundle").getString("message.wait"));
    plot.setRangePannable(true);
    plot.setDomainPannable(true);
    Color color1 = new Color(0, 0, 0, 24);
    Color color2 = new Color(255, 255, 255, 24);

    GradientPaint gp = new GradientPaint(0, 0, color1, 0, 0, color2);
    plot.setBackgroundPaint(gp);

    chartPanel = new ChartPanel(chart);

    panel.setLayout(new GridLayout(0, 1));

    panel.add(chartPanel);
    panel.repaint();
    panel.revalidate();

}

From source file:org.pentaho.aggdes.ui.form.controller.AggListController.java

public void changeInAggregates() {

    // set dirty bit for workspace
    workspace.setWorkspaceUpToDate(false);

    // set the dirty bit for the schema publishing functionality

    if (getConnectionModel().getSchema() != null) {
        getConnectionModel().setSchemaUpToDate(false);
    }/*  ww w  . ja v a 2  s  .c om*/

    // configure summary model and chart values

    int totalAggregatesSelected = 0;
    double totalRows = 0;
    double totalSpace = 0;
    double totalLoadTime = 0;

    //Fire event
    AggListController.this.firePropertyChange("aggList", null, aggList);

    List<Aggregate> algoAggregates = new ArrayList<Aggregate>();
    for (UIAggregate aggregate : getAggList()) {
        if (aggregate.getEnabled()) {
            totalAggregatesSelected++;
            totalRows += aggregate.estimateRowCount();
            totalSpace += aggregate.estimateSpace();
            algoAggregates
                    .add(algorithm.createAggregate(connectionModel.getSchema(), aggregate.getAttributes()));
        }
    }

    double[] xs = new double[algoAggregates.size()];
    double[] startx = new double[algoAggregates.size()];
    double[] endx = new double[algoAggregates.size()];

    double[] ys = new double[algoAggregates.size()];
    double[] starty = new double[algoAggregates.size()];
    double[] endy = new double[algoAggregates.size()];

    XYSeries series1 = new XYSeries("CostBenefit");
    XYSeriesCollection dataset = new XYSeriesCollection();
    dataset.addSeries(series1);
    DefaultIntervalXYDataset datasetxy = new DefaultIntervalXYDataset();

    if (connectionModel.getSchema() != null) {

        Map<Parameter, Object> algorithmParams = ArgumentUtils.validateParameters(algorithm,
                algorithmUiExtension.getAlgorithmParameters());
        List<Algorithm.CostBenefit> costBenefit = algorithm.computeAggregateCosts(connectionModel.getSchema(),
                algorithmParams, algoAggregates);

        double totalbenefit = 0;
        double x = 0;
        int count = 0;
        for (Algorithm.CostBenefit cb : costBenefit) {
            Aggregate agg = algoAggregates.get(count);
            double estimateSpace = agg.estimateSpace();
            double hx = estimateSpace / 2;
            totalLoadTime += cb.getLoadTime();
            totalbenefit += cb.getSavedQueryRowCount();
            series1.add(x + hx, totalbenefit);

            xs[count] = x + hx;
            startx[count] = x;
            x += estimateSpace;
            endx[count] = x;

            ys[count] = totalbenefit;
            starty[count] = 0;
            endy[count] = 0;

            count++;
        }

        // update summary table

        aggregateSummaryModel.setSelectedAggregateCount(format.format(totalAggregatesSelected));
        aggregateSummaryModel.setSelectedAggregateRows(format.format(totalRows));
        aggregateSummaryModel.setSelectedAggregateSpace(format.format(totalSpace) + " bytes");
        aggregateSummaryModel.setSelectedAggregateLoadTime(format.format(totalLoadTime));
    } else {
        aggregateSummaryModel.setSelectedAggregateCount("");
        aggregateSummaryModel.setSelectedAggregateRows("");
        aggregateSummaryModel.setSelectedAggregateSpace("");
        aggregateSummaryModel.setSelectedAggregateLoadTime("");

    }
    // render cost benefit chart

    double[][] data = new double[][] { xs, startx, endx, ys, starty, endy };
    datasetxy.addSeries("", data);

    JFreeChart chart = ChartFactory.createXYBarChart("", // chart title
            "Cost", // x axis label
            false, "Benefit", // y axis label
            datasetxy, // data
            PlotOrientation.VERTICAL, // orientation
            false, // include legend
            false, // tooltips?
            false // URLs?
    );

    ((XYPlot) chart.getPlot()).getDomainAxis().setTickLabelsVisible(false);
    ((XYPlot) chart.getPlot()).getRangeAxis().setTickLabelsVisible(false);
    ((XYPlot) chart.getPlot()).setDataset(1, dataset);
    XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();

    chart.setBackgroundPaint(
            new Color(Integer.parseInt(Messages.getString("chart_background_color").toUpperCase(), 16)));

    renderer.setSeriesPaint(0,
            new Color(Integer.parseInt(Messages.getString("chart_line_color").toUpperCase(), 16)));

    ((XYPlot) chart.getPlot()).getRenderer(0).setSeriesPaint(0,
            new Color(Integer.parseInt(Messages.getString("chart_bar_color").toUpperCase(), 16)));

    ((XYPlot) chart.getPlot()).setRenderer(1, renderer);
    ((XYPlot) chart.getPlot()).setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);
    XulImage image = (XulImage) document.getElementById("chart");
    image.setSrc(chart.createBufferedImage(309, 168));
}

From source file:csds60analyzer.csds60analyzerGUI.java

public BufferedImage creaImagen() {
    BufferedImage imagen = null;//from   w w  w . jav  a 2 s  .c o m
    try {
        SAXBuilder builder = new SAXBuilder(false);
        Document doc = null;
        TimeSeriesCollection datos = new TimeSeriesCollection();
        if (fichero != null) {
            doc = builder.build(fichero);
            Element raiz = doc.getRootElement();
            List<Element> dias = raiz.getChildren("dia");
            Iterator<Element> diasIT = dias.iterator();
            TimeSeries desayunoAntes = new TimeSeries("Desayuno antes");
            TimeSeries desayunoDespues = new TimeSeries("Desayuno despus");
            TimeSeries almuerzoAntes = new TimeSeries("Almuerzo antes");
            TimeSeries almuerzoDespues = new TimeSeries("Almuerzo despus");
            TimeSeries cenaAntes = new TimeSeries("Cena antes");
            TimeSeries cenaDespues = new TimeSeries("Cena despus");

            pdesayuno = 0;
            pdesant = 0;
            pdesdes = 0;
            palmuerzo = 0;
            palmant = 0;
            palmdes = 0;
            pcena = 0;
            pcenant = 0;
            pcendes = 0;

            contdesant = 0;
            contdesdes = 0;
            contalmant = 0;
            contalmdes = 0;
            contcenant = 0;
            contcendes = 0;

            while (diasIT.hasNext()) {
                Element diaActual = diasIT.next();
                Integer fechaActual = Integer.parseInt(diaActual.getChildText("fecha").substring(0, 10));

                Calendar fad = GregorianCalendar.getInstance();
                fad.setTimeInMillis(fechaActual.longValue() * 1000);

                int dia = fad.get(Calendar.DAY_OF_MONTH);
                int mes = fad.get(Calendar.MONTH) + 1;
                int ano = fad.get(Calendar.YEAR);

                if (diaActual.getChildren().toString().contains("desayunoantes")) {
                    int desayunoAntesActual = Integer.parseInt(diaActual.getChildText("desayunoantes"));
                    desayunoAntes.add(new Day(dia, mes, ano), desayunoAntesActual);
                    pdesant = pdesant + desayunoAntesActual;
                    contdesant++;
                }
                if (diaActual.getChildren().toString().contains("desayunodespues")) {
                    int desayunoDespuesActual = Integer.parseInt(diaActual.getChildText("desayunodespues"));
                    desayunoDespues.add(new Day(dia, mes, ano), desayunoDespuesActual);
                    pdesdes = pdesdes + desayunoDespuesActual;
                    contdesdes++;
                }
                if (diaActual.getChildren().toString().contains("almuerzoantes")) {
                    int almuerzoAntesActual = Integer.parseInt(diaActual.getChildText("almuerzoantes"));
                    almuerzoAntes.add(new Day(dia, mes, ano), almuerzoAntesActual);
                    palmant = palmant + almuerzoAntesActual;
                    contalmant++;
                }
                if (diaActual.getChildren().toString().contains("almuerzodespues")) {
                    int almuerzoDespuesActual = Integer.parseInt(diaActual.getChildText("almuerzodespues"));
                    almuerzoDespues.add(new Day(dia, mes, ano), almuerzoDespuesActual);
                    palmdes = palmdes + almuerzoDespuesActual;
                    contalmdes++;
                }
                if (diaActual.getChildren().toString().contains("cenaantes")) {
                    int cenaAntesActual = Integer.parseInt(diaActual.getChildText("cenaantes"));
                    cenaAntes.add(new Day(dia, mes, ano), cenaAntesActual);
                    pcenant = pcenant + cenaAntesActual;
                    contcenant++;
                }
                if (diaActual.getChildren().toString().contains("cenadespues")) {
                    int cenaDespuesActual = Integer.parseInt(diaActual.getChildText("cenadespues"));
                    cenaDespues.add(new Day(dia, mes, ano), cenaDespuesActual);
                    pcendes = pcendes + cenaDespuesActual;
                    contcendes++;
                }
            }
            //controlar la division por cero
            if ((contdesant + contdesdes) > 0)
                pdesayuno = (pdesant + pdesdes) / (contdesant + contdesdes);
            if (contdesant > 0)
                pdesant = pdesant / contdesant;
            if (contdesdes > 0)
                pdesdes = pdesdes / contdesdes;
            if ((contalmant + contalmdes) > 0)
                palmuerzo = (palmant + palmdes) / (contalmant + contalmdes);
            if (contalmant > 0)
                palmant = palmant / contalmant;
            if (contalmdes > 0)
                palmdes = palmdes / contalmdes;
            if ((contcenant + contcendes) > 0)
                pcena = (pcenant + pcendes) / (contcenant + contcendes);
            if (contcenant > 0)
                pcenant = pcenant / contcenant;
            if (contcendes > 0)
                pcendes = pcendes / contcendes;
            datos.addSeries(desayunoAntes);
            datos.addSeries(desayunoDespues);
            datos.addSeries(almuerzoAntes);
            datos.addSeries(almuerzoDespues);
            datos.addSeries(cenaAntes);
            datos.addSeries(cenaDespues);
        }
        JFreeChart graficaJfree = ChartFactory.createTimeSeriesChart("Anlisis", " ", "Glucosa (mg)", datos,
                true, true, false);
        XYPlot plot = (XYPlot) graficaJfree.getPlot();
        plot.setBackgroundPaint(Color.getHSBColor(0f, 0f, .88f));
        plot.setDomainGridlinePaint(Color.getHSBColor(0f, 0f, .35f));
        plot.setDomainTickBandPaint(Color.getHSBColor(0f, 0f, .93f));
        plot.setOutlinePaint(Color.getHSBColor(0f, 0f, 0.35f));
        plot.setRangeGridlinePaint(Color.getHSBColor(0f, 0f, 0.35f));
        XYLineAndShapeRenderer plot2 = (XYLineAndShapeRenderer) plot.getRenderer();
        if (!CBdesayunoantes.getState())
            plot2.setSeriesLinesVisible(0, false);
        plot2.setSeriesPaint(0, Color.getHSBColor(.3f, 1f, .5f));
        //plot2.setSeriesStroke(0,new BasicStroke(2.0f,BasicStroke.CAP_ROUND,BasicStroke.JOIN_ROUND,1.0f));
        if (!CBdesayunodespues.getState())
            plot2.setSeriesLinesVisible(1, false);
        plot2.setSeriesPaint(1, Color.getHSBColor(.2f, 1f, .9f));
        if (!CBalmuerzoantes.getState())
            plot2.setSeriesLinesVisible(2, false);
        plot2.setSeriesPaint(2, Color.getHSBColor(.0f, 1f, .6f));
        if (!CBalmuerzodespues.getState())
            plot2.setSeriesLinesVisible(3, false);
        plot2.setSeriesPaint(3, Color.getHSBColor(.0f, 1f, .9f));
        if (!CBcenaantes.getState())
            plot2.setSeriesLinesVisible(4, false);
        plot2.setSeriesPaint(4, Color.getHSBColor(.6f, 1f, .4f));
        if (!CBcenadespues.getState())
            plot2.setSeriesLinesVisible(5, false);
        plot2.setSeriesPaint(5, Color.getHSBColor(.6f, 1f, 1f));
        imagen = graficaJfree.createBufferedImage(800, 600);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return imagen;
}