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

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

Introduction

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

Prototype

public XYLineAndShapeRenderer() 

Source Link

Document

Creates a new renderer with both lines and shapes visible.

Usage

From source file:view.App.java

private void renderChart(SpreadObject obj) {
    try {//  w ww .j a  v a  2s  .co  m
        jPanel3.removeAll();
        jPanel3.revalidate();
        chart = ChartFactory.createTimeSeriesChart(
                obj.getBaseStock().getTicker() + " : " + obj.getSecondStock().getTicker(), "date",
                "spread ratio", createDataset(obj), true, true, false);
    } catch (ParseException e) {
        System.out.println("    " + e.toString());
    }

    final XYPlot plot = chart.getXYPlot();

    XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
    renderer.setSeriesShape(0, new Ellipse2D.Double(-3, -3, 0, 0));
    renderer.setSeriesPaint(0, Color.RED);
    plot.setRenderer(renderer);

    axis = (DateAxis) plot.getDomainAxis();
    axis.setDateFormatOverride(new SimpleDateFormat("dd-MM-yyyy"));

    ChartPanel chartPanel = new ChartPanel(chart);
    chartPanel.setDomainZoomable(true);
    chartPanel.setRangeZoomable(false);
    Border border = BorderFactory.createCompoundBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4),
            BorderFactory.createEtchedBorder());
    chartPanel.setBorder(border);

    jPanel3.add(chartPanel);
    jPanel3.revalidate();
}

From source file:de.tor.tribes.ui.views.DSWorkbenchStatsFrame.java

private void setupChart(String pInitialId, XYDataset pInitialDataset) {
    chart = ChartFactory.createTimeSeriesChart("Spielerstatistiken", // title
            "Zeiten", // x-axis label
            pInitialId, // y-axis label
            pInitialDataset, // data
            jShowLegend.isSelected(), // create legend?
            true, // generate tooltips?
            false // generate URLs?
    );/*from  w  w  w.java 2s  .  c o m*/

    chart.setBackgroundPaint(Constants.DS_BACK);
    XYPlot plot = (XYPlot) chart.getPlot();
    setupPlotDrawing(plot);
    XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
    for (int i = 0; i < plot.getSeriesCount(); i++) {
        renderer.setSeriesLinesVisible(i, jShowLines.isSelected());
        renderer.setSeriesShapesVisible(i, jShowDataPoints.isSelected());
        plot.setRenderer(i, renderer);
    }

    renderer.setDefaultItemLabelsVisible(jShowItemValues.isSelected());
    renderer.setDefaultItemLabelGenerator(new org.jfree.chart.labels.StandardXYItemLabelGenerator());
    renderer.setDefaultToolTipGenerator(
            new StandardXYToolTipGenerator(StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT,
                    new SimpleDateFormat("dd.MM.yyyy HH:mm:ss"), NumberFormat.getInstance()));
    int lastDataset = plot.getDatasetCount() - 1;
    if (lastDataset > 0) {
        plot.getRangeAxis().setAxisLinePaint(plot.getLegendItems().get(lastDataset).getLinePaint());
        plot.getRangeAxis().setLabelPaint(plot.getLegendItems().get(lastDataset).getLinePaint());
        plot.getRangeAxis().setTickLabelPaint(plot.getLegendItems().get(lastDataset).getLinePaint());
        plot.getRangeAxis().setTickMarkPaint(plot.getLegendItems().get(lastDataset).getLinePaint());
    }
    NumberFormat nf = NumberFormat.getInstance();
    nf.setMinimumFractionDigits(0);
    nf.setMaximumFractionDigits(0);
    NumberAxis na = ((NumberAxis) plot.getRangeAxis());
    if (na != null) {
        na.setNumberFormatOverride(nf);
    }
}

From source file:it.unifi.rcl.chess.traceanalysis.gui.TracePanel.java

