ValueMarker marker = new ValueMarker(position); // position is the value on the axis marker.setPaint(Color.black); //marker.setLabel("here"); // see JavaDoc for labels, colors, strokes XYPlot plot = (XYPlot) chart.getPlot(); plot.addDomainMarker(marker);
/** * Add anomalies to the plot. */ public void addAnomalies(XYPlot plot, ArrayList<Anomaly> anomalyList) { for (Anomaly a : anomalyList) { IntervalSequence is = a.intervals; for (Interval i : is) { ValueMarker marker = new ValueMarker(i.index); marker.setPaint(Color.black); plot.addDomainMarker(marker); } } }
/** * Adds a marker for the domain axis in the specified layer and sends a * {@link PlotChangeEvent} to all registered listeners. * <P> * Typically a marker will be drawn by the renderer as a line perpendicular * to the domain axis, however this is entirely up to the renderer. * * @param marker the marker ({@code null} not permitted). * @param layer the layer (foreground or background). * * @see #addDomainMarker(int, Marker, Layer) */ public void addDomainMarker(Marker marker, Layer layer) { addDomainMarker(0, marker, layer); }
/** * Adds a marker for the domain axis in the specified layer and sends a * {@link PlotChangeEvent} to all registered listeners. * <P> * Typically a marker will be drawn by the renderer as a line perpendicular * to the range axis, however this is entirely up to the renderer. * * @param marker the marker (<code>null</code> not permitted). * @param layer the layer (foreground or background). * * @see #addDomainMarker(int, Marker, Layer) */ public void addDomainMarker(Marker marker, Layer layer) { addDomainMarker(0, marker, layer); }
/** * Adds a marker for the domain axis and sends a {@link PlotChangeEvent} * to all registered listeners. * <P> * Typically a marker will be drawn by the renderer as a line perpendicular * to the domain axis, however this is entirely up to the renderer. * * @param marker the marker ({@code null} not permitted). * * @see #addDomainMarker(Marker, Layer) * @see #clearDomainMarkers() */ public void addDomainMarker(Marker marker) { // defer argument checking... addDomainMarker(marker, Layer.FOREGROUND); }
/** * Adds a marker for the domain axis and sends a {@link PlotChangeEvent} * to all registered listeners. * <P> * Typically a marker will be drawn by the renderer as a line perpendicular * to the range axis, however this is entirely up to the renderer. * * @param marker the marker (<code>null</code> not permitted). * * @see #addDomainMarker(Marker, Layer) * @see #clearDomainMarkers() */ public void addDomainMarker(Marker marker) { // defer argument checking... addDomainMarker(marker, Layer.FOREGROUND); }
/** * Adds a marker for a specific dataset/renderer and sends a * {@link PlotChangeEvent} to all registered listeners. * <P> * Typically a marker will be drawn by the renderer as a line perpendicular * to the domain axis (that the renderer is mapped to), however this is * entirely up to the renderer. * * @param index the dataset/renderer index. * @param marker the marker. * @param layer the layer (foreground or background). * * @see #clearDomainMarkers(int) * @see #addRangeMarker(int, Marker, Layer) */ public void addDomainMarker(int index, Marker marker, Layer layer) { addDomainMarker(index, marker, layer, true); }
/** * Adds a marker for a specific dataset/renderer and sends a * {@link PlotChangeEvent} to all registered listeners. * <P> * Typically a marker will be drawn by the renderer as a line perpendicular * to the domain axis (that the renderer is mapped to), however this is * entirely up to the renderer. * * @param index the dataset/renderer index. * @param marker the marker. * @param layer the layer (foreground or background). * * @see #clearDomainMarkers(int) * @see #addRangeMarker(int, Marker, Layer) */ public void addDomainMarker(int index, Marker marker, Layer layer) { addDomainMarker(index, marker, layer, true); }
public static void addDomainMarker( XYPlot xyplot, String label, double value ) { xyplot.addDomainMarker( addValueMarker( label, value, true ) ); }
/** * @param plot plot for the marker * @param startVal start postion * @param endVal end position */ protected void addMarker(XYPlot plot, int startVal, int endVal) { IntervalMarker marker = new IntervalMarker(startVal, endVal); marker.setLabelOffsetType(LengthAdjustmentType.EXPAND); marker.setPaint(new Color(134, 254, 225)); marker.setAlpha((float) 0.60); marker.setLabelFont(new Font("SansSerif", Font.PLAIN, 12)); marker.setLabelPaint(Color.green); marker.setLabelAnchor(RectangleAnchor.TOP_LEFT); marker.setLabelTextAnchor(TextAnchor.TOP_LEFT); plot.addDomainMarker(marker, Layer.BACKGROUND); ValueMarker markStart = new ValueMarker(startVal, new Color(31, 254, 225), new BasicStroke(2.0f)); ValueMarker markEnd = new ValueMarker(endVal, new Color(31, 254, 225), new BasicStroke(2.0f)); plot.addDomainMarker(markStart, Layer.BACKGROUND); plot.addDomainMarker(markEnd, Layer.BACKGROUND); }
private void updateMarker() { if (marker != null) { plot.removeDomainMarker(marker, Layer.BACKGROUND); } if (!(markerStart.isNaN() && markerEnd.isNaN())) { if (markerEnd > markerStart) { marker = new IntervalMarker(markerStart, markerEnd); marker.setPaint(new Color(0xDD, 0xFF, 0xDD, 0x90)); marker.setAlpha(0.7f); plot.addDomainMarker(marker, Layer.BACKGROUND); } else { marker = new IntervalMarker(markerEnd, markerStart); marker.setPaint(new Color(0xDD, 0xFF, 0xDD, 0x90)); marker.setAlpha(0.7f); plot.addDomainMarker(marker, Layer.BACKGROUND); } } }
MouseListenerValue( final ChartPanel panel, final double startValue ) { this.panel = panel; this.valueMarker = makeMarker( startValue ); ((XYPlot)panel.getChart().getPlot()).addDomainMarker( valueMarker ); }
public static void addVerticalMarkerToXYPlot(ChartPanel chartPanel, double xValue) { ValueMarker marker = new ValueMarker(xValue); marker.setPaint(Color.BLACK); XYPlot plot = (XYPlot) chartPanel.getChart().getPlot(); plot.addDomainMarker(marker); }
public static void addVerticalMarkerToXYPlot(ChartPanel chartPanel, double xValue) { ValueMarker marker = new ValueMarker(xValue); marker.setPaint(Color.BLACK); XYPlot plot = (XYPlot) chartPanel.getChart().getPlot(); plot.addDomainMarker(marker); }
public static ChartHelper generateMultiLineChart(XYDataset dataset, String chartTitle, String yLabel, String xLabel, List domainMarkers) { boolean legend = true; boolean tooltips = true; boolean urls = true; JFreeChart chart = ChartFactory.createTimeSeriesChart(chartTitle, yLabel, xLabel, dataset, legend, tooltips, urls); XYPlot plot = chart.getXYPlot(); NumberAxis yAxis = (NumberAxis) plot.getRangeAxis(); TickUnitSource units = NumberAxis.createIntegerTickUnits(); yAxis.setStandardTickUnits(units); if (domainMarkers != null && !domainMarkers.isEmpty()) { for (Iterator iterator = domainMarkers.iterator(); iterator.hasNext();) { ValueMarker valueMarker = (ValueMarker) iterator.next(); valueMarker.setLabelAnchor(RectangleAnchor.TOP_LEFT); valueMarker.setLabelTextAnchor(TextAnchor.TOP_RIGHT); plot.addDomainMarker(valueMarker); } } return new ChartHelper(chart); }
MouseListenerTimelapse( final TimePoints timepoints, final ChartPanel panel, final int referenceTimePoint, final boolean enableReferenceTimePoint ) { this.timepoints = timepoints; this.panel = panel; this.referenceTimePoint = referenceTimePoint; this.enableReferenceTimePoint = enableReferenceTimePoint; if ( enableReferenceTimePoint || referenceTimePoint != -1 ) // at least show it if it is not -1 { if ( timepoints != null ) setReferenceTimepoint( timepoints, referenceTimePoint ); valueMarker = makeMarker( referenceTimePoint ); if ( referenceTimePoint >= 0 ) { ((XYPlot)panel.getChart().getPlot()).addDomainMarker( valueMarker ); markerShown = true; } } }
/** * Adds an anomaly marker. * * @param plot plot for the marker * @param startVal start postion * @param endVal end position */ protected void addAnomalyMarker(XYPlot plot, int startVal, int endVal) { IntervalMarker marker = new IntervalMarker(startVal, endVal); marker.setLabelOffsetType(LengthAdjustmentType.EXPAND); marker.setPaint(new Color(134, 254, 225)); marker.setAlpha((float) 0.60); marker.setLabelFont(new Font("SansSerif", Font.PLAIN, 12)); marker.setLabelPaint(Color.pink); marker.setLabelAnchor(RectangleAnchor.TOP_LEFT); marker.setLabelTextAnchor(TextAnchor.TOP_LEFT); marker.setPaint(Color.pink); plot.addDomainMarker(marker, Layer.BACKGROUND); }
/** * Adds a periodicity marker. * * @param plot plot for the marker * @param startVal start postion * @param endVal end position */ protected void addPeriodMarker(XYPlot plot, int startVal, int endVal) { IntervalMarker marker = new IntervalMarker(startVal, endVal); marker.setLabelOffsetType(LengthAdjustmentType.EXPAND); marker.setPaint(new Color(134, 254, 225)); marker.setAlpha((float) 0.60); marker.setLabelFont(new Font("SansSerif", Font.PLAIN, 12)); marker.setLabelPaint(Color.blue); marker.setLabelAnchor(RectangleAnchor.TOP_LEFT); marker.setLabelTextAnchor(TextAnchor.TOP_LEFT); marker.setPaint(Color.blue); plot.addDomainMarker(marker, Layer.BACKGROUND); }
public synchronized void setSelectedPositions(int[] selectPositions, boolean replaceSelection) { if (replaceSelection) plot.clearDomainMarkers(); if (profileModel.getXAxisMode().equals(Distance)) { double[] distances = positionsModel.getRoute().getDistancesFromStart(selectPositions); for (double distance : distances) { plot.addDomainMarker(0, new ValueMarker(profileModel.formatDistance(distance)), FOREGROUND, false); } } else { long[] times = positionsModel.getRoute().getTimesFromStart(selectPositions); for (long time : times) { plot.addDomainMarker(0, new ValueMarker(profileModel.formatTime(time)), FOREGROUND, false); } } // make sure the protected fireChangeEvent() is called without any side effects plot.setWeight(plot.getWeight()); }
/** * Runs a strategy over a time series and adds the value markers * corresponding to buy/sell signals to the plot. * @param series a time series * @param strategy a trading strategy * @param plot the plot */ private static void addBuySellSignals(TimeSeries series, Strategy strategy, XYPlot plot) { // Running the strategy TimeSeriesManager seriesManager = new TimeSeriesManager(series); List<Trade> trades = seriesManager.run(strategy).getTrades(); // Adding markers to plot for (Trade trade : trades) { // Buy signal double buySignalTickTime = new Minute(Date.from(series.getTick(trade.getEntry().getIndex()).getEndTime().toInstant())).getFirstMillisecond(); Marker buyMarker = new ValueMarker(buySignalTickTime); buyMarker.setPaint(Color.GREEN); buyMarker.setLabel("B"); plot.addDomainMarker(buyMarker); // Sell signal double sellSignalTickTime = new Minute(Date.from(series.getTick(trade.getExit().getIndex()).getEndTime().toInstant())).getFirstMillisecond(); Marker sellMarker = new ValueMarker(sellSignalTickTime); sellMarker.setPaint(Color.RED); sellMarker.setLabel("S"); plot.addDomainMarker(sellMarker); } }