Example usage for org.jfree.chart JFreeChart getXYPlot

List of usage examples for org.jfree.chart JFreeChart getXYPlot

Introduction

In this page you can find the example usage for org.jfree.chart JFreeChart getXYPlot.

Prototype

public XYPlot getXYPlot() 

Source Link

Document

Returns the plot cast as an XYPlot .

Usage

From source file:org.knime.knip.core.ui.imgviewer.panels.HistogramBC.java

/**
 * Returns a JFreeChart containing data from the provided histogram.
 *
 * @param title//ww w  .  j  ava 2  s  . co  m
 * @param bund
 * @return
 */
private JFreeChart getChart(final String title, final HistogramBundle bund) {
    List<XYSeries> series = new ArrayList<>();
    for (int h = 0; h < bund.getHistogramCount(); h++) {
        final XYSeries xys = new XYSeries("histo" + h);
        final long total = bund.getHistogram(h).getBinCount();
        for (long i = 0; i < total; i++) {
            xys.add(i, bund.getHistogram(h).frequency(i));
        }
        series.add(xys);
    }
    final JFreeChart chart = createChart(title, series);
    if (bund.getMinBin() != -1) {
        chart.getXYPlot().addDomainMarker(new ValueMarker(bund.getMinBin(), Color.black, new BasicStroke(1)));
    }
    if (bund.getMaxBin() != -1) {
        chart.getXYPlot().addDomainMarker(new ValueMarker(bund.getMaxBin(), Color.black, new BasicStroke(1)));
    }
    if (displaySlopeLine(bund)) {
        chart.getXYPlot().addAnnotation(slopeLine());
    }

    // set to knime gray
    chart.setBackgroundPaint(new Color(238, 238, 238));
    return chart;
}

From source file:org.drugis.addis.gui.ConvergencePlotsDialog.java

private JFreeChart createRhatChart(final XYDataset dataset) {
    final JFreeChart RhatChart = ChartFactory.createXYLineChart("Iterative PSRF Plot", "Iteration No.",
            "R-Hat(p)", dataset, PlotOrientation.VERTICAL, false, true, false);

    RhatChart.setBackgroundPaint(Color.white);
    final XYPlot RhatPlot = RhatChart.getXYPlot();
    RhatPlot.setDomainGridlinePaint(Color.white);
    RhatPlot.setRangeGridlinePaint(Color.white);

    final NumberAxis rangeAxis = (NumberAxis) RhatPlot.getRangeAxis();
    rangeAxis.setAutoRange(true);//from w  ww  . j av a 2s  .c o m
    rangeAxis.setAutoRangeIncludesZero(false);

    return RhatChart;
}

From source file:org.jfree.chart.demo.LineChartDemo4.java

/**
 * Creates a new demo.// w  w w.  j  a  v a2  s.  c om
 *
 * @param title  the frame title.
 */
public LineChartDemo4(final String title) {

    super(title);

    // create a dataset...
    final XYDataset dataset = new SampleXYDataset();

    // create the chart...
    final JFreeChart chart = ChartFactory.createXYLineChart("Line Chart Demo 4", // chart title
            "X", // x axis label
            "Y", // y axis label
            dataset, // data
            PlotOrientation.VERTICAL, true, // include legend
            true, // tooltips
            false // urls
    );

    final XYPlot plot = chart.getXYPlot();
    plot.getDomainAxis().setLowerMargin(0.0);
    plot.getDomainAxis().setUpperMargin(0.0);

    // add the chart to a panel...
    final ChartPanel chartPanel = new ChartPanel(chart);
    chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
    setContentPane(chartPanel);

}

From source file:org.jfree.chart.demo.TimeSeriesDemo11.java

/**
 * A demonstration application showing how to...
 *
 * @param title  the frame title./*  w  ww.  ja va 2  s  . c om*/
 */
