List of usage examples for org.jfree.chart.plot IntervalMarker setLabelPaint
public void setLabelPaint(Paint paint)
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. j ava 2 s .co 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.sciaps.utils.Util.java
public static IntervalMarker createMarker(double min, double max, String element) { IntervalMarker marker = new IntervalMarker(min, max); marker.setPaint(Color.green); DecimalFormat df = new DecimalFormat("#0.000"); String label = df.format(min); if (element != null) { label = element + ":" + label; }//from w ww . ja va 2s .co m marker.setLabel(label); marker.setLabelPaint(Color.blue); marker.setLabelFont(new java.awt.Font("Tahoma", 1, 8)); marker.setLabelOffset(new RectangleInsets(50, 10, 10, 20)); return marker; }
From source file:daylightchart.daylightchart.chart.DaylightChart.java
private void createDSTMarker(final XYPlot plot) { if (!riseSetData.usesDaylightTime()) { return;/*w w w . jav a 2s .co m*/ } 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:com.mgmtp.perfload.perfalyzer.reportpreparation.PlotCreator.java
public JFreeChart createPlot(final AxisType xAxisType, final AxisType yAxisType, final RendererType rendererType, final DisplayData displayData, final DataRange dataRange, boolean showMarkers, final NumberDataSet... dataSets) { NumberAxis xAxis = createAxis(xAxisType, resourceBundle.getString(displayData.getUnitX())); XYPlot plot;/*from w w w . j a v a 2 s. c o m*/ if (dataSets.length == 1) { NumberAxis yAxis = createAxis(yAxisType, resourceBundle.getString(displayData.getUnitY())); plot = new XYPlot(dataSets[0], xAxis, yAxis, rendererType.createRenderer()); } else { CombinedDomainXYPlot combinedPlot = new CombinedDomainXYPlot(xAxis); for (int i = 0; i < dataSets.length; ++i) { NumberDataSet dataSet = dataSets[i]; // no range for y-axis! NumberAxis yAxis = createAxis(yAxisType, resourceBundle.getString(displayData.getUnitYList().get(i))); XYPlot subPlot = new XYPlot(dataSet, null, yAxis, rendererType.createRenderer()); combinedPlot.add(subPlot); formatPlot(subPlot); } plot = combinedPlot; } JFreeChart chart = new JFreeChart(plot); CHART_THEME.apply(chart); formatPlot(plot); if (showMarkers) { for (Marker marker : markers) { IntervalMarker im = new IntervalMarker(marker.getLeftMillis() / 1000L, marker.getRightMillis() / 1000L); im.setLabel(marker.getName()); im.setLabelFont(new Font("Sans Serif", Font.ITALIC | Font.BOLD, 14)); im.setLabelAnchor(RectangleAnchor.TOP); im.setLabelOffset(new RectangleInsets(8d, 0d, 0d, 0d)); im.setLabelPaint(Color.BLACK); im.setAlpha(.2f); im.setPaint(Color.WHITE); im.setOutlinePaint(Color.BLACK); im.setOutlineStroke(new BasicStroke(1.0f)); plot.addDomainMarker(im, Layer.BACKGROUND); } } LegendTitle legend = chart.getLegend(); legend.setBackgroundPaint(new Color(229, 229, 229)); legend.setFrame( new LineBorder(new Color(213, 213, 213), new BasicStroke(1.0f), legend.getFrame().getInsets())); // only for non-logarithmic axes // range must be set after plot is created, otherwise nothing is drawn if (dataRange != null && !xAxisType.equals(AxisType.LOGARITHMIC)) { xAxis.setRange(dataRange.getLowerSeconds(), dataRange.getUpperSeconds()); } return chart; }
From source file:grafix.graficos.eixos.Eixo.java
protected IntervalMarker gerarIntervalMarker(final MarcaGrafica m, JanelaGraficos janela) { try {/*from w ww .j ava 2 s . co m*/ IntervalMarker im = new IntervalMarker(m.getInicioNoGrafico(janela).getFirstMillisecond(), m.getFimNoGrafico(janela).getFirstMillisecond()); im.setLabelOffsetType(LengthAdjustmentType.EXPAND); im.setPaint(m.getCor()); im.setStroke(new BasicStroke(1.4f)); if (!m.getFim().equals(m.getInicio())) { im.setAlpha(.2f); im.setLabelFont(new Font("SansSerif", Font.BOLD, 11)); } else { im.setAlpha(.9f); im.setLabelFont(new Font("SansSerif", Font.PLAIN, 11)); } im.setLabel(m.getTag()); im.setLabelPaint(m.getCor()); im.setLabelAnchor(RectangleAnchor.TOP_LEFT); im.setLabelTextAnchor(TextAnchor.TOP_RIGHT); return im; } catch (Exception e) { return null; } }
From source file:com.mgmtp.perfload.loadprofiles.ui.AppFrame.java
private void updateGraph() { XYSeriesCollection dataset = new XYSeriesCollection(); Collection<Stairs> loadProfileEnities = transform( filter(loadProfilesController.getTreeItems(), new IsStairsPredicate()), new LoadProfileEntityToStairsFunction()); GraphPointsCalculator calc = new GraphPointsCalculator(); Map<String, Set<Point>> pointsMap = calc.calculatePoints(loadProfileEnities); for (Entry<String, Set<Point>> entry : pointsMap.entrySet()) { final XYSeries series = new XYSeries(entry.getKey()); for (Point point : entry.getValue()) { series.add(point.getX(), point.getY()); }//from w w w.j a v a 2 s. c o m dataset.addSeries(series); } String name = txtName.getText(); chart = ChartFactory.createXYLineChart(name, "t (min)", "Executions (1/h)", dataset, PlotOrientation.VERTICAL, true, true, false); XYPlot plot = chart.getXYPlot(); XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(); plot.setRenderer(renderer); NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); NumberAxis domainAxis = (NumberAxis) plot.getDomainAxis(); domainAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); double maxX = 0; for (OneTime oneTime : getOneTimes()) { String key = oneTime.operation.getName(); XYSeries series; try { // We need the series in order to retrieve paint and stroke series = dataset.getSeries(key); } catch (UnknownKeyException ex) { series = new XYSeries(key); dataset.addSeries(series); } int index = dataset.getSeriesIndex(key); BasicStroke stroke = (BasicStroke) renderer.lookupSeriesStroke(index); stroke = new BasicStroke(stroke.getLineWidth() + 1f, stroke.getEndCap(), stroke.getLineJoin(), stroke.getMiterLimit(), stroke.getDashArray(), stroke.getDashPhase()); Color paint = (Color) renderer.lookupSeriesPaint(index); paint = new Color(paint.getRed(), paint.getGreen(), paint.getBlue(), 160); double height = rangeAxis.getUpperBound() * .05; // five percent of range double width = domainAxis.getUpperBound() * .01; // one percent of range double center = oneTime.t0; double left = center - width / 2; double right = center + width / 2; // We only add annotations for one times, but nothing to the series plot.addAnnotation(new XYPolygonAnnotation(new double[] { left, 0d, center, height, right, 0d }, stroke, paint, paint)); maxX = max(maxX, right); } for (Marker marker : getMarkers()) { IntervalMarker im = new IntervalMarker(marker.left, marker.right); im.setLabel(marker.name); im.setLabelFont(new Font(getFont().getName(), getFont().getStyle(), getFont().getSize() + 1)); im.setLabelAnchor(RectangleAnchor.TOP); im.setLabelOffset(new RectangleInsets(8d, 0d, 0d, 0d)); im.setLabelPaint(Color.BLACK); im.setAlpha(.3f); im.setPaint(Color.WHITE); im.setOutlinePaint(Color.BLACK); im.setOutlineStroke(new BasicStroke(1.0f)); plot.addDomainMarker(im, Layer.BACKGROUND); maxX = max(maxX, marker.right); } if (domainAxis.getUpperBound() < maxX) { domainAxis.setUpperBound(maxX * 1.05); } chartPanel.setChart(chart); }
From source file:com.naryx.tagfusion.cfm.tag.awt.cfCHART.java
public void addRangeMarker(CategoryPlot plot, cfCHARTRANGEMARKERData rmData) throws cfmRunTimeException { IntervalMarker rangeMarker = new IntervalMarker(rmData.getStart(), rmData.getEnd()); rangeMarker.setPaint(convertStringToColor(rmData.getColor())); if (rmData.getLabel() != null) { rangeMarker.setLabel(rmData.getLabel()); rangeMarker.setLabelPaint(convertStringToColor(rmData.getLabelColor())); String labelPos = rmData.getLabelPosition(); if (labelPos.equals("top_left")) { rangeMarker.setLabelAnchor(RectangleAnchor.TOP_LEFT); rangeMarker.setLabelTextAnchor(TextAnchor.TOP_LEFT); } else if (labelPos.equals("top")) { rangeMarker.setLabelAnchor(RectangleAnchor.TOP); rangeMarker.setLabelTextAnchor(TextAnchor.TOP_CENTER); } else if (labelPos.equals("top_right")) { rangeMarker.setLabelAnchor(RectangleAnchor.TOP_RIGHT); rangeMarker.setLabelTextAnchor(TextAnchor.TOP_RIGHT); } else if (labelPos.equals("left")) { rangeMarker.setLabelAnchor(RectangleAnchor.LEFT); rangeMarker.setLabelTextAnchor(TextAnchor.CENTER_LEFT); } else if (labelPos.equals("center")) { rangeMarker.setLabelAnchor(RectangleAnchor.CENTER); rangeMarker.setLabelTextAnchor(TextAnchor.CENTER); } else if (labelPos.equals("right")) { rangeMarker.setLabelAnchor(RectangleAnchor.RIGHT); rangeMarker.setLabelTextAnchor(TextAnchor.CENTER_RIGHT); } else if (labelPos.equals("bottom_left")) { rangeMarker.setLabelAnchor(RectangleAnchor.BOTTOM_LEFT); rangeMarker.setLabelTextAnchor(TextAnchor.BOTTOM_LEFT); } else if (labelPos.equals("bottom")) { rangeMarker.setLabelAnchor(RectangleAnchor.BOTTOM); rangeMarker.setLabelTextAnchor(TextAnchor.BOTTOM_CENTER); } else if (labelPos.equals("bottom_right")) { rangeMarker.setLabelAnchor(RectangleAnchor.BOTTOM_RIGHT); rangeMarker.setLabelTextAnchor(TextAnchor.BOTTOM_RIGHT); }//from ww w .jav a 2s .c o m rangeMarker.setLabelOffsetType(LengthAdjustmentType.NO_CHANGE); rangeMarker.setLabelFont( getFont(rmData.getFont(), rmData.getFontBold(), rmData.getFontItalic(), rmData.getFontSize())); } plot.addRangeMarker(rangeMarker, Layer.BACKGROUND); }
From source file:com.naryx.tagfusion.cfm.tag.awt.cfCHART.java
public void addRangeMarker(XYPlot plot, cfCHARTRANGEMARKERData rmData) throws cfmRunTimeException { IntervalMarker rangeMarker = new IntervalMarker(rmData.getStart(), rmData.getEnd()); rangeMarker.setPaint(convertStringToColor(rmData.getColor())); if (rmData.getLabel() != null) { rangeMarker.setLabel(rmData.getLabel()); rangeMarker.setLabelPaint(convertStringToColor(rmData.getLabelColor())); String labelPos = rmData.getLabelPosition(); if (labelPos.equals("top_left")) { rangeMarker.setLabelAnchor(RectangleAnchor.TOP_LEFT); rangeMarker.setLabelTextAnchor(TextAnchor.TOP_LEFT); } else if (labelPos.equals("top")) { rangeMarker.setLabelAnchor(RectangleAnchor.TOP); rangeMarker.setLabelTextAnchor(TextAnchor.TOP_CENTER); } else if (labelPos.equals("top_right")) { rangeMarker.setLabelAnchor(RectangleAnchor.TOP_RIGHT); rangeMarker.setLabelTextAnchor(TextAnchor.TOP_RIGHT); } else if (labelPos.equals("left")) { rangeMarker.setLabelAnchor(RectangleAnchor.LEFT); rangeMarker.setLabelTextAnchor(TextAnchor.CENTER_LEFT); } else if (labelPos.equals("center")) { rangeMarker.setLabelAnchor(RectangleAnchor.CENTER); rangeMarker.setLabelTextAnchor(TextAnchor.CENTER); } else if (labelPos.equals("right")) { rangeMarker.setLabelAnchor(RectangleAnchor.RIGHT); rangeMarker.setLabelTextAnchor(TextAnchor.CENTER_RIGHT); } else if (labelPos.equals("bottom_left")) { rangeMarker.setLabelAnchor(RectangleAnchor.BOTTOM_LEFT); rangeMarker.setLabelTextAnchor(TextAnchor.BOTTOM_LEFT); } else if (labelPos.equals("bottom")) { rangeMarker.setLabelAnchor(RectangleAnchor.BOTTOM); rangeMarker.setLabelTextAnchor(TextAnchor.BOTTOM_CENTER); } else if (labelPos.equals("bottom_right")) { rangeMarker.setLabelAnchor(RectangleAnchor.BOTTOM_RIGHT); rangeMarker.setLabelTextAnchor(TextAnchor.BOTTOM_RIGHT); }/*from www. ja v a2 s. co m*/ rangeMarker.setLabelOffsetType(LengthAdjustmentType.NO_CHANGE); rangeMarker.setLabelFont( getFont(rmData.getFont(), rmData.getFontBold(), rmData.getFontItalic(), rmData.getFontSize())); } plot.addRangeMarker(rangeMarker, org.jfree.ui.Layer.BACKGROUND); }