Example usage for org.jfree.chart.plot XYPlot getDomainAxis

List of usage examples for org.jfree.chart.plot XYPlot getDomainAxis

Introduction

In this page you can find the example usage for org.jfree.chart.plot XYPlot getDomainAxis.

Prototype

public ValueAxis getDomainAxis() 

Source Link

Document

Returns the domain axis with index 0.

Usage

From source file:fr.ign.cogit.simplu3d.rjmcmc.generic.visitor.StatsVisitor.java

/**
 * Creates a sample chart.// ww  w .  j av a  2s  .c  om
 * 
 * @param dataset
 *            the dataset.
 * @return A sample chart.
 */
private JFreeChart createChart(final XYDataset dataset) {
    final JFreeChart result = ChartFactory.createXYLineChart("volution de l'nergie", "Itration",
            "nergie", dataset, PlotOrientation.VERTICAL, true, true, true);

    result.setBorderPaint(Color.white);

    result.setBackgroundPaint(Color.white);

    final XYPlot plot = result.getXYPlot();

    Font font = new Font("Verdana", Font.PLAIN, 32);
    Font font2 = new Font("Verdana", Font.PLAIN, 28);

    // axe x
    ValueAxis axis = plot.getDomainAxis();

    axis.setLabelFont(font);
    axis.setTickLabelFont(font2);

    axis.setAutoRange(true);
    // axis.setFixedAutoRange(60000.0); // 60 seconds
    axis = plot.getRangeAxis();

    // axe y
    ValueAxis axis2 = plot.getRangeAxis();

    axis2.setLabelFont(font);
    axis2.setTickLabelFont(font2);

    axis2.setAutoRange(true);
    // axis.setFixedAutoRange(60000.0); // 60 seconds
    axis2 = plot.getRangeAxis();

    plot.setRangeGridlinePaint(Color.LIGHT_GRAY);
    plot.setDomainGridlinePaint(Color.LIGHT_GRAY);
    plot.setBackgroundPaint(Color.white);

    XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) plot.getRenderer();

    renderer.setSeriesPaint(0, new Color(255, 0, 0));
    renderer.setSeriesStroke(0, new BasicStroke(3.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 1.0f));

    renderer.setLegendTextFont(0, font2);

    renderer.setSeriesPaint(1, new Color(2, 157, 116));
    renderer.setSeriesStroke(1, new BasicStroke(3.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 1.0f));

    renderer.setLegendTextFont(1, font2);

    renderer.setSeriesPaint(2, new Color(112, 147, 219));
    renderer.setSeriesStroke(2, new BasicStroke(3.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 1.0f));

    renderer.setLegendTextFont(2, font2);

    renderer.setSeriesPaint(3, new Color(140, 23, 23));
    renderer.setSeriesStroke(3, new BasicStroke(3.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 1.0f,
            new float[] { 6.0f, 6.0f }, 0.0f));

    renderer.setLegendTextFont(3, font2);

    // axis.setRange(0.0, 200.0);
    return result;
}

From source file:net.sf.maltcms.chromaui.foldChangeViewer.tasks.FoldChangeViewLoaderWorker.java

