/** * 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); } } }
subplot1.addRangeMarker(new ValueMarker(d)); subplot1.setRangeAxisLocation(AxisLocation.BOTTOM_OR_LEFT); plot.add(subplot1, 1);
final Marker valueMarker= new ValueMarker(2.0); valueMarker.setPaint(Color.green); plot.addRangeMarker(valueMarker);
chartPanel.addChartMouseListener(new ChartMouseListener() { public void chartMouseMoved(ChartMouseEvent event) { try { double[] values = getCrossHairValue(event); plot.clearRangeMarkers(); plot.clearDomainMarkers(); Marker yMarker = new ValueMarker(values[1]); yMarker.setPaint(Color.darkGray); plot.addRangeMarker(yMarker); Marker xMarker = new ValueMarker(values[0]); xMarker.setPaint(Color.darkGray); plot.addDomainMarker(xMarker); chartPanel.repaint(); } catch (Exception e) { } }
Number xValue = DatasetUtilities.findMinimumDomainValue(dataset); for (int seriesIndex = 0 ; seriesIndex < dataset.getSeriesCount() ; seriesIndex++){ for (int itemIndex = 0 ; itemIndex < dataset.getItemCount(seriesIndex) ; itemIndex ++){ Number yValue = dataset.getY(seriesIndex, itemIndex); if (yValue.equals(maximum)){ if (dataset.getX(seriesIndex, itemIndex).floatValue() > xValue.floatValue()) xValue = dataset.getX(seriesIndex, itemIndex); } } } ValueMarker maxX = new ValueMarker(xValue.floatValue()); maxX.setPaint(Color.red); maxX.setLabelTextAnchor(TextAnchor.CENTER_LEFT); plot.addDomainMarker(maxX,Layer.BACKGROUND);
ValueMarker marker = new ValueMarker(30); marker.setLabel("Average 30%"); marker.setPaint(Color.black); plot.addRangeMarker(marker);
Number maximum = DatasetUtilities.findMaximumRangeValue(dataset); ValueMarker max = new ValueMarker(maximum.floatValue()); max.setPaint(Color.orange); max.setLabel("Highest Value"); max.setLabelTextAnchor(TextAnchor.CENTER_LEFT); plot.addRangeMarker(max,Layer.BACKGROUND);
protected ValueMarker makeMarker( final int timePoint ) { final ValueMarker valueMarker = new ValueMarker( timePoint ); valueMarker.setStroke( new BasicStroke ( 1.5f ) ); valueMarker.setPaint( new Color( 0.0f, 93f/255f, 9f/255f ) ); valueMarker.setLabel( " Reference\n Timepoint " + timePoint ); valueMarker.setLabelAnchor(RectangleAnchor.BOTTOM ); valueMarker.setLabelTextAnchor( TextAnchor.BOTTOM_LEFT ); return valueMarker; }
/** * @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); }
protected ValueMarker makeMarker( final double value ) { final ValueMarker valueMarker = new ValueMarker( value ); valueMarker.setStroke( new BasicStroke ( 2f ) ); valueMarker.setPaint( new Color( 0f/255f, 0f/255f, 255f/255f ) ); valueMarker.setLabel( " Distance=" + value ); valueMarker.setLabelPaint( Color.BLUE ); valueMarker.setLabelAnchor( RectangleAnchor.TOP ); valueMarker.setLabelTextAnchor( TextAnchor.TOP_LEFT ); return valueMarker; }
final Marker start = new ValueMarker(3400000.0); start.setPaint(Color.red); start.setLabel("Current Value"); start.setLabelAnchor(RectangleAnchor.BOTTOM_LEFT); start.setLabelTextAnchor(TextAnchor.TOP_LEFT); plot.addRangeMarker(start);
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); }
/** * Returns a horizontal line marker for the given x value and label. */ private Marker getMarker( Double value, String label ) { Marker marker = new ValueMarker( value ); marker.setPaint( Color.BLACK ); marker.setStroke( new BasicStroke( 1.1f ) ); marker.setLabel( label ); marker.setLabelOffset( new RectangleInsets( -10, 50, 0, 0 ) ); marker.setLabelFont( SUB_TITLE_FONT ); return marker; }
public void customize(JFreeChart chart, ChartComponent chartComponent) { //get the ploy CategoryPlot plot = (CategoryPlot) chart.getPlot(); //Now add your markers ValueMarker vm = new ValueMarker(200); //200 is the position you like it to be vm.setPaint(Color.RED); vm.setStroke(new BasicStroke(1)); vm.setLabel("BeanchMark value"); //The label vm.setLabelAnchor(RectangleAnchor.TOP); vm.setLabelTextAnchor(TextAnchor.BOTTOM_RIGHT); plot.addRangeMarker(vm); }
/** * Returns a JFreeChart containing data from the provided histogram. */ 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()); } return chart; }
Marker threshold = new ValueMarker(80.0); Hour hour1 = new Hour(18, 30, 6, 2005); Hour hour2 = new Hour(20, 30, 6, 2005); double millis1 = hour1.getFirstMillisecond(); double millis2 = hour2.getFirstMillisecond(); Marker cooling = new IntervalMarker(millis1, millis2); cooling.setLabelOffsetType(LengthAdjustmentType.EXPAND); cooling.setPaint(new Color(150, 150, 255)); cooling.setLabel("Automatic Cooling"); cooling.setLabelFont(new Font("SansSerif", Font.PLAIN, 11)); cooling.setLabelPaint(Color.blue); cooling.setLabelAnchor(RectangleAnchor.TOP_LEFT); cooling.setLabelTextAnchor(TextAnchor.TOP_RIGHT); plot.addDomainMarker(cooling, Layer.BACKGROUND);
/** * Generate a {@link ValueMarker}. */ private static ValueMarker addValueMarker( String text, double x, boolean domain ) { ValueMarker marker = new ValueMarker( x ); marker.setPaint( Color.GRAY ); marker.setLabel( text ); if ( domain ) { marker.setLabelAnchor( RectangleAnchor.TOP_LEFT ); marker.setLabelTextAnchor( TextAnchor.TOP_RIGHT ); } else { marker.setLabelAnchor( RectangleAnchor.TOP_RIGHT ); marker.setLabelTextAnchor( TextAnchor.BOTTOM_RIGHT ); } return marker; }
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); } }