private void plotTrace() {
    XYSeriesCollection dataset = new XYSeriesCollection();

    XYSeries xyBoundsPositive = null;/*from ww w  . j  a va 2  s.co m*/
    XYSeries xyBoundsNegative = null;
    Trace[] posNeg = null;

    dataset.addSeries(Plotter.traceToSeries(trace));
    dataset.addSeries(Plotter.valueToSeries(trace.getMax(), "Max", trace.getSampleSize()));
    dataset.addSeries(Plotter.valueToSeries(trace.getAverage(), "Average", trace.getSampleSize()));
    dataset.addSeries(Plotter.valueToSeries(trace.getMin(), "Min", trace.getSampleSize()));

    int rows = tableWindowSize.getRowCount();
    double coverage;
    int wsize;
    for (int i = 0; i < rows; i++) {
        try {
            wsize = (Integer) tableWindowSize.getValueAt(i, 0);
            coverage = (Double) tableWindowSize.getValueAt(i, 1);

            if (trace.hasNegativeValues()) {
                posNeg = trace.splitPositiveNegative();
                xyBoundsPositive = Plotter.arrayToSeries(posNeg[0].getDynamicBound(coverage, wsize),
                        "c=" + coverage + ",w=" + wsize, wsize - 1);
                xyBoundsNegative = Plotter.arrayToSeriesInvert(posNeg[1].getDynamicBound(coverage, wsize),
                        "c=" + coverage + ",w=" + wsize + "(neg)", wsize - 1);
                dataset.addSeries(xyBoundsPositive);
                dataset.addSeries(xyBoundsNegative);
            } else {
                dataset.addSeries(Plotter.arrayToSeries(trace.getDynamicBound(coverage, wsize),
                        "c=" + coverage + ",w=" + wsize, wsize - 1));
            }
        } catch (NullPointerException e) {
            //Ignore: cell value is null
            ;
        }
    }

    // Generate the graph
    JFreeChart chart = ChartFactory.createXYLineChart(trace.getName(),
            // Title
            "Time Point",
            // x-axis Labels
            "Value",
            // y-axis Label
            dataset,
            // Dataset
            PlotOrientation.VERTICAL, // Plot Orientation
            true,
            // Show Legend
            true,
            // Use tooltips
            false
    // Configure chart to generate URLs?
    );

    chart.setBackgroundPaint(Color.WHITE);
    chart.getXYPlot().setBackgroundPaint(ChartColor.VERY_LIGHT_YELLOW);
    chart.getXYPlot().setBackgroundAlpha(0.05f);
    chart.getXYPlot().setRangeGridlinePaint(Color.LIGHT_GRAY);
    chart.getXYPlot().setDomainGridlinePaint(Color.LIGHT_GRAY);

    chart.getTitle().setFont(new Font("Dialog", Font.BOLD, 14));

    XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
    renderer.setDrawSeriesLineAsPath(true);
    chart.getXYPlot().setRenderer(renderer);

    renderer.setSeriesPaint(0, Color.BLACK);
    renderer.setSeriesPaint(1, ChartColor.DARK_BLUE);
    renderer.setSeriesPaint(2, ChartColor.DARK_GRAY);
    renderer.setSeriesPaint(3, ChartColor.DARK_BLUE);
    renderer.setSeriesPaint(4, ChartColor.RED);

    int nSeries = chart.getXYPlot().getSeriesCount();
    for (int i = 0; i < nSeries; i++) {
        renderer.setSeriesShapesVisible(i, false);
    }
    if (posNeg != null) {
        renderer.setSeriesVisibleInLegend(5, false);
        renderer.setSeriesPaint(5, renderer.getSeriesPaint(4));
    }

    Stroke plainStroke = new BasicStroke(1.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 1.0f);

    renderer.setSeriesStroke(0, plainStroke);
    renderer.setSeriesStroke(1, new BasicStroke(1.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 1.0f,
            new float[] { 6.0f, 3.0f }, 0.0f));
    renderer.setSeriesStroke(2, new BasicStroke(1.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 1.0f,
            new float[] { 3.0f, 0.5f, 3.0f }, 0.0f));
    renderer.setSeriesStroke(3, new BasicStroke(1.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 1.0f,
            new float[] { 6.0f, 3.0f }, 0.0f));

    JPanel plotPanel = new ChartPanel(chart);
    JFrame plotFrame = new JFrame();
    plotFrame.add(plotPanel);
    plotFrame.setVisible(true);
    plotFrame.pack();
    plotFrame.setTitle(TracePanel.this.trace.getName());
    plotFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}

From source file:Output.SplitChart.java

