Example usage for org.jfree.chart.plot IntervalMarker IntervalMarker

List of usage examples for org.jfree.chart.plot IntervalMarker IntervalMarker

Introduction

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

Prototype

public IntervalMarker(double start, double end, Paint paint, Stroke stroke, Paint outlinePaint,
        Stroke outlineStroke, float alpha) 

Source Link

Document

Constructs an interval marker.

Usage

From source file:com.sciaps.common.RegionMarkerItem.java

private void createMarker() {
    final Color c = new Color(8, 255, 8, 63);
    marker_ = new IntervalMarker(min_, max_, c, new BasicStroke(2.0f), null, null, 1.0f);
    String[] tmp = name_.split("-");
    marker_.setLabel(tmp[0]);//w ww.j  a va 2  s. c o m
    marker_.setLabelPaint(Color.blue);
    marker_.setLabelFont(new java.awt.Font("Tahoma", 1, 14));
    marker_.setLabelOffset(new RectangleInsets(50, 10, 10, 20));
}

From source file:com.hmsinc.epicenter.webapp.remoting.ForecastingService.java

@Secured("ROLE_USER")
@Transactional(readOnly = true)// ww  w . ja va2 s  .  c o m
@RemoteMethod
public String getSeasonalTrendChart(final AnalysisParametersDTO paramsDTO) {

    final AnalysisParameters params = convertParameters(paramsDTO);

    // 60 day window
    final DateTime windowStart = params.getEndDate().minusDays(59);

    // Set the start date back 1 year + 60 days
    params.setStartDate(windowStart.minusYears(1).minusDays(59));

    final TimeSeriesChart chart = new TimeSeriesChart();

    final TimeSeries ts = queryService.queryForTimeSeries(params, paramsDTO.getAlgorithmName(), null);

    if (ts != null) {

        final TimeSeries forecast = waveletSeasonalTrendForecaster.process(ts.after(windowStart),
                ts.before(windowStart.minusDays(1)), null);
        final TimeSeries known = forecast.before(params.getEndDate());
        final TimeSeries predicted = forecast.after(params.getEndDate().plusDays(1));

        chart.addBand("70% Confidence Prediction", predicted, ResultType.LOWER_BOUND_70,
                ResultType.UPPER_BOUND_70, new Color(0x0072bf), new Color(0x0072bf));
        chart.addBand("80% Confidence Prediction", predicted, ResultType.LOWER_BOUND_80,
                ResultType.UPPER_BOUND_80, new Color(0x0099ff), new Color(0x0099ff));
        chart.addBand("90% Confidence Prediction", predicted, ResultType.LOWER_BOUND_90,
                ResultType.UPPER_BOUND_90, new Color(0x3fb2ff), new Color(0x3fb2ff));
        chart.addBand("95% Confidence Prediction", predicted, ResultType.LOWER_BOUND_95,
                ResultType.UPPER_BOUND_95, new Color(0xbfe5ff), new Color(0xbfe5ff));

        chart.add("Actual Value", known, ChartColor.VALUE.getColor(), LineStyle.DOTTED);
        chart.add("Actual Trend", known, ResultType.TREND, ChartColor.VALUE.getColor(), LineStyle.THICK);

        final DateTime knownFirst = known.first().getTime();
        final DateTime predictedFirst = predicted.first().getTime();

        final Marker marker = new IntervalMarker(
                new Day(knownFirst.getDayOfMonth(), knownFirst.getMonthOfYear(), knownFirst.getYear())
                        .getFirstMillisecond(),
                new Day(predictedFirst.getDayOfMonth(), predictedFirst.getMonthOfYear(),
                        predictedFirst.getYear()).getFirstMillisecond(),
                Color.LIGHT_GRAY, new BasicStroke(2.0f), null, null, 1.0f);
        marker.setAlpha(0.3f);
        chart.getMarkers().add(marker);
        chart.setYLabel(params.getDataRepresentation().getDisplayName());
        chart.setAlwaysScaleFromZero(false);
    }

    return chartService.getChartURL(chart);

}

From source file:storybook.ui.chart.jfreechart.ChartUtil.java

public static Marker getDateIntervalMarker(Date paramDate1, Date paramDate2, String paramString) {
    double d1 = paramDate1.getTime();
    double d2 = paramDate2.getTime();
    BasicStroke localBasicStroke = new BasicStroke(0.3F);
    IntervalMarker localIntervalMarker = new IntervalMarker(d1, d2, Color.pink, localBasicStroke, Color.black,
            localBasicStroke, 0.5F);//from   www . ja  v a2s.  c  o  m
    localIntervalMarker.setLabel(paramString);
    localIntervalMarker.setLabelAnchor(RectangleAnchor.BOTTOM);
    localIntervalMarker.setLabelTextAnchor(TextAnchor.BOTTOM_CENTER);
    return localIntervalMarker;
}

