Example usage for org.jfree.chart.axis CategoryAxis CategoryAxis

List of usage examples for org.jfree.chart.axis CategoryAxis CategoryAxis

Introduction

In this page you can find the example usage for org.jfree.chart.axis CategoryAxis CategoryAxis.

Prototype

public CategoryAxis(String label) 

Source Link

Document

Constructs a category axis, using default values where necessary.

Usage

From source file:gov.nih.nci.ispy.ui.graphing.chart.plot.ISPYCategoricalCorrelationPlot.java

private void createChart() {

    String title = "Categorical Plot";

    CategoryDataset chartData = createChartData();

    CategoryAxis domainAxis = new CategoryAxis(null);
    NumberAxis rangeAxis = new NumberAxis(yLabel);
    //BoxAndWhiskerRenderer renderer = new BoxAndWhiskerRenderer();

    BoxAndWhiskerCoinPlotRenderer renderer = new BoxAndWhiskerCoinPlotRenderer();
    renderer.setDisplayAllOutliers(true);
    CategoryPlot plot = new CategoryPlot(chartData, domainAxis, rangeAxis, renderer);

    domainAxis.setCategoryLabelPositions(
            CategoryLabelPositions.createUpRotationLabelPositions(45.0 * Math.PI / 180.0));
    catCorrChart = new JFreeChart(title, plot);
    catCorrChart.removeLegend();//from  www.jav a  2 s  .  c  o  m
    //renderer.setFillBox(false);
    String cat = (String) chartData.getColumnKey(0);

    //renderer.setToolTipGenerator(new StandardCategoryToolTipGenerator());
    renderer.setToolTipGenerator(new CategoryToolTipGenerator() {
        public String generateToolTip(CategoryDataset dataset, int series, int item) {
            String tt = "";
            NumberFormat formatter = new DecimalFormat(".####");
            String key = "";
            //String s = formatter.format(-1234.567);  // -001235
            if (dataset instanceof DefaultBoxAndWhiskerCategoryDataset) {
                DefaultBoxAndWhiskerCategoryDataset ds = (DefaultBoxAndWhiskerCategoryDataset) dataset;
                try {
                    String med = formatter.format(ds.getMedianValue(series, item));
                    tt += "Median: " + med + "<br/>";
                    tt += "Mean: " + formatter.format(ds.getMeanValue(series, item)) + "<br/>";
                    tt += "Q1: " + formatter.format(ds.getQ1Value(series, item)) + "<br/>";
                    tt += "Q3: " + formatter.format(ds.getQ3Value(series, item)) + "<br/>";
                    tt += "Max: "
                            + formatter.format(
                                    FaroutOutlierBoxAndWhiskerCalculator.getMaxFaroutOutlier(ds, series, item))
                            + "<br/>";
                    tt += "Min: "
                            + formatter.format(
                                    FaroutOutlierBoxAndWhiskerCalculator.getMinFaroutOutlier(ds, series, item))
                            + "<br/>";
                    //tt += "<br/><br/>Please click on the box and whisker to view a plot for this reporter.<br/>";
                    //tt += "X: " + ds.getValue(series, item).toString()+"<br/>";
                    //tt += "<br/><a href=\\\'#\\\' id=\\\'"+ds.getRowKeys().get(series)+"\\\' onclick=\\\'alert(this.id);return false;\\\'>"+ds.getRowKeys().get(series)+" plot</a><br/><br/>";
                    key = ds.getRowKeys().get(series).toString();
                } catch (Exception e) {
                }
            }

            return tt;
        }

    });

    //        renderer.setToolTipGenerator(new CategoryToolTipGenerator() {
    //           
    //         public String generateToolTip(CategoryDataset dataset,int series, int item) {
    //            String tt="";
    //            NumberFormat formatter = new DecimalFormat(".####");
    //            String key = "";
    //             //String s = formatter.format(-1234.567);  // -001235
    //            StringBuffer sb = new StringBuffer();
    //             if(dataset instanceof DefaultBoxAndWhiskerCategoryDataset){
    //                DefaultBoxAndWhiskerCategoryDataset ds = (DefaultBoxAndWhiskerCategoryDataset)dataset;
    //                try   {
    //                   
    //                   String str;
    //                   str = (String) ds.getColumnKey(item);
    //                   sb.append(str).append(" N=");
    //                   BoxAndWhiskerItem bwitem = ds.getItem(series,item);
    //                   
    //                  str = formatter.format(ds.getMedianValue(series, item));
    //                  sb.append("Median: ").append(str);
    //                  str = formatter.format(ds.getMeanValue(series, item));
    //                  sb.append(" Mean: ").append(str);
    //                  str = formatter.format(ds.getMinRegularValue(series, item));
    //                  sb.append(" Min: ").append(str);
    //                  str = formatter.format(ds.getMaxRegularValue(series, item));
    //                  sb.append(" Max: ").append(str);
    //                  str = formatter.format(ds.getQ1Value(series, item));
    //                  sb.append(" Q1: ").append(str);   
    //                  str = formatter.format(ds.getQ3Value(series, item));
    //                  sb.append(" Q3: ").append(str);
    //                  
    //                }
    //                catch(Exception e) {}
    //             }
    //             
    //            return sb.toString();
    //            
    //         }
    //
    //      });

    plot.setNoDataMessage(null);
}