public void drawGeneratorCommitmentWithTrueCostData(String outputTimeTypeSelect, int iStartTime, int iEndTime,
        int iDayHour, int[] selectIndex) {
    String[] names = { "GenCo Name", "Hour", "Power  (MW)" };
    this.chartTitle = "GenCo Commitments (Benchmark)";

    ArrayList genAgentCommitmentWithTrueCost = this.amesFrame.getAMESMarket()
            .getGenAgentCommitmentWithTrueCost();

    boolean draw3DChart = false;
    this.dataset = new XYSeriesCollection();
    DefaultCategoryDataset dataset3D = new DefaultCategoryDataset();

    Object[][] genData = this.amesFrame.getGeneratorData();
    int iGenNumber = genData.length;

    if ((selectIndex.length < 1) || (selectIndex[0] == 0)) {

        double[][] genCommitmentWithTrueCost = (double[][]) genAgentCommitmentWithTrueCost.get(0);
        for (int j = 0; j < iGenNumber; j++) {
            XYSeries series = new XYSeries((String) genData[j][0]);

            for (int i = 0; i < 24; i++) {
                series.add(i, (Math.round(genCommitmentWithTrueCost[i][j] * 1000)) / 1000.0);
            }/*from  w w  w .  j  a  va 2 s  .  co  m*/

            this.dataset.addSeries(series);
        }
    } else {
        int iDataNumber = selectIndex.length;
        int iField = names.length;

        double[][] genCommitmentWithTrueCost = (double[][]) genAgentCommitmentWithTrueCost.get(0);
        for (int j = 0; j < iDataNumber; j++) {
            XYSeries series = new XYSeries((String) genData[selectIndex[j] - 1][0]);

            for (int i = 0; i < 24; i++) {
                series.add(i, (Math.round(genCommitmentWithTrueCost[i][selectIndex[j] - 1] * 1000)) / 1000.0);
            }

            this.dataset.addSeries(series);
        }
    }

    // create the chart...
    this.chart = ChartFactory.createXYLineChart(this.chartTitle, // chart title
            "Hour", // x axis label
            "Power (MWs)", // y axis label
            this.dataset, // data
            PlotOrientation.VERTICAL, true, // include legend
            true, // tooltips
            false // urls
    );

    // NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART...
    this.chart.setBackgroundPaint(Color.white);

    // get a reference to the plot for further customisation...
    final XYPlot plot = this.chart.getXYPlot();
    plot.setBackgroundPaint(Color.white);
    plot.setDomainGridlinePaint(Color.blue);
    plot.setRangeGridlinePaint(Color.blue);

    final XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
    XYToolTipGenerator generator = new StandardXYToolTipGenerator("{2}", new DecimalFormat("0.00"),
            new DecimalFormat("0.00"));
    renderer.setToolTipGenerator(generator);
    plot.setRenderer(renderer);

    NumberAxis xAxis = (NumberAxis) plot.getDomainAxis();
    xAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
    xAxis.setRange(0, 23.5);

    this.chart.getTitle().setFont(this.font);
    this.chartPanel.setChart(this.chart);
}

From source file:be.vds.jtbdive.client.view.core.dive.profile.DiveProfileGraphicDetailPanel.java

private void showCollection(XYSeriesCollection xyCollection, int shape, Color color) {
    if (null == indexMap.get(xyCollection)) {
        int index = registerCollectionOnPlot(xyCollection);

        XYLineAndShapeRenderer renderer2 = new XYLineAndShapeRenderer();
        renderer2.setSeriesLinesVisible(0, false);
        renderer2.setAutoPopulateSeriesShape(false);
        renderer2.setSeriesPaint(0, color);
        renderer2.setBaseShape(DefaultDrawingSupplier.DEFAULT_SHAPE_SEQUENCE[shape]);
        xyp.setRenderer(index, renderer2);
    }/*from w w  w . jav a  2  s  .  co  m*/
}

From source file:de.tor.tribes.ui.views.DSWorkbenchStatsFrame.java