From source file:daylightchart.daylightchart.chart.DaylightChart.java

private void createDSTMarker(final XYPlot plot) {
    if (!riseSetData.usesDaylightTime()) {
        return;//from  ww  w  .j  a va  2 s  .c om
    }

    final long intervalStart = riseSetData.getDstStartDate().atStartOfDay().atZone(ZoneId.systemDefault())
            .toInstant().toEpochMilli();
    final long intervalEnd = riseSetData.getDstEndDate().atStartOfDay().atZone(ZoneId.systemDefault())
            .toInstant().toEpochMilli();
    final IntervalMarker dstMarker = new IntervalMarker(intervalStart, intervalEnd,
            ChartConfiguration.nightColor, new BasicStroke(0.0f), null, null, 0.4f);
    dstMarker.setLabelPaint(Color.WHITE);
    dstMarker.setLabelAnchor(RectangleAnchor.BOTTOM_RIGHT);
    dstMarker.setLabelTextAnchor(TextAnchor.BASELINE_RIGHT);
    //
    plot.addDomainMarker(dstMarker, Layer.BACKGROUND);
}

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

/**
 * Creates a chart./*from  w w  w  .j a  v a  2 s .  c o m*/
 * 
 * @param dataset  the dataset.
 * 
 * @return The chart.
 */
private JFreeChart createChart(final XYDataset dataset) {
    final JFreeChart chart = ChartFactory.createTimeSeriesChart("Daylight Hours - London, UK", "Date", "Time",
            dataset, true, // legend
            true, // tool tips
            false // URLs
    );
    chart.setBackgroundPaint(Color.white);

    final XYDifferenceRenderer renderer = new XYDifferenceRenderer(Color.blue, Color.blue, false);
    renderer.setStroke(new BasicStroke(2.0f));
    renderer.setSeriesPaint(0, Color.yellow);
    renderer.setSeriesPaint(1, Color.red);
    final XYPlot plot = chart.getXYPlot();
    plot.setRenderer(renderer);
    plot.setBackgroundPaint(Color.lightGray);
    plot.setDomainGridlinePaint(Color.white);
    plot.setRangeGridlinePaint(Color.white);
    //        plot.setAxisOffset(new Spacer(Spacer.ABSOLUTE, 5.0, 5.0, 5.0, 5.0));

    final DateAxis domainAxis = new DateAxis("Time");
    domainAxis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);
    domainAxis.setLowerMargin(0.0);
    domainAxis.setUpperMargin(0.0);
    plot.setDomainAxis(domainAxis);
    plot.setForegroundAlpha(0.5f);

    final Color c = new Color(255, 60, 24, 63);
    final Marker bst = new IntervalMarker(new Day(28, 3, 2004).getFirstMillisecond(),
            new Day(30, 10, 2004).getFirstMillisecond(), c, new BasicStroke(2.0f), null, null, 1.0f);
    bst.setLabel("British Summer Time");
    bst.setLabelAnchor(RectangleAnchor.BOTTOM_RIGHT);
    bst.setLabelFont(new Font("SansSerif", Font.ITALIC + Font.BOLD, 10));
    bst.setLabelTextAnchor(TextAnchor.BASELINE_RIGHT);
    plot.addDomainMarker(bst, Layer.BACKGROUND);

    final DateAxis rangeAxis = new DateAxis("Time");
    rangeAxis.setLowerMargin(0.15);
    rangeAxis.setUpperMargin(0.15);
    plot.setRangeAxis(rangeAxis);
    return chart;
}

From source file:com.planetmayo.debrief.satc_rcp.views.MaintainContributionsView.java