@Override
public void run() {
    ProgressHandle handle = ProgressHandleFactory.createHandle("Creating fold change plot");
    try {//from   w  w  w .  ja  va2s . co  m
        handle.setDisplayName("Loading fold change elements");//+new File(this.files.getResourceLocation()).getName());
        handle.start(5);
        handle.progress("Reading settings", 1);
        RTUnit rtAxisUnit = RTUnit.valueOf(sp.getProperty("rtAxisUnit", "SECONDS"));
        handle.progress("Retrieving data", 2);
        XYShapeRenderer renderer = new XYShapeRenderer() {

            @Override
            protected Paint getPaint(XYDataset dataset, int series, int item) {
                double x = dataset.getXValue(series, item);
                double y = dataset.getYValue(series, item);
                if (Math.abs(x) < 1.0) {
                    Paint p = super.getPaint(dataset, series, item);
                    if (p instanceof Color) {
                        Color color = (Color) p;
                        float[] values = Color.RGBtoHSB(color.getRed(), color.getGreen(), color.getBlue(),
                                new float[3]);
                        Color hsb = new Color(
                                Color.HSBtoRGB(values[0], (float) Math.max(0.1, values[1] - 0.9), values[2]));
                        return new Color(hsb.getRed(), hsb.getGreen(), hsb.getBlue(), 64);
                    }
                }
                return super.getPaint(dataset, series, item);
            }

        };
        renderer.setAutoPopulateSeriesFillPaint(true);
        renderer.setAutoPopulateSeriesOutlinePaint(true);
        renderer.setBaseCreateEntities(true);
        handle.progress("Building plot", 3);
        XYPlot plot = new XYPlot(dataset, new NumberAxis("log2 fold change"), new NumberAxis("-log10 p-value"),
                renderer);
        BasicStroke dashed = new BasicStroke(1.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 5.0f,
                new float[] { 5.0f }, 0.0f);
        ValueMarker marker = new ValueMarker(-Math.log10(0.05), Color.RED, dashed);
        marker.setLabel("p-value=0.05");
        marker.setLabelAnchor(RectangleAnchor.BOTTOM_LEFT);
        marker.setLabelOffset(new RectangleInsets(UnitType.ABSOLUTE, 0, 50, 10, 0));
        marker.setLabelOffsetType(LengthAdjustmentType.EXPAND);
        marker.setLabelPaint(Color.LIGHT_GRAY);
        plot.addRangeMarker(marker);

        Font font1 = new Font("SansSerif", Font.PLAIN, 12);
        SelectionAwareXYTooltipGenerator tooltipGenerator = cvtc.getLookup()
                .lookup(SelectionAwareXYTooltipGenerator.class);
        if (tooltipGenerator == null) {
            tooltipGenerator = new SelectionAwareXYTooltipGenerator(tooltipGenerator) {
                @Override
                public String createSelectionAwareTooltip(XYDataset xyd, int i, int i1) {
                    FoldChangeDataset dataset = (FoldChangeDataset) xyd;
                    FoldChangeElement fce = dataset.getNamedElementProvider().get(i).get(i1);
                    StringBuilder sb = new StringBuilder();
                    sb.append("<html>");
                    sb.append(fce.getPeakGroup().getMajorityDisplayName());
                    sb.append("<br>");
                    sb.append("log2 fold change=");
                    sb.append(fce.getFoldChange());
                    sb.append("<br>");
                    sb.append("p-value=");
                    sb.append(Math.pow(10, -fce.getPvalue()));
                    sb.append("</html>");
                    return sb.toString();
                }
            };
        }
        tooltipGenerator.setXYToolTipGenerator(new XYToolTipGenerator() {
            @Override
            public String generateToolTip(XYDataset xyd, int i, int i1) {
                Comparable comp = xyd.getSeriesKey(i);
                double x = xyd.getXValue(i, i1);
                double y = xyd.getYValue(i, i1);
                StringBuilder sb = new StringBuilder();
                sb.append("<html>");
                sb.append(comp);
                sb.append("<br>");
                sb.append("log2 fold change=");
                sb.append(x);
                sb.append("<br>");
                sb.append("p-value=");
                sb.append(sb.append(Math.pow(10, -y)));
                sb.append("</html>");
                return sb.toString();
            }
        });
        plot.getRenderer().setBaseToolTipGenerator(tooltipGenerator);
        handle.progress("Configuring plot", 4);
        configurePlot(plot, rtAxisUnit);
        final FoldChangeViewPanel cmhp = cvtc.getLookup().lookup(FoldChangeViewPanel.class);
        Range domainRange = null;
        Range valueRange = null;
        if (cmhp != null) {
            XYPlot xyplot = cmhp.getPlot();
            if (xyplot != null) {
                ValueAxis domain = xyplot.getDomainAxis();
                domainRange = domain.getRange();
                ValueAxis range = xyplot.getRangeAxis();
                valueRange = range.getRange();
            }
        }

        if (domainRange != null) {
            plot.getDomainAxis().setRange(domainRange);
        }
        if (valueRange != null) {
            Logger.getLogger(getClass().getName()).info("Setting previous value range!");
        }
        handle.progress("Adding plot to panel", 5);
        final XYPlot targetPlot = plot;
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                final FoldChangeViewPanel cmhp = cvtc.getLookup().lookup(FoldChangeViewPanel.class);
                cmhp.setPlot(targetPlot);
                cvtc.requestActive();
            }
        });
    } finally {
        handle.finish();
    }
}