public TimeSeriesDemo11(final String title) {

    super(title);
    final JPanel panel = new JPanel(new GridLayout(2, 2));
    panel.setPreferredSize(new java.awt.Dimension(800, 600));

    final Day today = new Day();
    final XYDataset dataset = createDataset("Series 1", 100.0, today, 365);

    final JFreeChart chart1 = createChart("Chart 1 : 1 Year", dataset);
    final ChartPanel chartPanel1 = new ChartPanel(chart1);
    panel.add(chartPanel1);

    final JFreeChart chart2 = createChart("Chart 2 : 6 Months", dataset);
    final SerialDate t = today.getSerialDate();
    final SerialDate t6m = SerialDate.addMonths(-6, t);
    final Day sixMonthsAgo = new Day(t6m);
    final DateAxis axis2 = (DateAxis) chart2.getXYPlot().getDomainAxis();
    axis2.setRange(sixMonthsAgo.getStart(), today.getEnd());
    final ChartPanel chartPanel2 = new ChartPanel(chart2);
    panel.add(chartPanel2);

    final JFreeChart chart3 = createChart("Chart 3 : 3 Months", dataset);
    final SerialDate t3m = SerialDate.addMonths(-3, t);
    final Day threeMonthsAgo = new Day(t3m);
    final DateAxis axis3 = (DateAxis) chart3.getXYPlot().getDomainAxis();
    axis3.setRange(threeMonthsAgo.getStart(), today.getEnd());
    final ChartPanel chartPanel3 = new ChartPanel(chart3);
    panel.add(chartPanel3);

    final JFreeChart chart4 = createChart("Chart 4 : 1 Month", dataset);
    final SerialDate t1m = SerialDate.addMonths(-1, t);
    final Day oneMonthsAgo = new Day(t1m);
    final DateAxis axis4 = (DateAxis) chart4.getXYPlot().getDomainAxis();
    axis4.setRange(oneMonthsAgo.getStart(), today.getEnd());
    final ChartPanel chartPanel4 = new ChartPanel(chart4);
    panel.add(chartPanel4);

    setContentPane(panel);

}

From source file:playground.artemc.socialCost.MeanTravelTimeWriter.java

/**
 * @return a graphic showing the number of agents in the evacuated area
 *//*  w w  w .  ja  v a 2s.com*/
private JFreeChart getGraphic(String[] modeNames, double data[][]) {

    final XYSeriesCollection xyData = new XYSeriesCollection();

    for (int j = 0; j < modeNames.length; j++) {
        String modeName = modeNames[j];
        double[] d = data[j];

        XYSeries dataSerie = new XYSeries(modeName, false, true);

        for (int i = 0; i < d.length; i++) {
            dataSerie.add(i, d[i]);
        }

        xyData.addSeries(dataSerie);
    }

    //      final JFreeChart chart = ChartFactory.createXYStepChart(
    final JFreeChart chart = ChartFactory.createXYLineChart("mean trip travel time, all transport modes modes",
            "iteration", "travel time", xyData, PlotOrientation.VERTICAL, true, // legend
            false, // tooltips
            false // urls
    );

    XYPlot plot = chart.getXYPlot();

    final CategoryAxis axis1 = new CategoryAxis("hour");
    axis1.setTickLabelFont(new Font("SansSerif", Font.PLAIN, 7));
    plot.setDomainAxis(new NumberAxis("time"));
    return chart;
}

From source file:fi.smaa.jsmaa.gui.views.CriterionView.java

private JPanel buildValueFunctionChartPanel(ScaleCriterion criterion) {
    UtilityFunctionDataset dataset = new UtilityFunctionDataset(criterion);

    JFreeChart chart = ChartFactory.createXYLineChart("", "x", "v(x)", dataset, PlotOrientation.VERTICAL, false,
            true, true);/*from w  w w .j  a  va  2 s  . c o  m*/

    final XYPlot plot = chart.getXYPlot();
    XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
    plot.setRenderer(0, renderer);
    renderer.setSeriesPaint(0, Color.black);
    renderer.setSeriesShape(0, ShapeUtilities.createDiamond(3.0f));
    renderer.setBaseToolTipGenerator(new StandardXYToolTipGenerator());

    ValueAxis rAxis = plot.getRangeAxis();
    rAxis.setAutoRange(false);
    rAxis.setRange(new Range(-0.03, 1.03));
    ValueAxis dAxis = plot.getDomainAxis();
    dAxis.setLowerMargin(0.03);
    dAxis.setUpperMargin(0.03);

    ChartPanel chartPanel = new ChartPanel(chart, false, true, true, false, true);
    chartPanel.addChartMouseListener(new ValueFunctionMouseListener(chartPanel, criterion, parent));

    chartPanel.setDomainZoomable(false);
    chartPanel.setRangeZoomable(false);
    chartPanel.setDisplayToolTips(true);
    chartPanel.setToolTipText("Click to add/remove partial value function points");
    chartPanel.setMouseWheelEnabled(false);
    chartPanel.setMouseZoomable(false);

    plot.setDomainCrosshairLockedOnData(false);
    plot.setRangeCrosshairLockedOnData(false);
    plot.setDomainCrosshairVisible(true);
    plot.setRangeCrosshairVisible(true);

    FormLayout layout = new FormLayout("left:pref", "p, 3dlu, p");

    PanelBuilder builder = new PanelBuilder(layout);
    CellConstraints cc = new CellConstraints();
    builder.add(chartPanel, cc.xy(1, 1));
    builder.add(new ValueFunctionPointsPanel(criterion), cc.xy(1, 3));

    return builder.getPanel();
}