protected void redoOwnshipStates() {
    if (legPlot == null)
        return;/*from   w w  w.  j  a  v  a2  s  .  c  o m*/

    boolean showCourses = true;
    if (showOSCourse != null)
        showCourses = showOSCourse.getSelection();

    java.awt.Color courseCol = java.awt.Color.blue.darker().darker();
    java.awt.Color speedCol = java.awt.Color.blue.brighter().brighter();

    // ok, now loop through and set them
    long startTime = Long.MAX_VALUE;
    long endTime = Long.MIN_VALUE;

    // clear any datasets
    legPlot.setDataset(0, null);
    legPlot.setDataset(1, null);

    // hmm, actually we have to remove any target leg markers
    @SuppressWarnings("unchecked")
    Collection<IntervalMarker> markers = legPlot.getDomainMarkers(Layer.BACKGROUND);
    if (markers != null) {
        ArrayList<IntervalMarker> markersToDelete = new ArrayList<IntervalMarker>(markers);
        Iterator<IntervalMarker> mIter = markersToDelete.iterator();
        while (mIter.hasNext()) {
            IntervalMarker im = mIter.next();
            legPlot.removeDomainMarker(im);
        }
    }

    // hey, does it have any ownship legs?
    TimeSeriesCollection tscC = new TimeSeriesCollection();
    TimeSeriesCollection tscS = new TimeSeriesCollection();
    TimeSeriesCollection tscCLegs = new TimeSeriesCollection();
    TimeSeriesCollection tscSLegs = new TimeSeriesCollection();
    TimeSeries courses = new TimeSeries("Course");
    TimeSeries bearings = new TimeSeries("Bearings");
    TimeSeries speeds = new TimeSeries("Speed");
    TimeSeries courseLegs = new TimeSeries("Course (leg)");
    TimeSeries speedLegs = new TimeSeries("Speed (leg)");

    Iterator<BaseContribution> conts = activeSolver.getContributions().iterator();
    while (conts.hasNext()) {
        BaseContribution baseC = conts.next();
        if (baseC.isActive())
            if (baseC instanceof BearingMeasurementContribution) {
                BearingMeasurementContribution bmc = (BearingMeasurementContribution) baseC;

                Iterator<LegOfData> lIter = null;
                LegOfData thisLeg = null;

                if (bmc.getOwnshipLegs() != null) {
                    lIter = bmc.getOwnshipLegs().iterator();
                    thisLeg = lIter.next();
                }

                List<HostState> hostStates = bmc.getHostState();
                if (hostStates != null) {
                    Iterator<HostState> stateIter = hostStates.iterator();
                    while (stateIter.hasNext()) {
                        BearingMeasurementContribution.HostState hostState = stateIter.next();
                        long thisTime = hostState.time;
                        double thisCourse = hostState.courseDegs;
                        if (showCourses)
                            courses.add(new FixedMillisecond(thisTime), thisCourse);
                        double thisSpeed = hostState.speedKts;
                        speeds.add(new FixedMillisecond(thisTime), thisSpeed);
                        startTime = Math.min(thisTime, startTime);
                        endTime = Math.max(thisTime, endTime);

                        // sort out if this is in a leg or not
                        if (thisLeg != null) {
                            if (thisTime > thisLeg.getEnd() && lIter.hasNext()) {
                                thisLeg = lIter.next();
                            } else {
                                if (thisTime >= thisLeg.getStart()) {
                                    speedLegs.add(new FixedMillisecond(thisTime), thisSpeed);
                                    if (showCourses)
                                        courseLegs.add(new FixedMillisecond(thisTime), thisCourse);
                                }
                            }
                        }
                    }
                }

                // also, we wish to show the bearings from the BMC
                Iterator<BMeasurement> cuts = bmc.getMeasurements().iterator();
                while (cuts.hasNext()) {
                    BearingMeasurementContribution.BMeasurement measurement = cuts.next();
                    if (measurement.isActive()) {
                        long thisT = measurement.getDate().getTime();
                        bearings.add(new FixedMillisecond(thisT),
                                Math.toDegrees(Math.abs(measurement.getBearingRads())));
                    }
                }

            }
    }

    // HEY, also shade the ownship legs
    conts = activeSolver.getContributions().iterator();
    while (conts.hasNext()) {
        BaseContribution baseC = conts.next();
        if (baseC.isActive()) {
            if (baseC instanceof BearingMeasurementContribution) {
                BearingMeasurementContribution bmc = (BearingMeasurementContribution) baseC;

                Iterator<LegOfData> lIter = null;
                if (bmc.getOwnshipLegs() != null) {
                    int ctr = 1;
                    lIter = bmc.getOwnshipLegs().iterator();
                    while (lIter.hasNext()) {
                        LegOfData thisL = lIter.next();
                        long thisStart = thisL.getStart();
                        long thisFinish = thisL.getEnd();

                        java.awt.Color transCol = new java.awt.Color(0, 0, 255, 12);

                        final Marker bst = new IntervalMarker(thisStart, thisFinish, transCol,
                                new BasicStroke(2.0f), null, null, 1.0f);
                        bst.setLabel("O/S-" + ctr++);
                        bst.setLabelAnchor(RectangleAnchor.TOP_LEFT);
                        bst.setLabelFont(new Font("SansSerif", Font.ITALIC + Font.BOLD, 10));
                        bst.setLabelTextAnchor(TextAnchor.TOP_LEFT);
                        legPlot.addDomainMarker(bst, Layer.BACKGROUND);
                    }
                }
            }
        }
    }

    tscS.addSeries(speeds);
    tscSLegs.addSeries(speedLegs);
    tscC.addSeries(bearings);

    if (showCourses) {
        tscC.addSeries(courses);
        tscCLegs.addSeries(courseLegs);
    }

    legPlot.setDataset(0, null);
    legPlot.setDataset(1, null);
    legPlot.setDataset(2, null);
    legPlot.setDataset(3, null);
    legPlot.setDataset(0, tscC);
    legPlot.setDataset(1, tscS);
    legPlot.setDataset(2, tscCLegs);
    legPlot.setDataset(3, tscSLegs);

    final NumberAxis axis2 = new NumberAxis("Speed (Kts)");
    legPlot.setRangeAxis(1, axis2);
    legPlot.mapDatasetToRangeAxis(1, 1);
    legPlot.mapDatasetToRangeAxis(3, 1);

    legPlot.getRangeAxis(0).setLabel("Crse/Brg (Degs)");
    legPlot.mapDatasetToRangeAxis(0, 0);
    legPlot.mapDatasetToRangeAxis(2, 0);

    final XYLineAndShapeRenderer lineRenderer1 = new XYLineAndShapeRenderer(true, true);
    lineRenderer1.setSeriesPaint(1, courseCol);
    lineRenderer1.setSeriesShape(1, ShapeUtilities.createDiamond(0.1f));
    lineRenderer1.setSeriesPaint(0, java.awt.Color.RED);
    lineRenderer1.setSeriesShape(0, ShapeUtilities.createDiamond(2f));

    final XYLineAndShapeRenderer lineRenderer2 = new XYLineAndShapeRenderer(true, false);
    lineRenderer2.setSeriesPaint(0, speedCol);

    final XYLineAndShapeRenderer lineRenderer3 = new XYLineAndShapeRenderer(false, true);
    lineRenderer3.setSeriesPaint(0, courseCol);
    lineRenderer3.setSeriesShape(0, ShapeUtilities.createUpTriangle(2f));

    final XYLineAndShapeRenderer lineRenderer4 = new XYLineAndShapeRenderer(false, true);
    lineRenderer4.setSeriesPaint(0, speedCol);
    lineRenderer4.setSeriesShape(0, ShapeUtilities.createDownTriangle(2f));

    // ok, and store them
    legPlot.setRenderer(0, lineRenderer1);
    legPlot.setRenderer(1, lineRenderer2);
    legPlot.setRenderer(2, lineRenderer3);
    legPlot.setRenderer(3, lineRenderer4);

    if (startTime != Long.MAX_VALUE)
        legPlot.getDomainAxis().setRange(startTime, endTime);

    // ok - get the straight legs to sort themselves out
    // redoStraightLegs();
}

