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) 

Source Link

Document

Constructs an interval marker.

Usage

From source file:net.sf.jasperreports.customizers.marker.AbstractIntervalMarkerCustomizer.java

protected IntervalMarker createMarker() {
    Double startValue = getDoubleProperty(PROPERTY_START_VALUE);
    Double endValue = getDoubleProperty(PROPERTY_END_VALUE);

    if (startValue == null || endValue == null) {
        return null;
    }// w ww . ja  v a 2 s  .  co  m

    IntervalMarker marker = new IntervalMarker(startValue, endValue);

    configureMarker(marker);

    Float strokeWidth = getFloatProperty(PROPERTY_STROKE_WIDTH);
    if (strokeWidth != null && strokeWidth > 0) {
        BasicStroke basicStroke = getStroke(strokeWidth);

        marker.setOutlineStroke(basicStroke);

        Color outlineColor = JRColorUtil.getColor(getProperty(PROPERTY_OUTLINE_COLOR), null);
        if (outlineColor != null) {
            marker.setOutlinePaint(outlineColor);
        }
    }

    return marker;
}

From source file:cgpanalyser.gui.chart.XYMouseMarker.java

private void updateMarker() {
    if (marker != null) {
        plot.removeDomainMarker(marker, Layer.BACKGROUND);
        markerActive = false;/*from  w  w w  . java 2s.  co  m*/
        //System.out.println("removeDomainMarker, markerStart: " + markerStart + ", markerEnd: " + markerEnd);
    }
    if (!(markerStart.isNaN() || markerEnd.isNaN()))
        if (getMarkerEnd() > getMarkerStart()) {
            marker = new IntervalMarker(getMarkerStart(), getMarkerEnd());
            marker.setPaint(markerColor);
            plot.addDomainMarker(marker, Layer.BACKGROUND);
            markerActive = true;
            //System.out.println("addDomainMarker, markerStart: " + markerStart + ", markerEnd: " + markerEnd);
        }
}

From source file:cz.dfi.multiplegraphscomponent.SelectionHighlighter.java

@Override
public void resultChanged(LookupEvent ev) {
    Lookup l = FileLookup.getDefault();/*w w w. ja v a 2 s  . c o m*/
    TimeValueSelection value = l.lookup(TimeValueSelection.class);
    plot.clearDomainMarkers();
    if (value != null) { //To millis conversion
        ValueMarker valueMarker = new ValueMarker(value.getSelectedValue().getRecorderValue() / 1_000_000);
        plot.addDomainMarker(valueMarker);
        valueMarker.setPaint(ORANGE);
        return;
    }
    TimeIntervalSelection interval = l.lookup(TimeIntervalSelection.class);
    if (interval != null) {
        long l1 = interval.getSelectedInterval().t1.getRecorderValue();
        long l2 = interval.getSelectedInterval().t2.getRecorderValue();
        IntervalMarker marker = new IntervalMarker(l1 / 1_000_000, l2 / 1_000_000);
        marker.setPaint(ORANGE);
        marker.setAlpha(.3f);
        plot.addDomainMarker(marker);
    }

}

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

