List of usage examples for org.jfree.chart.title LegendTitle arrange
@Override
public Size2D arrange(Graphics2D g2, RectangleConstraint constraint)
From source file:org.jfree.chart.demo.LegendTitleToImageDemo2.java
public static void main(String args[]) throws IOException { DefaultPieDataset defaultpiedataset = new DefaultPieDataset(); defaultpiedataset.setValue("England", 1.0D); defaultpiedataset.setValue("France", 2D); defaultpiedataset.setValue("Germany", 3D); defaultpiedataset.setValue("Italy", 4D); defaultpiedataset.setValue("Scotland", 5D); defaultpiedataset.setValue("Belgium", 6D); defaultpiedataset.setValue("Poland", 7D); defaultpiedataset.setValue("Spain", 8D); defaultpiedataset.setValue("Portugal", 9D); defaultpiedataset.setValue("Switzerland", 10D); defaultpiedataset.setValue("Austria", 11D); defaultpiedataset.setValue("Luxembourg", 12D); JFreeChart jfreechart = ChartFactory.createPieChart("Test", defaultpiedataset, true, false, false); LegendTitle legendtitle = jfreechart.getLegend(); legendtitle.setMargin(0.0D, 0.0D, 1.0D, 1.0D); BufferedImage bufferedimage = new BufferedImage(1, 1, 2); Graphics2D graphics2d = bufferedimage.createGraphics(); Size2D size2d = legendtitle.arrange(graphics2d, new RectangleConstraint(250D, new Range(0.0D, 10000D))); graphics2d.dispose();/*from www .ja v a2s . c om*/ int i = (int) Math.rint(size2d.width); int j = (int) Math.rint(size2d.height); BufferedImage bufferedimage1 = new BufferedImage(i, j, 2); Graphics2D graphics2d1 = bufferedimage1.createGraphics(); legendtitle.draw(graphics2d1, new java.awt.geom.Rectangle2D.Double(0.0D, 0.0D, i, j)); graphics2d1.dispose(); BufferedOutputStream bufferedoutputstream = new BufferedOutputStream( new FileOutputStream(new File("LegendTitleToImageDemo2.png"))); ChartUtilities.writeBufferedImageAsPNG(bufferedoutputstream, bufferedimage1); bufferedoutputstream.close(); }
From source file:de.laures.cewolf.util.Renderer.java
/** * Renders a legend//from w w w .j a v a 2 s . c o m * @param cd the chart iamge to be rendred * @return the rendered image * @throws CewolfException */ private static RenderedImage renderLegend(ChartImage cd, Object c) throws CewolfException { try { JFreeChart chart = (JFreeChart) c; final int width = cd.getWidth(); final int height = cd.getHeight(); LegendTitle legend = getLegend(chart); boolean haslegend = true; // with JFreeChart v0.9.20, the only way to get a valid legend, // is either to retrieve it from the chart or to assign a new // one to the chart. In the case where the chart has no legend, // a new one must be assigned, but just for rendering. After, we // have to reset the legend to null in the chart. if (null == legend) { haslegend = false; legend = new LegendTitle(chart.getPlot()); } legend.setPosition(RectangleEdge.BOTTOM); BufferedImage bimage = ImageHelper.createImage(width, height); Graphics2D g = bimage.createGraphics(); g.setColor(Color.white); g.fillRect(0, 0, width, height); legend.arrange(g, new RectangleConstraint(width, height)); legend.draw(g, new Rectangle(width, height)); ByteArrayOutputStream out = new ByteArrayOutputStream(); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bimage); param.setQuality(1.0f, true); encoder.encode(bimage, param); out.close(); // if the chart had no legend, reset it to null in order to give back the // chart in the state we received it. if (!haslegend) { removeLegend(chart); } return new RenderedImage(out.toByteArray(), "image/jpeg", new ChartRenderingInfo(new StandardEntityCollection())); } catch (IOException ioex) { log.error(ioex); throw new ChartRenderingException(ioex.getMessage(), ioex); } }
From source file:org.logisticPlanning.utils.graphics.chart.impl.jfree._JFCLineChart2D.java
/** * paint a legend/*from w w w.j a va 2s . c om*/ * * @param legend * the legend * @param graphics * the graphics * @param bounds * the bounds */ private static final void __paintLegend(final LegendTitle legend, final Graphics2D graphics, final Rectangle2D bounds) { final Rectangle2D titleArea; final BlockParams p; final double ww, hh; final RectangleConstraint constraint; final Size2D size; p = new BlockParams(); p.setGenerateEntities(false); ww = bounds.getWidth(); if (ww <= 0.0d) { return; } hh = bounds.getHeight(); if (hh <= 0.0d) { return; } constraint = new RectangleConstraint(ww, new Range(0.0, ww), LengthConstraintType.RANGE, hh, new Range(0.0, hh), LengthConstraintType.RANGE); size = legend.arrange(graphics, constraint); titleArea = _JFCLineChart2D.__createAlignedRectangle2D(size, bounds, legend.getHorizontalAlignment(), VerticalAlignment.TOP); legend.setMargin(_JFCLineChart2D.LEGEND_MARGIN); legend.setPadding(_JFCLineChart2D.CHART_INSETS); legend.draw(graphics, titleArea, p); }
From source file:edu.cudenver.bios.chartsvc.representation.LegendImageRepresentation.java
/** * Called internally by Restlet library to write the image as the HTTP * response./*from w w w . ja va 2 s. c o m*/ * @param out output stream */ @Override public void write(OutputStream out) throws IOException { // build the legend from the plot, and write it to a jpeg image if (plot != null) { LegendTitle legend = new LegendTitle(plot, new ColumnArrangement(), new ColumnArrangement()); legend.setFrame(BlockBorder.NONE); //legend.setMargin(new RectangleInsets(2.0, 2.0, 2.0, 2.0)); legend.setBackgroundPaint(Color.white); legend.setPosition(RectangleEdge.BOTTOM); BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); Graphics2D g = image.createGraphics(); Rectangle2D.Double legendArea = new Rectangle2D.Double(0, 0, width, height); g.clip(legendArea); legend.arrange(g, new RectangleConstraint(width, height)); legend.draw(g, legendArea); g.dispose(); EncoderUtil.writeBufferedImage(image, ImageFormat.JPEG, out); } }
From source file:org.gumtree.vis.plot1d.Plot1DPanel.java
private void drawInternalLegend(Graphics2D g2) { // XYDataset dataset = getXYPlot().getDataset(); // int numSeries = dataset.getSeriesCount(); Rectangle2D screenArea = getScreenDataArea(); Rectangle2D lengendArea = new Rectangle2D.Double(screenArea.getMaxX() - internalLegendSetup.getMinX(), screenArea.getMinY() + internalLegendSetup.getMinY(), internalLegendSetup.getWidth(), internalLegendSetup.getHeight()); LegendTitle legend = new LegendTitle(getXYPlot()); RectangleConstraint rc = new RectangleConstraint(new Range(0, internalLegendSetup.getWidth()), new Range(0, internalLegendSetup.getHeight())); Size2D size = legend.arrange(g2, rc); getXYPlot().getLegendItems();//from w w w . j a v a2 s .c o m legend.draw(g2, lengendArea); Rectangle2D titleRect = new Rectangle2D.Double(lengendArea.getMinX(), lengendArea.getMinY(), size.width, size.height); internalLegendSetup.setRect(internalLegendSetup.getX(), internalLegendSetup.getY(), titleRect.getWidth(), titleRect.getHeight()); if (isInternalLegendSelected) { ChartMaskingUtilities.drawMaskBoarder(g2, titleRect); } else { g2.setColor(Color.GRAY); g2.draw(titleRect); } }