private void addDataset(String pId, XYDataset pDataset) {
    if (chart == null) {
        setupChart(pId, pDataset);/*from   www.  j  av a2 s. c o  m*/
    } else {
        XYPlot plot = (XYPlot) chart.getPlot();
        plot.setDataset(plot.getDatasetCount(), pDataset);
        NumberAxis axis = new NumberAxis(pId);
        NumberFormat nf = NumberFormat.getInstance();
        nf.setMinimumFractionDigits(0);
        nf.setMaximumFractionDigits(0);
        axis.setNumberFormatOverride(nf);
        plot.setRangeAxis(plot.getDatasetCount() - 1, axis);
        plot.setRangeAxisLocation(plot.getDatasetCount() - 1, AxisLocation.TOP_OR_LEFT);
        plot.mapDatasetToRangeAxis(plot.getDatasetCount() - 1, plot.getDatasetCount() - 1);
        XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
        renderer.setSeriesLinesVisible(0, jShowLines.isSelected());
        renderer.setSeriesShapesVisible(0, jShowDataPoints.isSelected());
        plot.setRenderer(plot.getDatasetCount() - 1, renderer);
        renderer.setDefaultItemLabelsVisible(jShowItemValues.isSelected());
        renderer.setDefaultItemLabelGenerator(new org.jfree.chart.labels.StandardXYItemLabelGenerator());
        renderer.setDefaultToolTipGenerator(
                new StandardXYToolTipGenerator(StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT,
                        new SimpleDateFormat("dd.MM.yyyy HH:mm:ss"), NumberFormat.getInstance()));
        axis.setAxisLinePaint(plot.getLegendItems().get(plot.getDatasetCount() - 1).getLinePaint());
        axis.setLabelPaint(plot.getLegendItems().get(plot.getDatasetCount() - 1).getLinePaint());
        axis.setTickLabelPaint(plot.getLegendItems().get(plot.getDatasetCount() - 1).getLinePaint());
        axis.setTickMarkPaint(plot.getLegendItems().get(plot.getDatasetCount() - 1).getLinePaint());
    }
}

From source file:com.prezerak.windmill.gui.AveragesPanel.java