From source file:com.insa.tp3g1.esbsimulator.view.OverlaidBarChart.java

/**
 * Default constructor.//from   w  w  w .  j  av a  2 s  . c o  m
 *
 * @param title  the frame title.
 * @param result
 */
public OverlaidBarChart(final String title, Result result) {

    super(title);

    // create the first dataset...
    DefaultCategoryDataset dataset1 = new DefaultCategoryDataset();
    LinkConsumerProvider[] linkConsProv = result.getLinksConsumerProvider();
    for (LinkConsumerProvider linkConsProv1 : linkConsProv) {
        dataset1.addValue(Integer.parseInt(linkConsProv1.getAverageResponseTime()), average,
                link + linkConsProv1.getConsumerId());
    }

    // create the first renderer...
    //      final CategoryLabelGenerator generator = new StandardCategoryLabelGenerator();
    final CategoryItemRenderer renderer = new BarRenderer();
    //    renderer.setLabelGenerator(generator);
    renderer.setItemLabelsVisible(true);

    final CategoryPlot plot = new CategoryPlot();
    plot.setDataset(dataset1);
    plot.setRenderer(renderer);

    plot.setDomainAxis(new CategoryAxis("Category"));
    plot.setRangeAxis(new NumberAxis("Value (ms)"));

    plot.setOrientation(PlotOrientation.VERTICAL);
    plot.setRangeGridlinesVisible(true);
    plot.setDomainGridlinesVisible(true);

    // now create the second dataset and renderer...
    DefaultCategoryDataset dataset2 = new DefaultCategoryDataset();

    for (LinkConsumerProvider linkConsProv1 : linkConsProv) {
        dataset2.addValue(Integer.parseInt(result.getTotalResult().getResponseTime().getMinResponseTime()), min,
                link + linkConsProv1.getConsumerId());
    }

    final CategoryItemRenderer renderer2 = new LineAndShapeRenderer();
    plot.setDataset(1, dataset2);
    plot.setRenderer(1, renderer2);

    // create the third dataset and renderer... 
    final ValueAxis rangeAxis2 = new NumberAxis("value (ms)");
    plot.setRangeAxis(1, rangeAxis2);

    DefaultCategoryDataset dataset3 = new DefaultCategoryDataset();

    for (LinkConsumerProvider linkConsProv1 : linkConsProv) {
        dataset3.addValue(Integer.parseInt(result.getTotalResult().getResponseTime().getMaxResponseTime()), max,
                link + linkConsProv1.getConsumerId());
    }

    plot.setDataset(2, dataset3);
    final CategoryItemRenderer renderer3 = new LineAndShapeRenderer();
    plot.setRenderer(2, renderer3);
    plot.mapDatasetToRangeAxis(2, 1);
    // change the rendering order so the primary dataset appears "behind" the 
    // other datasets...
    plot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);

    plot.getDomainAxis().setCategoryLabelPositions(CategoryLabelPositions.UP_45);
    final JFreeChart chart = new JFreeChart(plot);
    chart.setTitle("Response Time Chart");
    //  chart.setLegend(new StandardLegend());

    // add the chart to a panel...
    final ChartPanel chartPanel = new ChartPanel(chart);
    chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
    setContentPane(chartPanel);

}

From source file:unalcol.termites.boxplots.ECALMessages.java

/**
 * Creates a new demo.//from   w ww. j  a  va 2s . c  o m
 *
 * @param title the frame title.
 * @param pf
 */