From source file:org.trade.ui.chart.renderer.HeikinAshiRenderer.java

/**
 * Method initialise.//  w ww .j  av  a  2s  . c  o  m
 * 
 * @param g2
 *            Graphics2D
 * @param dataArea
 *            Rectangle2D
 * @param plot
 *            XYPlot
 * @param dataset
 *            XYDataset
 * @param info
 *            PlotRenderingInfo
 * @return XYItemRendererState
 * @see org.jfree.chart.renderer.xy.XYItemRenderer#initialise(Graphics2D,
 *      Rectangle2D, XYPlot, XYDataset, PlotRenderingInfo)
 */
public XYItemRendererState initialise(Graphics2D g2, Rectangle2D dataArea, XYPlot plot, XYDataset dataset,
        PlotRenderingInfo info) {

    ValueAxis axis = plot.getDomainAxis();
    double x1 = axis.getLowerBound();
    double x2 = x1 + getMaxCandleWidthInMilliseconds();
    RectangleEdge edge = plot.getDomainAxisEdge();
    double xx1 = axis.valueToJava2D(x1, dataArea, edge);
    double xx2 = axis.valueToJava2D(x2, dataArea, edge);
    maxCandleWidth = Math.abs(xx2 - xx1);
    return new XYItemRendererState(info);
}

From source file:classpackage.ChartGalaxy.java

private static JFreeChart createChart(final XYDataset dataset) {
    JFreeChart jfreechart = ChartFactory.createScatterPlot("MDS Galaxy", "X", "Y", createDataset(),
            PlotOrientation.VERTICAL, true, true, false);
    XYPlot xyPlot = (XYPlot) jfreechart.getPlot();
    XYItemRenderer renderer = xyPlot.getRenderer();
    renderer.setBaseItemLabelGenerator(new LabelGenerator());
    renderer.setBaseItemLabelPaint(Color.WHITE);//label
    renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.CENTER));
    renderer.setBaseItemLabelFont(renderer.getBaseItemLabelFont().deriveFont(15f));
    renderer.setBaseItemLabelsVisible(true);
    renderer.setBaseToolTipGenerator(new StandardXYToolTipGenerator());

    //set false para linhas no grafico
    xyPlot.setDomainGridlinesVisible(false);
    xyPlot.setRangeGridlinesVisible(false);
    xyPlot.setRangeMinorGridlinesVisible(false);
    xyPlot.setRangeCrosshairVisible(false);
    xyPlot.setRangeCrosshairLockedOnData(false);
    xyPlot.setRangeZeroBaselineVisible(false);
    xyPlot.setBackgroundPaint(Color.BLACK);
    double size = 40.0;
    double delta = size / 2.0;
    Shape shape = new Rectangle2D.Double(-delta, -delta, size, size);

    renderer.setSeriesShape(0, shape);/*  www.j ava2s . c o  m*/
    renderer.setSeriesPaint(0, transparent);

    NumberAxis domain = (NumberAxis) xyPlot.getDomainAxis();
    domain.setRange(-0.1, 0.1);
    domain.setTickUnit(new NumberTickUnit(0.1));
    domain.setVerticalTickLabels(true);
    NumberAxis range = (NumberAxis) xyPlot.getRangeAxis();
    range.setRange(-0.1, 0.1);
    range.setTickUnit(new NumberTickUnit(0.1));

    return jfreechart;
}