private void plotEverything() {
    try {/*from  www . j  a v a2s . c  o m*/
        final XYPlot plot = chart.getXYPlot();

        ValueAxis domainAxis = plot.getDomainAxis();
        plot.getDomainAxis().setLowerMargin(0);
        plot.getDomainAxis().setUpperMargin(0);
        plot.getDomainAxis().setAutoRange(true);

        if (domainAxis instanceof DateAxis) {
            DateAxis axis = (DateAxis) domainAxis;
            // customise axis here...
            //axis.setRange(new Date(startDate), new Date(endDate));
            long startT = datasetVel.getDataItem(0).getPeriod().getLastMillisecond();
            long endT = datasetVel.getDataItem(datasetVel.getItemCount() - 1).getPeriod().getLastMillisecond();
            ;
            DateFormat formatter;
            long duration = endT - startT;
            long _24hrs = 1000 * 60 * 60 * 24;
            long _3mins = 1000 * 60 * 3;

            if (duration > _24hrs) {
                formatter = new SimpleDateFormat("HH:mm dd-MMM");
            } else if (endDate - startDate > _3mins && endDate - startDate <= _24hrs)
                formatter = new SimpleDateFormat("HH:mm");
            else //smaller than 3mins
                formatter = new SimpleDateFormat("HH:mm:ss");
            axis.setDateFormatOverride(formatter);
        }

        TimeSeriesCollection seriesVel = new TimeSeriesCollection();
        seriesVel.addSeries(datasetVel);
        plot.setDataset(0, seriesVel);
        final NumberAxis velRangeAxis = (NumberAxis) plot.getRangeAxis();
        velRangeAxis.setRange(0.0, maxY);
        plot.setRangeAxis(velRangeAxis);
        plot.mapDatasetToRangeAxis(0, 0);
        XYLineAndShapeRenderer velocityRenderer = (XYLineAndShapeRenderer) plot.getRenderer(0);
        velocityRenderer.setBaseShapesVisible(true);
        velocityRenderer.setBaseShapesFilled(false);
        velocityRenderer.setBaseToolTipGenerator(
                new StandardXYToolTipGenerator(StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT,
                        new SimpleDateFormat("dd-MM-yy, hh:mm:ss a"), new DecimalFormat("00.0")));
        velocityRenderer.setSeriesPaint(0, Color.BLACK);

        if (!rdbtnVelocity.isSelected()) {
            velocityRenderer.setSeriesVisible(0, false);
        } else {
            velocityRenderer.setSeriesVisible(0, true);
        }

        TimeSeriesCollection seriesDir = new TimeSeriesCollection();
        seriesDir.addSeries(datasetDir);
        plot.setDataset(1, seriesDir);
        final ValueAxis dirRangeAxis = new NumberAxis("Direction");
        dirRangeAxis.setRange(0.0, 370.0);
        plot.setRangeAxis(1, dirRangeAxis);
        plot.mapDatasetToRangeAxis(1, 1);

        XYLineAndShapeRenderer dirRenderer = (XYLineAndShapeRenderer) plot.getRenderer(1);
        if (dirRenderer == null)
            dirRenderer = new XYLineAndShapeRenderer();
        dirRenderer.setBaseToolTipGenerator(
                new StandardXYToolTipGenerator(StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT,
                        new SimpleDateFormat("dd-MM-yy, hh:mm:ss a"), new DecimalFormat("00.0")));

        plot.setRenderer(1, dirRenderer);
        dirRenderer.setSeriesPaint(0, Color.BLUE);

        if (!rdbtnDirection.isSelected()) {
            dirRenderer.setSeriesVisible(0, false);
        } else {
            dirRenderer.setSeriesVisible(0, true);
        }

        final ValueAxis alarmsRangeAxis = new NumberAxis("Alarms");
        alarmsRangeAxis.setRange(0.0, 1);
        alarmsRangeAxis.setVisible(false);

        XYBarRenderer gustRenderer = null;

        TimePeriodValuesCollection seriesGust = new TimePeriodValuesCollection(datasetGust);
        plot.setDataset(2, seriesGust);

        plot.setRangeAxis(2, alarmsRangeAxis);
        plot.mapDatasetToRangeAxis(2, 2);

        gustRenderer = (XYBarRenderer) plot.getRenderer(2);
        if (gustRenderer == null)
            gustRenderer = new XYBarRenderer();
        plot.setRenderer(2, gustRenderer);
        gustRenderer.setSeriesPaint(0, Color.PINK);

        if ((rdbtnVelocity.isSelected() || rdbtnDirection.isSelected()) && rdbtnGust.isSelected())
            gustRenderer.setSeriesVisible(0, true);
        else
            gustRenderer.setSeriesVisible(0, false);

        XYBarRenderer higherRenderer = null;
        TimePeriodValuesCollection seriesHigher = new TimePeriodValuesCollection(datasetHigher);
        plot.setDataset(3, seriesHigher);

        plot.setRangeAxis(3, alarmsRangeAxis);
        plot.mapDatasetToRangeAxis(3, 2);

        higherRenderer = (XYBarRenderer) plot.getRenderer(3);
        if (higherRenderer == null)
            higherRenderer = new XYBarRenderer();
        plot.setRenderer(3, higherRenderer);
        higherRenderer.setSeriesPaint(0, Color.RED);
        if ((rdbtnVelocity.isSelected() || rdbtnDirection.isSelected()) && rdbtnHigher.isSelected())

            higherRenderer.setSeriesVisible(0, true);

        else
            higherRenderer.setSeriesVisible(0, false);

        TimePeriodValuesCollection seriesHigh = new TimePeriodValuesCollection(datasetHigh);
        plot.setDataset(4, seriesHigh);

        plot.setRangeAxis(4, alarmsRangeAxis);
        plot.mapDatasetToRangeAxis(4, 2);

        XYBarRenderer highRenderer = (XYBarRenderer) plot.getRenderer(4);
        if (highRenderer == null)
            highRenderer = new XYBarRenderer();
        plot.setRenderer(4, highRenderer);
        highRenderer.setSeriesPaint(0, new Color(206, 33, 85));
        if ((rdbtnVelocity.isSelected() || rdbtnDirection.isSelected()) && rdbtnHigh.isSelected())

            highRenderer.setSeriesVisible(0, true);
        else
            highRenderer.setSeriesVisible(0, false);

    } catch (OutOfMemoryError e) {
        WindMill.logger.warn("Out of Memory in plotEverything");
    }

}

From source file:correlation.and.regression.analysis.MainWindow.java