public ECALMessages(final String title, ArrayList<Double> pf) {

    super(title);

    final CategoryAxis xAxis = new CategoryAxis("");
    //final NumberAxis yAxis = new NumberAxis("Messages Sent");
    final NumberAxis yAxis = new NumberAxis("");

    yAxis.setAutoRangeIncludesZero(false);
    final BoxAndWhiskerRenderer renderer = new BoxAndWhiskerRenderer();
    final BoxAndWhiskerCategoryDataset dataset = createSampleDataset(pf, renderer);
    renderer.setFillBox(false);
    renderer.setToolTipGenerator(new BoxAndWhiskerToolTipGenerator());
    final CategoryPlot plot = new CategoryPlot(dataset, xAxis, yAxis, renderer);

    Font font = new Font("Dialog", Font.PLAIN, 13);
    xAxis.setTickLabelFont(font);
    yAxis.setTickLabelFont(font);
    yAxis.setLabelFont(font);

    final JFreeChart chart = new JFreeChart("Messages Sent " + getTitle(pf),
            new Font("SansSerif", Font.BOLD, 18), plot, true);

    final ChartPanel chartPanel = new ChartPanel(chart);
    chartPanel.setPreferredSize(new java.awt.Dimension(650, 370));
    setContentPane(chartPanel);
    TextTitle legendText = null;
    if (pf.size() == 1) {
        legendText = new TextTitle("Population Size");
    } else {
        legendText = new TextTitle("Population Size - Probability of Failure");
    }
    legendText.setPosition(RectangleEdge.BOTTOM);
    chart.addSubtitle(legendText);

    LegendTitle legend = chart.getLegend();
    legend.setPadding(new RectangleInsets(UnitType.RELATIVE, 0, 0.1, 0, 0));

    FileOutputStream output;
    try {
        output = new FileOutputStream("messagesECAL" + pf + ".jpg");
        ChartUtilities.writeChartAsJPEG(output, 1.0f, chart, 670, 250, null);
    } catch (FileNotFoundException ex) {
        Logger.getLogger(ECALMessages.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
        Logger.getLogger(ECALMessages.class.getName()).log(Level.SEVERE, null, ex);
    }
}

From source file:unalcol.termites.boxplots.MessagesSent2.java

/**
 * Creates a new demo.//from  w ww.  j a  va2  s. c  o m
 *
 * @param title the frame title.
 * @param pf
 */
public MessagesSent2(final String title, ArrayList<Double> pf) {

    super(title);

    final CategoryAxis xAxis = new CategoryAxis("");
    //final NumberAxis yAxis = new NumberAxis("Messages Sent");
    final NumberAxis yAxis = new NumberAxis("");

    yAxis.setAutoRangeIncludesZero(false);
    final BoxAndWhiskerRenderer renderer = new BoxAndWhiskerRenderer();
    final BoxAndWhiskerCategoryDataset dataset = createSampleDataset(pf, renderer);
    renderer.setFillBox(false);
    renderer.setToolTipGenerator(new BoxAndWhiskerToolTipGenerator());
    final CategoryPlot plot = new CategoryPlot(dataset, xAxis, yAxis, renderer);

    Font font = new Font("Dialog", Font.PLAIN, 13);
    xAxis.setTickLabelFont(font);
    yAxis.setTickLabelFont(font);
    yAxis.setLabelFont(font);

    final JFreeChart chart = new JFreeChart("Messages Sent " + getTitle(pf),
            new Font("SansSerif", Font.BOLD, 18), plot, true);

    final ChartPanel chartPanel = new ChartPanel(chart);
    chartPanel.setPreferredSize(new java.awt.Dimension(650, 370));
    setContentPane(chartPanel);
    TextTitle legendText = null;
    if (pf.size() == 1) {
        legendText = new TextTitle("Population Size");
    } else {
        legendText = new TextTitle("Population Size - Probability of Failure");
    }
    legendText.setPosition(RectangleEdge.BOTTOM);
    chart.addSubtitle(legendText);

    LegendTitle legend = chart.getLegend();
    legend.setPadding(new RectangleInsets(UnitType.RELATIVE, 0, 0.1, 0, 0));

    FileOutputStream output;
    try {
        output = new FileOutputStream("messagesnumber2" + pf + ".jpg");
        ChartUtilities.writeChartAsJPEG(output, 1.0f, chart, 670, 250, null);
    } catch (FileNotFoundException ex) {
        Logger.getLogger(MessagesSent2.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
        Logger.getLogger(MessagesSent2.class.getName()).log(Level.SEVERE, null, ex);
    }
}

From source file:org.jfree.chart.demo.StatisticalBarChartDemo.java

/**
 * Creates a new demo.//from  www.java 2 s . c  o  m
 *
 * @param title  the frame title.
 */
public StatisticalBarChartDemo(final String title) {

    super(title);
    final StatisticalCategoryDataset dataset = createDataset();

    final CategoryAxis xAxis = new CategoryAxis("Type");
    xAxis.setLowerMargin(0.01d); // percentage of space before first bar
    xAxis.setUpperMargin(0.01d); // percentage of space after last bar
    xAxis.setCategoryMargin(0.05d); // percentage of space between categories
    final ValueAxis yAxis = new NumberAxis("Value");

    // define the plot
    final CategoryItemRenderer renderer = new StatisticalBarRenderer();
    final CategoryPlot plot = new CategoryPlot(dataset, xAxis, yAxis, renderer);

    final JFreeChart chart = new JFreeChart("Statistical Bar Chart Demo", new Font("Helvetica", Font.BOLD, 14),
            plot, true);
    //chart.setBackgroundPaint(Color.white);
    // add the chart to a panel...
    final ChartPanel chartPanel = new ChartPanel(chart);
    chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
    setContentPane(chartPanel);

}

From source file:org.jfree.chart.demo.OverlaidBarChartDemo1.java

public static JFreeChart createChart() {
    DefaultCategoryDataset dataset1 = new DefaultCategoryDataset();
    dataset1.addValue(1.0D, "S1", "Category 1");
    dataset1.addValue(4D, "S1", "Category 2");
    dataset1.addValue(3D, "S1", "Category 3");
    dataset1.addValue(5D, "S1", "Category 4");
    dataset1.addValue(5D, "S1", "Category 5");
    dataset1.addValue(7D, "S1", "Category 6");
    dataset1.addValue(7D, "S1", "Category 7");
    dataset1.addValue(8D, "S1", "Category 8");
    dataset1.addValue(5D, "S2", "Category 1");
    dataset1.addValue(7D, "S2", "Category 2");
    dataset1.addValue(6D, "S2", "Category 3");
    dataset1.addValue(8D, "S2", "Category 4");
    dataset1.addValue(4D, "S2", "Category 5");
    dataset1.addValue(4D, "S2", "Category 6");
    dataset1.addValue(2D, "S2", "Category 7");
    dataset1.addValue(1.0D, "S2", "Category 8");
    DefaultCategoryDataset dataset2 = new DefaultCategoryDataset();
    dataset2.addValue(9D, "T1", "Category 1");
    dataset2.addValue(7D, "T1", "Category 2");
    dataset2.addValue(2D, "T1", "Category 3");
    dataset2.addValue(6D, "T1", "Category 4");
    dataset2.addValue(6D, "T1", "Category 5");
    dataset2.addValue(9D, "T1", "Category 6");
    dataset2.addValue(5D, "T1", "Category 7");
    dataset2.addValue(4D, "T1", "Category 8");
    DefaultCategoryDataset dataset3 = new DefaultCategoryDataset();
    dataset3.addValue(94D, "R1", "Category 1");
    dataset3.addValue(75D, "R1", "Category 2");
    dataset3.addValue(22D, "R1", "Category 3");
    dataset3.addValue(74D, "R1", "Category 4");
    dataset3.addValue(83D, "R1", "Category 5");
    dataset3.addValue(9D, "R1", "Category 6");
    dataset3.addValue(23D, "R1", "Category 7");
    dataset3.addValue(98D, "R1", "Category 8");
    ////from   ww  w  . j a  v  a 2 s .  c om
    StandardCategoryItemLabelGenerator standardcategoryitemlabelgenerator = new StandardCategoryItemLabelGenerator();
    BarRenderer renderer1 = new BarRenderer();
    renderer1.setBaseItemLabelGenerator(standardcategoryitemlabelgenerator);
    renderer1.setBaseItemLabelsVisible(true);
    LineAndShapeRenderer renderer2 = new LineAndShapeRenderer();
    LineAndShapeRenderer renderer3 = new LineAndShapeRenderer();
    //plot
    CategoryPlot plot = new CategoryPlot();
    plot.setDataset(dataset1);
    plot.setRenderer(renderer1);
    plot.setDataset(1, dataset2);
    plot.setRenderer(1, renderer2);
    plot.setDataset(2, dataset3);
    plot.setRenderer(2, renderer3);
    plot.setDomainAxis(new CategoryAxis("Category"));
    //more rangeAxis
    plot.setRangeAxis(new NumberAxis("Value"));
    plot.setRangeAxis(1, new NumberAxis("Axis 2"));
    plot.mapDatasetToRangeAxis(2, 1);
    //
    plot.setOrientation(PlotOrientation.VERTICAL);
    plot.setRangeGridlinesVisible(true);
    plot.setDomainGridlinesVisible(true);
    plot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);
    plot.getDomainAxis().setCategoryLabelPositions(CategoryLabelPositions.UP_45);
    //chart
    JFreeChart chart = new JFreeChart(plot);
    chart.setTitle("Overlaid Bar Chart");
    return chart;
}

From source file:playground.anhorni.surprice.analysis.SupriceBoxPlot.java

public JFreeChart createChart() {
    String title = chartTitle;//ww  w.jav a 2s  . c  om

    final CategoryAxis xAxis = new CategoryAxis(this.xAxisName);
    xAxis.setTickLabelFont(new Font("SansSerif", Font.PLAIN, 10));
    xAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);

    final NumberAxis yAxis = new NumberAxis(this.yAxisName);
    yAxis.setAutoRangeIncludesZero(true);

    if (Math.abs(yrangeLower - yrangeUpper) > Double.MIN_VALUE) {
        yAxis.setRange(yrangeLower, yrangeUpper);
    }

    final BoxAndWhiskerRenderer renderer = new BoxAndWhiskerRenderer();
    renderer.setFillBox(false);
    renderer.setSeriesPaint(0, Color.blue);
    CategoryPlot plot = new CategoryPlot(dataset, xAxis, yAxis, renderer);

    this.chart_ = new JFreeChart(title, new Font("SansSerif", Font.BOLD, 14), plot, false);
    return this.chart_;
}