From source file:com.planetmayo.debrief.satc_rcp.views.MaintainContributionsView.java

protected void redoStraightLegs() {
    // ok, clear any leg markers
    if (legPlot != null) {
        if (!graphTabs.isDisposed())
            graphTabs.setSelection(legTab);

        // hmm, actually we have to remove any target leg markers
        @SuppressWarnings("unchecked")
        Collection<IntervalMarker> markers = legPlot.getDomainMarkers(Layer.FOREGROUND);
        if (markers != null) {
            ArrayList<IntervalMarker> markersToDelete = new ArrayList<IntervalMarker>(markers);
            Iterator<IntervalMarker> mIter = markersToDelete.iterator();
            while (mIter.hasNext()) {
                IntervalMarker im = mIter.next();
                legPlot.removeDomainMarker(im);
            }//from   w  ww  .  j a  v  a2  s .co m
        }

        Iterator<BaseContribution> conts = activeSolver.getContributions().iterator();
        while (conts.hasNext()) {
            BaseContribution baseC = conts.next();
            if (baseC.isActive())
                if (baseC instanceof StraightLegForecastContribution) {
                    StraightLegForecastContribution slf = (StraightLegForecastContribution) baseC;
                    java.awt.Color thisCol = slf.getColor();

                    // hmm, has it been given a color (initialised) yet?
                    if (thisCol == null)
                        continue;

                    long thisStart = baseC.getStartDate().getTime();
                    long thisFinish = baseC.getFinishDate().getTime();

                    java.awt.Color transCol = new java.awt.Color(255, 0, 0, 22);

                    final Marker bst = new IntervalMarker(thisStart, thisFinish, transCol,
                            new BasicStroke(2.0f), null, null, 1.0f);
                    bst.setLabel(baseC.getName());
                    bst.setLabelAnchor(RectangleAnchor.BOTTOM_LEFT);
                    bst.setLabelFont(new Font("SansSerif", Font.ITALIC + Font.BOLD, 10));
                    bst.setLabelTextAnchor(TextAnchor.BASELINE_LEFT);
                    legPlot.addDomainMarker(bst, Layer.FOREGROUND);
                } else {
                    if (baseC instanceof BearingMeasurementContribution) {

                    }
                }
        }

    }

}