From source file:de.hs.mannheim.modUro.diagram.JTimeSeriesDiagram.java

protected JFreeChart createChart(XYDataset dataset, String name) {
    String title = name;/*from  w  w  w  . j  a  v a2  s.  c  om*/

    JFreeChart xyLineChart = ChartFactory.createXYLineChart(title, // title
            "t", // x-axis label
            "f", // y-axis label
            dataset);

    String fontName = "Palatino";
    xyLineChart.getTitle().setFont(new Font(fontName, Font.BOLD, 18));

    XYPlot plot = (XYPlot) xyLineChart.getPlot();
    plot.setDomainPannable(true);
    plot.setRangePannable(true);
    plot.setDomainCrosshairVisible(true);
    plot.setRangeCrosshairVisible(true);
    plot.getDomainAxis().setLowerMargin(0.0);
    plot.getDomainAxis().setLabelFont(new Font(fontName, Font.BOLD, 14));
    plot.getDomainAxis().setTickLabelFont(new Font(fontName, Font.PLAIN, 12));
    plot.getRangeAxis().setLowerMargin(0.0);
    if (isMetric) {
        plot.getRangeAxis().setRange(0.0, 1.01);
    }
    plot.getRangeAxis().setLabelFont(new Font(fontName, Font.BOLD, 14));
    plot.getRangeAxis().setTickLabelFont(new Font(fontName, Font.PLAIN, 12));
    plot.setBackgroundPaint(Color.white);
    plot.setRangeGridlinePaint(Color.gray);
    xyLineChart.getLegend().setItemFont(new Font(fontName, Font.PLAIN, 14));
    xyLineChart.getLegend().setFrame(BlockBorder.NONE);
    xyLineChart.getLegend().setHorizontalAlignment(HorizontalAlignment.CENTER);
    XYItemRenderer r = plot.getRenderer();
    if (r instanceof XYLineAndShapeRenderer) {
        XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) r;
        renderer.setBaseShapesVisible(false);
        renderer.setDrawSeriesLineAsPath(true);
        // set the default stroke for all series
        renderer.setAutoPopulateSeriesStroke(false);
        renderer.setSeriesPaint(0, Color.blue);
        renderer.setSeriesPaint(1, new Color(24, 123, 58));
        renderer.setSeriesPaint(2, new Color(149, 201, 136));
        renderer.setSeriesPaint(3, new Color(1, 62, 29));
        renderer.setSeriesPaint(4, new Color(81, 176, 86));
        renderer.setSeriesPaint(5, new Color(0, 55, 122));
        renderer.setSeriesPaint(6, new Color(0, 92, 165));
    }

    return xyLineChart;
}

From source file:uk.ac.ed.epcc.webapp.charts.jfreechart.JFreeTimeChartData.java

private TimeChartDataSet addTimeSeries(TimeChartDataSet dataset) throws InvalidArgument {
    if (dataset == null) {
        dataset = makeDataSet(1);//from   w w w.j a  v a2s  .  co m
    }

    if (chart == null) {
        chart = ChartFactory.createTimeSeriesChart(title, "Time", quantity, dataset, true, false, false);
        XYPlot xyPlot = (XYPlot) chart.getPlot();

        DateAxis axis = (DateAxis) xyPlot.getDomainAxis();
        //axis.setRange(period.getStart(), period.getEnd());
        //axis.setLowerMargin(0.0);
        //axis.setUpperMargin(0.0);

        if (period instanceof CalendarFieldSplitPeriod) {
            TickUnits u = getUnits((CalendarFieldSplitPeriod) period);
            if (u != null) {
                axis.setStandardTickUnits(u);
            }
        }
        axis.setMinimumDate(period.getStart());
        axis.setMaximumDate(period.getEnd());
        LegendTitle leg = chart.getLegend();
        leg.setSortOrder(SortOrder.DESCENDING);
        leg.setPosition(RectangleEdge.RIGHT);
    } else {
        XYPlot xyPlot = (XYPlot) chart.getPlot();
        xyPlot.setDataset(ndatasets, dataset);
    }
    dataset.setDatasetId(ndatasets);
    ndatasets++;
    plots.add(dataset);
    return dataset;
}