private void showCorrelationField() {
    XYSeriesCollection dataset = new XYSeriesCollection();
    XYSeries correlation = new XYSeries("Correlation Field");
    for (int i = 0; i < arr[0].countOfNumbers; i++) {
        //XYSeries tmp = new XYSeries(""+i);
        correlation.add(arr[0].getNumber(i), arr[1].getNumber(i));
        //tmp.add(arr[0].getNumber(i), arr[1].getNumber(i));
        //dataset.addSeries(tmp);
    }//  www . ja v a2s .  c om
    dataset.addSeries(correlation);
    XYSeries regr = StaticFunctions.drawRegressionLine(arr[0], arr[1]);
    dataset.addSeries(regr);

    XYSeries ConfidenceIntervalMax = StaticFunctions.drawConfidenceIntervalMax(arr[0], arr[1]);
    dataset.addSeries(ConfidenceIntervalMax);
    XYSeries ConfidenceIntervalMin = StaticFunctions.drawConfidenceIntervalMin(arr[0], arr[1]);
    dataset.addSeries(ConfidenceIntervalMin);

    XYSeries Confidence2IntervalMax = StaticFunctions.drawConfidence2IntervalMax(arr[0], arr[1]);
    dataset.addSeries(Confidence2IntervalMax);
    XYSeries Confidence2IntervalMin = StaticFunctions.drawConfidence2IntervalMin(arr[0], arr[1]);
    dataset.addSeries(Confidence2IntervalMin);

    XYSeries TolerantIntervalMax = StaticFunctions.drawTolerantIntervalMax(arr[0], arr[1]);
    dataset.addSeries(TolerantIntervalMax);
    XYSeries TolerantIntervalMin = StaticFunctions.drawTolerantIntervalMin(arr[0], arr[1]);
    dataset.addSeries(TolerantIntervalMin);
    JFreeChart chart = ChartFactory.createXYLineChart("Relation", "X", "Y", dataset, PlotOrientation.VERTICAL,
            true, true, false);
    // NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART...
    chart.setBackgroundPaint(Color.white);
    final XYPlot plot = chart.getXYPlot();
    plot.setBackgroundPaint(Color.lightGray);
    plot.setDomainGridlinePaint(Color.white);
    plot.setRangeGridlinePaint(Color.white);

    final XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
    renderer.setSeriesLinesVisible(0, false);
    renderer.setSeriesShapesVisible(1, false);
    renderer.setSeriesShapesVisible(2, false);
    renderer.setSeriesShapesVisible(3, false);
    renderer.setSeriesShapesVisible(4, false);
    renderer.setSeriesShapesVisible(5, false);
    plot.setRenderer(renderer);

    // change the auto tick unit selection to integer units only...
    final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
    rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
    ChP = new ChartPanel(chart);
    ChP.setSize(jSPanelChart.getWidth(), jSPanelChart.getHeight());
    jSPanelChart.removeAll();
    jSPanelChart.revalidate();
    jSPanelChart.add(ChP);
    jSPanelChart.repaint();
}

From source file:it.unifi.rcl.chess.traceanalysis.gui.TracePanel.java