From source file:fr.crnan.videso3d.trajectography.Track2DView.java

public Track2DView(VidesoTrack track) {
    if (track instanceof LPLNTrack) {
        XYSeries dataset = new XYSeries(track.getName());
        List<ValueMarker> markers = new LinkedList<ValueMarker>();
        double distance = 0;
        LPLNTrackPoint last = null;/*ww w  .ja va2 s .  c o  m*/
        for (LPLNTrackPoint p : ((LPLNTrack) track).getTrackPoints()) {
            if (last != null) {
                distance += Position.ellipsoidalDistance(last.getPosition(), p.getPosition(),
                        Earth.WGS84_EQUATORIAL_RADIUS, Earth.WGS84_POLAR_RADIUS) / LatLonCautra.NM;
            }
            dataset.add(distance, p.getElevation() / 30.48);
            ValueMarker marker = new ValueMarker(distance);
            marker.setLabel(p.getName());
            marker.setLabelAnchor(RectangleAnchor.TOP_RIGHT);
            marker.setLabelTextAnchor(TextAnchor.TOP_CENTER);
            markers.add(marker);
            last = p;
        }
        JFreeChart chart = ChartFactory.createXYLineChart("Coupe 2D", "NM", "FL",
                new XYSeriesCollection(dataset), PlotOrientation.VERTICAL, false, false, false);
        for (ValueMarker m : markers) {
            chart.getXYPlot().addDomainMarker(m);
        }
        //ajout des secteurs AIP avec des XYPolygonAnnotation
        Collection<Object> secteurs;
        AIPController controller = (AIPController) DatasManager.getController(DatasManager.Type.AIP);
        secteurs = controller.getObjects(AIP.CTL);
        for (int i = 0; i <= 600; i += 10) {
            last = null;
            Secteur3D lastSecteur = null;
            double lastBoundary = 0.0;
            for (LPLNTrackPoint point : ((LPLNTrack) track).getTrackPoints()) {
                Position p = new Position(point.getPosition(), i * 30.48);
                //calcul du secteur contenant le point en cours
                Iterator<Object> iterator = secteurs.iterator();
                boolean contain = false;
                Secteur3D secteur = null;
                while (iterator.hasNext() && !contain) {
                    Secteur3D temp = (Secteur3D) iterator.next();
                    if (temp.contains(p)) {
                        contain = true;
                        secteur = temp;
                    }
                }

                //si premier point, on enregistre simplement le secteur trouv
                if (last == null) {
                    lastSecteur = secteur;
                } else {
                    if (lastSecteur != secteur) {
                        //si le secteur a chang, on dessine le secteur prcdent
                        //sauf si ce dernier n'existait pas
                        if (lastSecteur != null) {
                            //dans ce cas, on calcule le point d'intersection entre le secteur et le segment form par les deux points
                            //lastSecteur != null => last !=null
                            Set<Point2D> intersects = lastSecteur
                                    .getIntersections(new Line2D.Double(last.getLatitude(), last.getLongitude(),
                                            p.getLatitude().degrees, p.getLongitude().degrees), true);
                            if (!intersects.isEmpty()) {
                                Point2D intersect = intersects.iterator().next();
                                distance = Position.ellipsoidalDistance(
                                        new LatLonCautra(intersect.getX(), intersect.getY()),
                                        last.getPosition(), Earth.WGS84_EQUATORIAL_RADIUS,
                                        Earth.WGS84_POLAR_RADIUS) / LatLonCautra.NM;
                                //et ajout de l'annotation
                                XYPolygonAnnotation annotation = new XYPolygonAnnotation(
                                        new double[] { lastBoundary, i, lastBoundary + distance, i,
                                                lastBoundary + distance, i + 10, lastBoundary, i + 10 });
                                chart.getXYPlot().addAnnotation(annotation);
                                lastBoundary += distance;
                            }
                        }
                        lastSecteur = secteur;
                    }
                }
                last = point;
            }
        }
        //espace en haut pour les marqueurs
        chart.getXYPlot().getRangeAxis().setUpperMargin(0.05);
        ChartPanel chartPanel = new ChartPanel(chart);
        this.setContentPane(chartPanel);
        this.pack();
    }
}