private static JFreeChart createChart(XYDataset xydataset) {
    JFreeChart jfreechart = ChartFactory.createXYLineChart("Marker Demo 2", "X", "Temperature", xydataset,
            PlotOrientation.VERTICAL, false, true, false);
    XYPlot xyplot = (XYPlot) jfreechart.getPlot();
    xyplot.setDomainGridlinePaint(Color.lightGray);
    xyplot.setDomainGridlineStroke(new BasicStroke(1.0F));
    xyplot.setRangeGridlinePaint(Color.lightGray);
    xyplot.setRangeGridlineStroke(new BasicStroke(1.0F));
    xyplot.setRangeTickBandPaint(new Color(240, 240, 240));
    PeriodAxis periodaxis = new PeriodAxis(null, new Hour(0, 30, 6, 2005), new Hour(23, 30, 6, 2005));
    PeriodAxisLabelInfo aperiodaxislabelinfo[] = new PeriodAxisLabelInfo[2];
    aperiodaxislabelinfo[0] = new PeriodAxisLabelInfo(org.jfree.data.time.Hour.class,
            new SimpleDateFormat("HH"));
    aperiodaxislabelinfo[1] = new PeriodAxisLabelInfo(org.jfree.data.time.Day.class,
            new SimpleDateFormat("dd-MMM"));
    periodaxis.setLabelInfo(aperiodaxislabelinfo);
    xyplot.setDomainAxis(periodaxis);/*from   w  w w .  ja  va2s .c  o  m*/
    ValueAxis valueaxis = xyplot.getRangeAxis();
    valueaxis.setRange(0.0D, 100D);
    XYItemRenderer xyitemrenderer = xyplot.getRenderer();
    xyitemrenderer.setSeriesPaint(0, Color.green);
    xyitemrenderer.setSeriesStroke(0, new BasicStroke(2.0F));
    ValueMarker valuemarker = new ValueMarker(80D);
    valuemarker.setLabelOffsetType(LengthAdjustmentType.EXPAND);
    valuemarker.setPaint(Color.red);
    valuemarker.setStroke(new BasicStroke(2.0F));
    valuemarker.setLabel("Temperature Threshold");
    valuemarker.setLabelFont(new Font("SansSerif", 0, 11));
    valuemarker.setLabelPaint(Color.red);
    valuemarker.setLabelAnchor(RectangleAnchor.TOP_LEFT);
    valuemarker.setLabelTextAnchor(TextAnchor.BOTTOM_LEFT);
    xyplot.addRangeMarker(valuemarker);
    Hour hour = new Hour(18, 30, 6, 2005);
    Hour hour1 = new Hour(20, 30, 6, 2005);
    double d = hour.getFirstMillisecond();
    double d1 = hour1.getFirstMillisecond();
    IntervalMarker intervalmarker = new IntervalMarker(d, d1);
    intervalmarker.setLabelOffsetType(LengthAdjustmentType.EXPAND);
    intervalmarker.setPaint(new Color(150, 150, 255));
    intervalmarker.setLabel("Automatic Cooling");
    intervalmarker.setLabelFont(new Font("SansSerif", 0, 11));
    intervalmarker.setLabelPaint(Color.blue);
    intervalmarker.setLabelAnchor(RectangleAnchor.TOP_LEFT);
    intervalmarker.setLabelTextAnchor(TextAnchor.TOP_RIGHT);
    xyplot.addDomainMarker(intervalmarker, Layer.BACKGROUND);
    ValueMarker valuemarker1 = new ValueMarker(d, Color.blue, new BasicStroke(2.0F));
    ValueMarker valuemarker2 = new ValueMarker(d1, Color.blue, new BasicStroke(2.0F));
    xyplot.addDomainMarker(valuemarker1, Layer.BACKGROUND);
    xyplot.addDomainMarker(valuemarker2, Layer.BACKGROUND);
    return jfreechart;
}

From source file:com.orange.atk.results.logger.log.Action.java

/**
* Set Marker properties  used in Analysis Tool (keypress,log,screenshot...) 
* For each action a marker and an Annotation is related
* @param Xvalue StartTime of Marker Action
* @param Xvalue2 EndTime of Marker Action
* @param color Color of Marker//  w w  w.  j a v  a 2 s  .  co  m
*/

public void setMarker(double Xvalue, double Xvalue2, Paint color) {
    NewMarker = new IntervalMarker(Xvalue, Xvalue2);
    NewMarker.setPaint(color);

}

From source file:de.bfs.radon.omsimulation.gui.data.OMCharts.java

/**
 * Creates a chart displaying the radon concentration of a single room. Uses
 * red for normal rooms, blue for cellar rooms and green for misc rooms.
 * /*from   w  w  w.  j av a  2  s .  co m*/
 * @param title
 *          The headline of the chart. Will be hidden if set to null.
 * @param room
 *          The room object containing the radon data.
 * @param preview
 *          Will hide annotations, labels and headlines if true.
 * @return A chart displaying the radon concentration of a single room.
 */