From source file:org.jfree.chart.demo.LayeredBarChartDemo2.java

/**
 * Creates a new demo instance./*from  w  ww  .j  a v a2  s  .  c  o  m*/
 *
 * @param title  the frame title.
 */
public LayeredBarChartDemo2(final String title) {

    super(title);

    // create a dataset...
    final double[][] data = new double[][] { { 41.0, 33.0, 22.0, 64.0, 42.0, 62.0, 22.0, 14.0 },
            { 55.0, 63.0, 55.0, 48.0, 54.0, 37.0, 41.0, 39.0 },
            { 57.0, 75.0, 43.0, 33.0, 63.0, 46.0, 57.0, 33.0 } };

    final CategoryDataset dataset = DatasetUtilities.createCategoryDataset("Series ", "Factor ", data);

    // create the chart...
    final CategoryAxis categoryAxis = new CategoryAxis("Category");
    final ValueAxis valueAxis = new NumberAxis("Score (%)");

    final CategoryPlot plot = new CategoryPlot(dataset, categoryAxis, valueAxis, new LayeredBarRenderer());

    plot.setOrientation(PlotOrientation.VERTICAL);
    final JFreeChart chart = new JFreeChart("Layered Bar Chart Demo 2", JFreeChart.DEFAULT_TITLE_FONT, plot,
            true);

    // set the background color for the chart...
    chart.setBackgroundPaint(Color.lightGray);

    final LayeredBarRenderer renderer = (LayeredBarRenderer) plot.getRenderer();

    // we can set each series bar width individually or let the renderer manage a standard view.
    // the width is set in percentage, where 1.0 is the maximum (100%).
    renderer.setSeriesBarWidth(0, 1.0);
    renderer.setSeriesBarWidth(1, 0.7);
    renderer.setSeriesBarWidth(2, 0.5);

    renderer.setItemMargin(0.01);

    final CategoryAxis domainAxis = plot.getDomainAxis();
    domainAxis.setCategoryMargin(0.25);
    domainAxis.setUpperMargin(0.05);
    domainAxis.setLowerMargin(0.05);

    // add the chart to a panel...
    final ChartPanel chartPanel = new ChartPanel(chart);
    chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
    setContentPane(chartPanel);

}