private void plotCompare() {
    XYSeriesCollection dataset = new XYSeriesCollection();

    XYSeries xyBoundsPositive = null;/*from   ww w  .ja v a 2  s  .c  o  m*/
    XYSeries xyBoundsNegative = null;
    Trace[] posNeg = null;

    Component[] siblings = this.getParent().getComponents();
    Trace[] allTraces = new Trace[siblings.length];

    int rows = tableWindowSize.getRowCount();
    double coverage = 0.99;
    int wsize = 100;
    for (int i = 0; i < rows; i++) {
        try {
            wsize = (Integer) tableWindowSize.getValueAt(i, 0);
            coverage = (Double) tableWindowSize.getValueAt(i, 1);
        } catch (NullPointerException e) {
            //Ignore: cell value is null
            ;
        }
    }

    for (int i = 0; i < siblings.length; i++) {
        allTraces[i] = ((TracePanel) siblings[i]).getTrace();

        if (allTraces[i].hasNegativeValues()) {
            posNeg = allTraces[i].splitPositiveNegative();
            xyBoundsPositive = Plotter.arrayToSeries(posNeg[0].getDynamicBound(coverage, wsize),
                    allTraces[i].getName(), wsize - 1);
            xyBoundsNegative = Plotter.arrayToSeriesInvert(posNeg[1].getDynamicBound(coverage, wsize),
                    allTraces[i].getName() + "(neg)", wsize - 1);
            dataset.addSeries(xyBoundsPositive);
            dataset.addSeries(xyBoundsNegative);
        } else {
            dataset.addSeries(Plotter.arrayToSeries(allTraces[i].getDynamicBound(coverage, wsize),
                    allTraces[i].getName(), wsize - 1));
        }
    }

    // Generate the graph
    JFreeChart chart = ChartFactory.createXYLineChart("Comparative Plot (c=" + coverage + ",w=" + wsize + ")",
            // Title
            "Time Point",
            // x-axis Labels
            "Value",
            // y-axis Label
            dataset,
            // Dataset
            PlotOrientation.VERTICAL, // Plot Orientation
            true,
            // Show Legend
            true,
            // Use tooltips
            false
    // Configure chart to generate URLs?
    );

    chart.setBackgroundPaint(Color.WHITE);
    chart.getXYPlot().setBackgroundPaint(ChartColor.VERY_LIGHT_YELLOW);
    chart.getXYPlot().setBackgroundAlpha(0.05f);
    chart.getXYPlot().setRangeGridlinePaint(Color.LIGHT_GRAY);
    chart.getXYPlot().setDomainGridlinePaint(Color.LIGHT_GRAY);

    chart.getTitle().setFont(new Font("Dialog", Font.BOLD, 14));

    XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
    renderer.setDrawSeriesLineAsPath(true);
    chart.getXYPlot().setRenderer(renderer);

    renderer.setSeriesPaint(0, Color.BLACK);
    renderer.setSeriesPaint(1, ChartColor.DARK_GREEN);
    renderer.setSeriesPaint(2, ChartColor.DARK_BLUE);
    renderer.setSeriesPaint(3, ChartColor.RED);

    int nSeries = chart.getXYPlot().getSeriesCount();
    for (int i = 0; i < nSeries; i++) {
        renderer.setSeriesShapesVisible(i, false);
    }
    if (posNeg != null) {
        renderer.setSeriesVisibleInLegend(5, false);
        renderer.setSeriesPaint(5, renderer.getSeriesPaint(4));
    }

    //      Stroke plainStroke = new BasicStroke(
    //                    1.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 1.0f
    //                );
    //      
    //      renderer.setSeriesStroke(0, plainStroke);
    //      renderer.setSeriesStroke(1, 
    //            new BasicStroke(
    //                 1.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 1.0f, new float[] { 6.0f, 3.0f }, 0.0f
    //             ));
    //      renderer.setSeriesStroke(2, 
    //            new BasicStroke(
    //                 1.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 1.0f, new float[] { 3.0f, 0.5f, 3.0f }, 0.0f
    //             ));
    //      renderer.setSeriesStroke(3, 
    //            new BasicStroke(
    //                 1.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 1.0f, new float[] { 6.0f, 3.0f }, 0.0f
    //             ));

    JPanel plotPanel = new ChartPanel(chart);
    JFrame plotFrame = new JFrame();
    plotFrame.add(plotPanel);
    plotFrame.setVisible(true);
    plotFrame.pack();
    plotFrame.setTitle(TracePanel.this.trace.getName());
    plotFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}

From source file:asl.util.PlotMaker.java

