/** * Sets the gradient paint transformer and sends a * {@link RendererChangeEvent} to all registered listeners. * * @param gpt the transformer ({@code null} permitted). * * @since 1.0.17 */ public void setGradientPaintTransformer(GradientPaintTransformer gpt) { this.gradientPaintTransformer = gpt; fireChangeEvent(); }
public Paint getSeriesPaint(int series) { if(ofxPaintColors!=null) { return ofxPaintColors.getSeriesPaint(series); } else { return super.getSeriesPaint(series); } }
public void drawChart(String filename, int width, int height) throws IOException { // Create plot NumberAxis xAxis = new NumberAxis(xAxisLabel); NumberAxis yAxis = new NumberAxis(yAxisLabel); XYSplineRenderer renderer = new XYSplineRenderer(); XYPlot plot = new XYPlot(dataset, xAxis, yAxis, renderer); plot.setBackgroundPaint(Color.lightGray); plot.setDomainGridlinePaint(Color.white); plot.setRangeGridlinePaint(Color.white); plot.setAxisOffset(new RectangleInsets(4, 4, 4, 4)); // Create chart JFreeChart chart = new JFreeChart(chartTitle, JFreeChart.DEFAULT_TITLE_FONT, plot, true); ChartUtilities.applyCurrentTheme(chart); ChartPanel chartPanel = new ChartPanel(chart, false); // Draw png BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR); Graphics graphics = bi.getGraphics(); chartPanel.setBounds(0, 0, width, height); chartPanel.paint(graphics); ImageIO.write(bi, "png", new File(filename)); }
- (d[i] - d[i - 1]) / h[i]; solveTridiag(sub, diag, sup, a, np - 2); Paint fp = getSeriesFillPaint(series); if (this.gradientPaintTransformer != null && fp instanceof GradientPaint) { drawFirstPassShape(g2, pass, series, item, s.seriesPath);
- (d[i] - d[i - 1]) / h[i]; solveTridiag(sub, diag, sup, a, np - 2); drawFirstPassShape(g2, pass, series, item, s.seriesPath);
/** * Initialises the renderer. * <P> * This method will be called before the first item is rendered, giving the * renderer an opportunity to initialise any state information it wants to * maintain. The renderer can do nothing if it chooses. * * @param g2 the graphics device. * @param dataArea the area inside the axes. * @param plot the plot. * @param data the data. * @param info an optional info collection object to return data back to * the caller. * * @return The renderer state. */ public XYItemRendererState initialise(Graphics2D g2, Rectangle2D dataArea, XYPlot plot, XYDataset data, PlotRenderingInfo info) { State state = (State) super.initialise(g2, dataArea, plot, data, info); state.setProcessVisibleItemsOnly(false); this.points = new Vector(); setDrawSeriesLineAsPath(true); return state; }
public void drawChart(String filename, int width, int height) throws IOException { // Create plot NumberAxis xAxis = new NumberAxis(xAxisLabel); NumberAxis yAxis = new NumberAxis(yAxisLabel); XYSplineRenderer renderer = new XYSplineRenderer(); XYPlot plot = new XYPlot(dataset, xAxis, yAxis, renderer); plot.setBackgroundPaint(Color.lightGray); plot.setDomainGridlinePaint(Color.white); plot.setRangeGridlinePaint(Color.white); plot.setAxisOffset(new RectangleInsets(4, 4, 4, 4)); // Create chart JFreeChart chart = new JFreeChart(chartTitle, JFreeChart.DEFAULT_TITLE_FONT, plot, true); ChartUtilities.applyCurrentTheme(chart); ChartPanel chartPanel = new ChartPanel(chart, false); // Draw png BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR); Graphics graphics = bi.getGraphics(); chartPanel.setBounds(0, 0, width, height); chartPanel.paint(graphics); ImageIO.write(bi, "png", new File(filename)); }
/** * Initialises the renderer. * <P> * This method will be called before the first item is rendered, giving the * renderer an opportunity to initialise any state information it wants to * maintain. The renderer can do nothing if it chooses. * * @param g2 the graphics device. * @param dataArea the area inside the axes. * @param plot the plot. * @param data the data. * @param info an optional info collection object to return data back to * the caller. * * @return The renderer state. */ @Override public XYItemRendererState initialise(Graphics2D g2, Rectangle2D dataArea, XYPlot plot, XYDataset data, PlotRenderingInfo info) { setDrawSeriesLineAsPath(true); XYSplineState state = new XYSplineState(info); state.setProcessVisibleItemsOnly(false); return state; }
@Override public void write(OutputStream aStream) throws IOException { JFreeChart chart = ChartFactory.createXYLineChart(null, "Recall", "Precision", dataset, PlotOrientation.VERTICAL, false, false, false); chart.getXYPlot().setRenderer(new XYSplineRenderer()); chart.getXYPlot().getRangeAxis().setRange(0.0, 1.0); chart.getXYPlot().getDomainAxis().setRange(0.0, 1.0); ChartUtil.writeChartAsSVG(aStream, chart, 400, 400); } }
/** * Set the fill type and sends a {@link RendererChangeEvent} * to all registered listeners. * * @param fillType the fill type ({@code null} not permitted). * * @see #getFillType() * * @since 1.0.17 */ public void setFillType(FillType fillType) { this.fillType = fillType; fireChangeEvent(); }
private static JFreeChart plotChart(List<ExtendedResult> results) { double[][] dataFScore = new double[2][results.size()]; double[][] dataPrecision = new double[2][results.size()]; double[][] dataRecall = new double[2][results.size()]; for (int i = 0; i < results.size(); i++) { ExtendedResult r = results.get(i); dataFScore[0][i] = r.getIterationNumber(); dataFScore[1][i] = r.getFscore(); dataPrecision[0][i] = r.getIterationNumber(); dataPrecision[1][i] = r.getPrecision(); dataRecall[0][i] = r.getIterationNumber(); dataRecall[1][i] = r.getRecall(); } DefaultXYDataset dataset = new DefaultXYDataset(); dataset.addSeries("F-Score", dataFScore); dataset.addSeries("Precision", dataPrecision); dataset.addSeries("Recall", dataRecall); JFreeChart chart = ChartFactory.createXYLineChart(null, "Increment #", "Value", dataset, PlotOrientation.VERTICAL, true, false, false); chart.getXYPlot().setRenderer(new XYSplineRenderer()); chart.getXYPlot().getRangeAxis().setRange(0, 1.0); NumberAxis xAxis = new NumberAxis(); xAxis.setTickUnit(new NumberTickUnit(1)); xAxis.setAutoRange(true); xAxis.setAutoRangeIncludesZero(false); xAxis.setTickUnit(new NumberTickUnit(1)); chart.getXYPlot().setDomainAxis(xAxis); return chart; }
/** * Set the resolution of splines and sends a {@link RendererChangeEvent} * to all registered listeners. * * @param p number of line segments between points (must be > 0). * * @see #getPrecision() */ public void setPrecision(int p) { if (p <= 0) { throw new IllegalArgumentException("Requires p > 0."); } this.precision = p; fireChangeEvent(); }
/** * Set the resolution of splines and sends a {@link RendererChangeEvent} * to all registered listeners. * * @param p number of line segments between points (must be > 0). * * @see #getPrecision() */ public void setPrecision(int p) { if (p <= 0) { throw new IllegalArgumentException("Requires p > 0."); } this.precision = p; fireChangeEvent(); }