From source file:edu.ucla.stat.SOCR.chart.demo.XYAreaChartDemo1.java

/**
 * Creates a chart./*w w  w  .  jav  a2s .co  m*/
 * 
 * @param dataset  the dataset.
 * 
 * @return A chart.
 */
protected JFreeChart createChart(XYDataset dataset) {

    JFreeChart chart = ChartFactory.createXYAreaChart(chartTitle, "Domain (X)", "Range (Y)", dataset,
            PlotOrientation.VERTICAL, !legendPanelOn, // legend
            true, // tool tips
            false // URLs
    );

    chart.setBackgroundPaint(Color.white);

    XYPlot plot = (XYPlot) chart.getPlot();
    plot.setBackgroundPaint(Color.lightGray);
    plot.setForegroundAlpha(0.65f);
    plot.setDomainGridlinePaint(Color.white);
    plot.setRangeGridlinePaint(Color.white);

    ValueAxis domainAxis = plot.getDomainAxis();
    domainAxis.setTickMarkPaint(Color.black);
    domainAxis.setLowerMargin(0.0);
    domainAxis.setUpperMargin(0.0);

    ValueAxis rangeAxis = plot.getRangeAxis();
    rangeAxis.setTickMarkPaint(Color.black);

    /*  XYPointerAnnotation pointer = new XYPointerAnnotation(
    "Test", 5.0, -500.0, 3.0 * Math.PI / 4.0
      );
      pointer.setTipRadius(0.0); 
      pointer.setBaseRadius(35.0); 
      pointer.setFont(new Font("SansSerif", Font.PLAIN, 9)); 
      pointer.setPaint(Color.blue); 
      pointer.setTextAnchor(TextAnchor.HALF_ASCENT_RIGHT); 
      plot.addAnnotation(pointer);*/

    XYItemRenderer renderer = plot.getRenderer();
    renderer.setLegendItemLabelGenerator(new SOCRXYSeriesLabelGenerator());
    setXSummary(dataset);
    return chart;

}

From source file:edu.umn.ecology.populus.plot.ChartRendererWithOrientatedShapes.java

@Override
protected void drawSecondaryPass(Graphics2D g2, XYPlot plot, XYDataset dataset, int pass, int series, int item,
        ValueAxis domainAxis, Rectangle2D dataArea, ValueAxis rangeAxis, CrosshairState crosshairState,
        EntityCollection entities) {/*from w  ww.j a v  a 2  s.  c o m*/

    //Orient the shapes first
    double graphicsRatio = dataArea.getHeight() / dataArea.getWidth();
    double dataRatio = plot.getRangeAxis().getRange().getLength() / plot.getDomainAxis().getRange().getLength();
    double ratio = graphicsRatio / dataRatio;
    bpInfo.updateDirectedSymbolsJFC(this, ratio);

    //Now call this to do the rest
    super.drawSecondaryPass(g2, plot, dataset, pass, series, item, domainAxis, dataArea, rangeAxis,
            crosshairState, entities);
}