public void plotSpecAmp(double freq[], double[] amp, double[] phase, String plotString) {

    // plotTitle = "2012074.IU_ANMO.00-BHZ " + plotString
    final String plotTitle = String.format("%04d%03d.%s.%s %s", date.get(Calendar.YEAR),
            date.get(Calendar.DAY_OF_YEAR), station, channel, plotString);
    // plot filename = "2012074.IU_ANMO.00-BHZ" + plotString + ".png"
    final String pngName = String.format("%s/%04d%03d.%s.%s.%s.png", outputDir, date.get(Calendar.YEAR),
            date.get(Calendar.DAY_OF_YEAR), station, channel, plotString);

    File outputFile = new File(pngName);

    // Check that we will be able to output the file without problems and if not --> return
    if (!checkFileOut(outputFile)) {
        System.out.format("== plotSpecAmp: request to output plot=[%s] but we are unable to create it "
                + " --> skip plot\n", pngName);
        return;//w ww . java  2 s. c om
    }

    final XYSeries series1 = new XYSeries("Amplitude");
    final XYSeries series2 = new XYSeries("Phase");

    double maxdB = 0.;
    for (int k = 0; k < freq.length; k++) {
        double dB = 20. * Math.log10(amp[k]);
        series1.add(freq[k], dB);
        series2.add(freq[k], phase[k]);
        if (dB > maxdB) {
            maxdB = dB;
        }
    }

    //final XYItemRenderer renderer = new StandardXYItemRenderer();
    final XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
    Rectangle rectangle = new Rectangle(3, 3);
    renderer.setSeriesShape(0, rectangle);
    //renderer.setSeriesShapesVisible(0, true);
    renderer.setSeriesShapesVisible(0, false);
    renderer.setSeriesLinesVisible(0, true);

    renderer.setSeriesShape(1, rectangle);
    renderer.setSeriesShapesVisible(1, true);
    renderer.setSeriesLinesVisible(1, false);

    Paint[] paints = new Paint[] { Color.red, Color.blue };
    renderer.setSeriesPaint(0, paints[0]);
    //renderer.setSeriesPaint(1, paints[1]);

    final XYLineAndShapeRenderer renderer2 = new XYLineAndShapeRenderer();
    renderer2.setSeriesPaint(0, paints[1]);
    renderer2.setSeriesShapesVisible(0, false);
    renderer2.setSeriesLinesVisible(0, true);

    // Stroke is part of Java Swing ...
    //renderer2.setBaseStroke( new Stroke( ... ) );

    double ymax;
    if (maxdB < 10) {
        ymax = 10.;
    } else {
        ymax = maxdB + 2;
        ;
    }

    final NumberAxis verticalAxis = new NumberAxis("Spec Amp (dB)");
    verticalAxis.setRange(new Range(-40, ymax));
    verticalAxis.setTickUnit(new NumberTickUnit(5));

    //final LogarithmicAxis verticalAxis = new LogarithmicAxis("Amplitude Response");
    //verticalAxis.setRange( new Range(0.01 , 10) );

    final LogarithmicAxis horizontalAxis = new LogarithmicAxis("Frequency (Hz)");
    //horizontalAxis.setRange( new Range(0.0001 , 100.5) );
    horizontalAxis.setRange(new Range(0.00009, 110));

    final XYSeriesCollection seriesCollection = new XYSeriesCollection();
    seriesCollection.addSeries(series1);

    final XYPlot xyplot = new XYPlot((XYDataset) seriesCollection, null, verticalAxis, renderer);
    //final XYPlot xyplot = new XYPlot((XYDataset)seriesCollection, horizontalAxis, verticalAxis, renderer);

    xyplot.setDomainGridlinesVisible(true);
    xyplot.setRangeGridlinesVisible(true);
    xyplot.setRangeGridlinePaint(Color.black);
    xyplot.setDomainGridlinePaint(Color.black);

    final NumberAxis phaseAxis = new NumberAxis("Phase (Deg)");
    phaseAxis.setRange(new Range(-180, 180));
    phaseAxis.setTickUnit(new NumberTickUnit(30));
    final XYSeriesCollection seriesCollection2 = new XYSeriesCollection();
    seriesCollection2.addSeries(series2);
    final XYPlot xyplot2 = new XYPlot((XYDataset) seriesCollection2, null, phaseAxis, renderer2);

    //CombinedXYPlot combinedPlot = new CombinedXYPlot( horizontalAxis, CombinedXYPlot.VERTICAL );
    CombinedDomainXYPlot combinedPlot = new CombinedDomainXYPlot(horizontalAxis);
    combinedPlot.add(xyplot, 1);
    combinedPlot.add(xyplot2, 1);
    combinedPlot.setGap(15.);

    //final JFreeChart chart = new JFreeChart(xyplot);
    final JFreeChart chart = new JFreeChart(combinedPlot);
    chart.setTitle(new TextTitle(plotTitle));

    // Here we need to see if test dir exists and create it if necessary ...
    try {
        //ChartUtilities.saveChartAsJPEG(new File("chart.jpg"), chart, 500, 300);
        //ChartUtilities.saveChartAsPNG(outputFile, chart, 500, 300);
        ChartUtilities.saveChartAsPNG(outputFile, chart, 1000, 800);
    } catch (IOException e) {
        System.err.println("Problem occurred creating chart.");

    }
}