public static JFreeChart createRoomChart(String title, OMRoom room, boolean preview) {
    Color lineColor = new Color(0, 0, 0, 128);
    Color rangeColor = new Color(222, 222, 222, 128);
    if (room.getType() == OMRoomType.Room) {
        lineColor = new Color(255, 0, 0, 128);
        rangeColor = new Color(255, 222, 222, 128);
    } else {
        if (room.getType() == OMRoomType.Cellar) {
            lineColor = new Color(0, 0, 255, 128);
            rangeColor = new Color(222, 222, 255, 128);
        } else {
            lineColor = new Color(0, 128, 0, 255);
            rangeColor = new Color(222, 255, 222, 128);
        }
    }
    double[] values = room.getValues();
    XYSeriesCollection dataSet = new XYSeriesCollection();
    XYSeries series = new XYSeries("Radon");
    int count = room.getCount();
    double maxPointerKey = 0;
    for (int i = 0; i < count; i++) {
        series.add(i, values[i]);
        if (values[i] == room.getMaximum()) {
            maxPointerKey = i;
        }
    }
    dataSet.addSeries(series);
    title = title + ": " + room.getType().toString() + " " + room.getId();
    JFreeChart chart = ChartFactory.createXYLineChart(title, "T [h]", "Rn [Bq/m\u00B3]", dataSet,
            PlotOrientation.VERTICAL, false, true, false);
    XYPlot plot = (XYPlot) chart.getPlot();
    double positiveDeviation = room.getAverage() + room.getDeviation();
    double negativeDeviation = room.getAverage() - room.getDeviation();
    IntervalMarker deviation = new IntervalMarker(negativeDeviation, positiveDeviation);
    float[] dash = { 5, 3 };
    deviation.setPaint(rangeColor);
    deviation.setStroke(new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1, dash, 0));
    plot.addRangeMarker(deviation, Layer.BACKGROUND);
    ValueMarker arithMarker = new ValueMarker(room.getAverage(), lineColor,
            new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1, dash, 0));
    plot.addRangeMarker(arithMarker);
    ValueMarker maxiMarker = new ValueMarker(room.getMaximum(), lineColor,
            new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1, dash, 0));
    plot.addRangeMarker(maxiMarker);
    XYTextAnnotation amLabel = new XYTextAnnotation("AM=" + (int) room.getAverage(), count,
            room.getAverage() * 1.01);
    plot.addAnnotation(amLabel);
    XYTextAnnotation sdLabel = new XYTextAnnotation("SD=" + (int) room.getDeviation(), count,
            (room.getAverage() + room.getDeviation()) * 1.01);
    plot.addAnnotation(sdLabel);
    XYTextAnnotation maxLabel = new XYTextAnnotation("MAX=" + (int) room.getMaximum(), count,
            room.getMaximum() * 1.01);
    plot.addAnnotation(maxLabel);
    XYPointerAnnotation maxPointer = new XYPointerAnnotation("", maxPointerKey, room.getMaximum(),
            Math.PI * 1.1);
    plot.addAnnotation(maxPointer);
    XYItemRenderer renderer = plot.getRenderer();
    renderer.setSeriesPaint(0, lineColor);
    if (preview) {
        chart.setTitle("");
        plot.clearAnnotations();
    }
    return chart;
}

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

/**
 * Creates a sample chart.//from w  w  w. j  ava  2  s  .c o  m
 * 
 * @param dataset  the dataset.
 * 
 * @return A sample chart.
 */
private JFreeChart createChart(IntervalXYDataset dataset) {
    final JFreeChart chart = ChartFactory.createXYBarChart("XY Series Demo", "X", false, "Y", dataset,
            PlotOrientation.VERTICAL, true, true, false);
    XYPlot plot = (XYPlot) chart.getPlot();
    final IntervalMarker target = new IntervalMarker(400.0, 700.0);
    target.setLabel("Target Range");
    target.setLabelFont(new Font("SansSerif", Font.ITALIC, 11));
    target.setLabelAnchor(RectangleAnchor.LEFT);
    target.setLabelTextAnchor(TextAnchor.CENTER_LEFT);
    target.setPaint(new Color(222, 222, 255, 128));
    plot.addRangeMarker(target, Layer.BACKGROUND);
    return chart;
}

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