From source file:userInterface.doctor.ReportingPatientVitalHistJPanel.java

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
    // TODO add your handling code here:

    TimeSeriesCollection ts = new TimeSeriesCollection();
    TimeSeries object1 = new TimeSeries("RespiratoryRate");
    TimeSeries object2 = new TimeSeries("HeartRate");
    TimeSeries object3 = new TimeSeries("SystolicPressure");
    TimeSeries object4 = new TimeSeries("Weight");

    for (VitalSignInfo vitalsign : patient.getVitalHistory().getVitalHistory()) {

        int rr = (int) vitalsign.getRespRate();
        int hr = (int) vitalsign.getHeartRate();
        int sp = (int) vitalsign.getSystolicBP();
        int wt = (int) vitalsign.getWeight();

        try {//from   w ww.  jav a  2  s.c o m
            object1.add(new Second(vitalsign.getTimeStamp()), rr);
            object2.add(new Second(vitalsign.getTimeStamp()), hr);
            object3.add(new Second(vitalsign.getTimeStamp()), sp);
            object4.add(new Second(vitalsign.getTimeStamp()), wt);
        } catch (ParseException ex) {
            //  Logger.getLogger(ReportingPatientVitalHistJPanel.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

    ts.addSeries(object1);
    ts.addSeries(object2);
    ts.addSeries(object3);
    ts.addSeries(object4);

    JFreeChart chart = ChartFactory.createTimeSeriesChart("Vital Signs", "TimeStamp", "Vital Sign Values", ts,
            true, true, true);

    chart.setBackgroundPaint(Color.GRAY);
    chart.getTitle().setPaint(Color.red);

    XYPlot xy = (XYPlot) chart.getPlot();
    DateAxis da = (DateAxis) xy.getDomainAxis();
    da.setDateFormatOverride(new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"));

    ChartFrame frame = new ChartFrame("Chart for Vital Signs", chart);
    frame.setVisible(true);
    frame.setSize(450, 350);

}

From source file:net.sf.maltcms.chromaui.chromatogram1Dviewer.tasks.ChromatogramViewLoaderWorker.java

@Override
public void run() {
    ProgressHandle handle = ProgressHandleFactory.createHandle("Creating 1D Chromatogram plot");
    try {//from   ww  w. j av  a  2 s. c om
        handle.setDisplayName("Loading " + files.size() + " chromatograms");//+new File(this.files.getResourceLocation()).getName());
        handle.start(5);
        Logger.getLogger(getClass().getName()).info("Running Chromatogram open action!");

        Logger.getLogger(getClass().getName()).info("Storing current viewport!");

        Logger.getLogger(getClass().getName()).info("Retrieving settings from panel");
        handle.progress("Reading settings", 1);
        double massResolution = Double.parseDouble(sp.getProperty("massResolution", "1.0"));
        double[] masses = null;
        String[] massesStrings = (sp.getProperty("selectedMasses", "73.0 147.0")).trim().split(" ");
        masses = new double[massesStrings.length];
        for (int i = 0; i < massesStrings.length; i++) {
            masses[i] = Double.parseDouble(massesStrings[i]);
        }
        String plotMode = sp.getProperty("plotMode", "TIC");
        String plotType = sp.getProperty("plotType", "SIDE");
        RTUnit rtAxisUnit = RTUnit.valueOf(sp.getProperty("rtAxisUnit", "SECONDS"));

        //        boolean autoRange = Boolean.parseBoolean(sp.getProperty("autoRange","true"));
        //        if(autoRange) {
        //            
        //        }
        //        
        //        double minRT = Double.parseDouble(sp.getProperty("timeRangeMin"));
        //        double maxRT = Double.parseDouble(sp.getProperty("timeRangeMax"));
        //        MinMax mm = MAMath.getMinMax(file.getScanAcquisitionTime());
        //        
        handle.progress("Retrieving peaks", 2);
        Chromatogram1DChartProvider c1p = new Chromatogram1DChartProvider();
        c1p.setRenderer(settingsPanel.getRenderer());

        //            c1p.setPeakData(filePeakMap);
        //        c1p.setScanRange(file.getIndexFor(Math.max(mm.min, minRT)),file.getIndexFor(Math.min(mm.max, maxRT)));
        XYPlot plot = null;
        Logger.getLogger(getClass().getName()).log(Level.INFO, "Plot mode is {0}", plotMode);
        SelectionAwareXYTooltipGenerator tooltipGenerator = cvtc.getLookup()
                .lookup(SelectionAwareXYTooltipGenerator.class);
        if (tooltipGenerator == null) {
            tooltipGenerator = new SelectionAwareXYTooltipGenerator(tooltipGenerator) {
                @Override
                public String createSelectionAwareTooltip(XYDataset xyd, int i, int i1) {
                    return null;
                }
            };
        }
        handle.progress("Building plot", 3);
        switch (plotMode) {
        case "TIC":
            Logger.getLogger(getClass().getName()).info("Loading TIC");
            switch (plotType) {
            case "SIDE":
                plot = c1p.provide1DPlot(dataset, tooltipGenerator);
                break;
            case "TOP":
                plot = c1p.provide1DCoPlot(new TopViewDataset<>(dataset), tooltipGenerator, dataset.getMinY(),
                        dataset.getMaxY(), true);
                break;
            }
            break;
        case "EIC-SUM": {
            Logger.getLogger(getClass().getName()).info("Loading EIC-SUM");
            EIC1DDataset ds = new EIC1DDataset(dataset.getNamedElementProvider(), masses, massResolution,
                    EIC1DDataset.TYPE.SUM, new ProxyLookup(dataset.getLookup()));
            switch (plotType) {
            case "SIDE":
                plot = c1p.provide1DEICSUMPlot(ds, tooltipGenerator, masses, massResolution, true);
                break;
            case "TOP":
                plot = c1p.provide1DCoPlot(new TopViewDataset<>(ds), tooltipGenerator, ds.getMinY(),
                        ds.getMaxY(), true);
                break;
            }
            break;
        }
        case "EIC-COPLOT": {
            Logger.getLogger(getClass().getName()).info("Loading EIC-COPLOT");
            EIC1DDataset ds = new EIC1DDataset(dataset.getNamedElementProvider(), masses, massResolution,
                    EIC1DDataset.TYPE.CO, new ProxyLookup(dataset.getLookup()));
            switch (plotType) {
            case "SIDE":
                plot = c1p.provide1DEICCOPlot(ds, tooltipGenerator, masses, massResolution, true);
                break;
            case "TOP":
                plot = c1p.provide1DCoPlot(new TopViewDataset<>(ds), tooltipGenerator, ds.getMinY(),
                        ds.getMaxY(), true);
                break;
            }
            break;
        }
        }

        handle.progress("Configuring plot", 4);
        configurePlot(plot, rtAxisUnit);

        final Chromatogram1DViewPanel cmhp = cvtc.getLookup().lookup(Chromatogram1DViewPanel.class);
        Range domainRange = null;
        Range valueRange = null;
        if (cmhp != null) {
            XYPlot xyplot = cmhp.getPlot();
            if (xyplot != null) {
                ValueAxis domain = xyplot.getDomainAxis();
                domainRange = domain.getRange();
                ValueAxis range = xyplot.getRangeAxis();
                valueRange = range.getRange();
            }
        }

        if (domainRange != null) {
            Logger.getLogger(getClass().getName()).info("Setting previous domain range!");
            plot.getDomainAxis().setRange(domainRange);
        }
        if (valueRange != null) {
            Logger.getLogger(getClass().getName()).info("Setting previous value range!");
            plot.getRangeAxis().setRange(valueRange);
        }
        handle.progress("Adding plot to panel", 5);
        final XYPlot targetPlot = plot;
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                final Chromatogram1DViewPanel cmhp = cvtc.getLookup().lookup(Chromatogram1DViewPanel.class);
                cmhp.setPlot(targetPlot);
                cvtc.requestActive();
            }
        });
    } finally {
        handle.finish();
    }
}