From source file:org.jfree.expdemo.SelectionDemo7ScatterRenderer.java

/**
 * Creates a chart.//from w  w w.  jav a  2 s.  c  o m
 * 
 * @param dataset
 *            the dataset.
 * 
 * @return A chart.
 */
private static JFreeChart createChart(final MultiValueCategoryDataset dataset,
        final DatasetSelectionExtension ext) {

    ScatterRenderer r = new ScatterRenderer();
    CategoryPlot plot = new CategoryPlot(dataset, new CategoryAxis("Category"), new NumberAxis("Value"), r);
    plot.setBackgroundPaint(Color.lightGray);
    plot.setDomainGridlinePaint(Color.white);
    plot.setRangeGridlinePaint(Color.white);
    plot.setAxisOffset(new RectangleInsets(4, 4, 4, 4));
    JFreeChart chart = new JFreeChart("ScatterRendererDemo1", plot);
    ChartUtilities.applyCurrentTheme(chart);

    //register the plot
    ext.addSelectionChangeListener(plot);

    //illustrates the usage of a shape item rendering strategy
    final CategoryCursor cursor = new CategoryCursor();
    r.setShapeIRS(new DefaultShapeIRS(r) {
        public Shape getItemShape(int row, int column) {
            cursor.setPosition(dataset.getRowKey(row), dataset.getColumnKey(column));
            if (ext.isSelected(cursor)) {
                return new Rectangle2D.Double(-10.0, -10.0, 20.0, 20.0);
            } else {
                return super.getItemShape(row, column);
            }
        }
    });

    return chart;

}