/**
 * Creates a new demo instance.//from  ww w  .  ja va2 s  .c o  m
 * 
 * @param title  the frame title.
 */
public PlotOrientationDemo2(String title) {

    super(title);
    JPanel panel = new JPanel(new GridLayout(2, 4));
    for (int i = 0; i < CHART_COUNT; i++) {
        this.datasets[i] = createDataset(i);
        this.charts[i] = createChart(i, this.datasets[i]);
        XYPlot plot = this.charts[i].getXYPlot();
        XYShapeAnnotation a1 = new XYShapeAnnotation(new Rectangle2D.Double(1.0, 2.0, 2.0, 3.0),
                new BasicStroke(1.0f), Color.blue);
        XYLineAnnotation a2 = new XYLineAnnotation(0.0, -5.0, 10.0, -5.0);

        plot.addAnnotation(a1);
        plot.addAnnotation(a2);
        plot.addDomainMarker(new IntervalMarker(5.0, 10.0), Layer.BACKGROUND);
        plot.addRangeMarker(new IntervalMarker(-2.0, 0.0), Layer.BACKGROUND);

        this.panels[i] = new ChartPanel(this.charts[i]);
    }
    this.charts[1].getXYPlot().getDomainAxis().setInverted(true);
    this.charts[2].getXYPlot().getRangeAxis().setInverted(true);
    this.charts[3].getXYPlot().getDomainAxis().setInverted(true);
    this.charts[3].getXYPlot().getRangeAxis().setInverted(true);

    this.charts[5].getXYPlot().getDomainAxis().setInverted(true);
    this.charts[6].getXYPlot().getRangeAxis().setInverted(true);
    this.charts[4].getXYPlot().getDomainAxis().setInverted(true);
    this.charts[4].getXYPlot().getRangeAxis().setInverted(true);

    this.charts[4].getXYPlot().setOrientation(PlotOrientation.HORIZONTAL);
    this.charts[5].getXYPlot().setOrientation(PlotOrientation.HORIZONTAL);
    this.charts[6].getXYPlot().setOrientation(PlotOrientation.HORIZONTAL);
    this.charts[7].getXYPlot().setOrientation(PlotOrientation.HORIZONTAL);

    panel.add(this.panels[0]);
    panel.add(this.panels[1]);
    panel.add(this.panels[4]);
    panel.add(this.panels[5]);
    panel.add(this.panels[2]);
    panel.add(this.panels[3]);
    panel.add(this.panels[6]);
    panel.add(this.panels[7]);

    panel.setPreferredSize(new Dimension(800, 600));
    setContentPane(panel);

}

From source file:org.openfaces.component.chart.impl.configuration.charts.GridChartConfigurator.java

private org.jfree.chart.plot.Marker initMarker(Marker marker) {
    if (marker.isIntervalMarker()) {
        org.jfree.chart.plot.Marker chartMarker = new IntervalMarker(marker.getStartValue(),
                marker.getEndValue());//from   ww  w.j  a va2 s.  co  m
        initializeChartMarker(marker, chartMarker);

        return chartMarker;
    } else if (marker.isValueMarker()) {
        final Double value = (marker.getValue() instanceof Double) ? (Double) marker.getValue()
                : Double.parseDouble((String) marker.getValue());
        org.jfree.chart.plot.Marker chartMarker = new ValueMarker(value);
        initializeChartMarker(marker, chartMarker);

        return chartMarker;
    }

    return null;
}

From source file:com.appnativa.rare.ui.chart.jfreechart.ChartHelper.java

public static IntervalMarker createIntervalMarker(ChartDataItem item) {
    Number lower = (Number) item.getValue();
    Number upper = (Number) item.getDomainValue();
    IntervalMarker marker = new IntervalMarker(lower.doubleValue(), upper.doubleValue());
    String s = item.getTitle();/* www . j  a  va2 s  .  c o  m*/

    if (s != null) {
        marker.setLabel(s);
    }

    marker.setLabelAnchor(getRectangleAnchor(item));
    marker.setLabelTextAnchor(getTextAnchor(item));
    updateMarker(marker, item);

    return marker;
}