From source file:org.squale.squaleweb.util.graph.AreaMaker.java

/**
 * @return le diagramme JFreeChart/*from   w  ww. j av a 2 s .  c  om*/
 */
protected JFreeChart getChart() {
    JFreeChart retChart = super.getChart();
    if (null == retChart) {
        retChart = ChartFactory.createXYAreaChart(mTitle, mXLabel, mYLabel, mDataSet, PlotOrientation.VERTICAL,
                false, false, false);
        final XYPlot plot = retChart.getXYPlot();

        final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
        rangeAxis.setNumberFormatOverride(new DecimalFormat("########0.0"));
        // rangeAxis.setStandardTickUnits(NumberAxis.createStandardTickUnits());

        // Format de l'axe des dates
        final ValueAxis domainAxis = new DateAxis(mXLabel);
        domainAxis.setLowerMargin(0.0);
        domainAxis.setUpperMargin(0.0);
        ((DateAxis) domainAxis).setDateFormatOverride(mDateFormat);
        plot.setDomainAxis(domainAxis);

        super.setChart(retChart);
    }
    return retChart;
}

From source file:wattsup.jsdk.ui.LineChartPanelSupport.java

@Override
public JFreeChart createChart() {
    this.timeSeries_ = new TimeSeriesCollection();
    this.dataset_ = new TranslatingXYDataset(this.timeSeries_);

    JFreeChart chart = ChartFactory.createTimeSeriesChart(this.getTitle(), null, this.getAxisLabel(),
            this.dataset_, true, true, false);

    chart.setBackgroundPaint(getBackground());
    XYPlot xyPlot = chart.getXYPlot();
    xyPlot.setOrientation(PlotOrientation.VERTICAL);
    xyPlot.setBackgroundPaint(Color.WHITE);
    xyPlot.setDomainGridlinePaint(Color.BLACK.darker());
    xyPlot.setRangeGridlinePaint(Color.BLACK.darker());
    xyPlot.setAxisOffset(new RectangleInsets(5.0D, 5.0D, 5.0D, 5.0D));
    xyPlot.setDomainCrosshairLockedOnData(true);
    xyPlot.setRangeCrosshairVisible(true);
    chart.setAntiAlias(true);//from w ww  .  j a  v  a  2 s. c o  m

    return chart;
}

From source file:edu.emory.library.tast.database.graphs.GraphTypeXY.java

public JFreeChart createChart(Object[] data) {

    CategoryTableXYDataset dataset = new CategoryTableXYDataset();

    JFreeChart chart = ChartFactory.createXYLineChart(null, getSelectedIndependentVariable().getLabel(),
            TastResource.getText("components_charts_barvalue"), dataset, PlotOrientation.VERTICAL, true, true,
            false);//from  w w  w .j  a va  2  s .  com

    Format formatter = getSelectedIndependentVariable().getFormat();

    XYPlot plot = chart.getXYPlot();
    if (formatter != null)
        ((NumberAxis) plot.getDomainAxis()).setNumberFormatOverride((NumberFormat) formatter);

    chart.setBackgroundPaint(Color.white);

    List allDataSeries = getDataSeries();
    for (int j = 0; j < allDataSeries.size(); j++) {
        DataSeries dataSearies = (DataSeries) allDataSeries.get(j);
        String dataSeriesLabel = dataSearies.formatForDisplay();
        for (int i = 0; i < data.length; i++) {
            Object[] row = (Object[]) data[i];
            Number x = (Number) row[0];
            Number y = (Number) row[j + 1];
            if (x != null && y != null)
                dataset.add(x.doubleValue(), y.doubleValue(), dataSeriesLabel);
        }
    }

    LegendItemCollection legendItems = chart.getPlot().getLegendItems();
    for (int i = 0; i < legendItems.getItemCount(); i++) {
        LegendItem legendItem = legendItems.get(i);
        DataSeries dataSearies = (DataSeries) allDataSeries.get(i);
        if (legendItem.getFillPaint() instanceof Color) {
            dataSearies.setColor(((Color) legendItem.getFillPaint()));
        }
    }

    return chart;

}