From source file:unalcol.termites.boxplots.BestAgentsRoundInfoCollected.java

/**
 * Creates a new demo.//from  w ww  .  j  ava  2s  .co m
 *
 * @param title the frame title.
 * @param pf
 */
public BestAgentsRoundInfoCollected(final String title, ArrayList<Double> pf) {

    super(title);
    String sDirectorio = experimentsDir;

    Hashtable<String, List> info = new Hashtable();

    /*for (String mode : aMode) {
    info.put(mode, new ArrayList());
    }*/

    createSampleDataset(pf, info);
    AddDataFailingExperiments(sDirectorio, pf, info);
    final BoxAndWhiskerCategoryDataset dataset = addDataSet(info);
    System.out.println("info" + info);
    final CategoryAxis xAxis = new CategoryAxis("");
    //final NumberAxis yAxis = new NumberAxis("Information Collected");
    final NumberAxis yAxis = new NumberAxis("");

    yAxis.setAutoRangeIncludesZero(false);
    final BoxAndWhiskerRenderer renderer = new BoxAndWhiskerRenderer();
    renderer.setFillBox(false);
    renderer.setToolTipGenerator(new BoxAndWhiskerToolTipGenerator());
    final CategoryPlot plot = new CategoryPlot(dataset, xAxis, yAxis, renderer);

    Font font = new Font("Dialog", Font.PLAIN, 13);
    xAxis.setTickLabelFont(font);
    yAxis.setTickLabelFont(font);
    yAxis.setLabelFont(font);

    final JFreeChart chart = new JFreeChart("Round of Best Agents " + getTitle(pf),
            new Font("SansSerif", Font.BOLD, 18), plot, true);
    final ChartPanel chartPanel = new ChartPanel(chart);
    chartPanel.setPreferredSize(new java.awt.Dimension(650, 370));
    setContentPane(chartPanel);

    TextTitle legendText = null;
    if (pf.size() == 1) {
        legendText = new TextTitle("Population Size");
    } else {
        legendText = new TextTitle("Population Size - Probability of Failure");
    }

    legendText.setFont(font);
    legendText.setPosition(RectangleEdge.BOTTOM);
    chart.addSubtitle(legendText);
    chart.getLegend().setItemFont(font);

    FileOutputStream output;
    try {
        output = new FileOutputStream("BestAgentsRound" + pf + mazeMode + ".jpg");
        ChartUtilities.writeChartAsJPEG(output, 1.0f, chart, 450, 350, null);
    } catch (FileNotFoundException ex) {
        Logger.getLogger(BestAgentsRoundInfoCollected.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
        Logger.getLogger(BestAgentsRoundInfoCollected.class.getName()).log(Level.SEVERE, null, ex);
    }
}