chartfactory.java

来自「JfreeChart 常用图表例子」· Java 代码 · 共 1,514 行 · 第 1/5 页

JAVA
1,514
字号
    }    /**     * Creates a polar plot for the specified dataset (x-values interpreted as      * angles in degrees).  The chart object returned by this method uses a      * {@link PolarPlot} instance as the plot, with a {@link NumberAxis} for      * the radial axis.     *     * @param title  the chart title (<code>null</code> permitted).     * @param dataset  the dataset (<code>null</code> permitted).     * @param legend  legend required?     * @param tooltips  tooltips required?     * @param urls  URLs required?     *     * @return A chart.     */    public static JFreeChart createPolarChart(String title,                                              XYDataset dataset,                                              boolean legend,                                              boolean tooltips,                                              boolean urls) {        PolarPlot plot = new PolarPlot();        plot.setDataset(dataset);        NumberAxis rangeAxis = new NumberAxis();        rangeAxis.setAxisLineVisible(false);        rangeAxis.setTickMarksVisible(false);        rangeAxis.setTickLabelInsets(new RectangleInsets(0.0, 0.0, 0.0, 0.0));        plot.setAxis(rangeAxis);        plot.setRenderer(new DefaultPolarItemRenderer());        JFreeChart chart = new JFreeChart(            title, JFreeChart.DEFAULT_TITLE_FONT, plot, legend        );        return chart;    }    /**     * Creates a scatter plot with default settings.     * <P>     * The chart object returned by this method uses an {@link XYPlot} instance     * as the plot, with a {@link NumberAxis} for the domain axis, a      * {@link NumberAxis} as the range axis, and a      * {@link StandardXYItemRenderer} as the renderer.     *     * @param title  the chart title (<code>null</code> permitted).     * @param xAxisLabel  a label for the X-axis (<code>null</code> permitted).     * @param yAxisLabel  a label for the Y-axis (<code>null</code> permitted).     * @param dataset  the dataset for the chart (<code>null</code> permitted).     * @param orientation  the plot orientation (horizontal or vertical)      *                     (<code>null</code> NOT permitted).     * @param legend  a flag specifying whether or not a legend is required.     * @param tooltips  configure chart to generate tool tips?     * @param urls  configure chart to generate URLs?     *     * @return A scatter plot.     */    public static JFreeChart createScatterPlot(String title,                                               String xAxisLabel,                                               String yAxisLabel,                                               XYDataset dataset,                                               PlotOrientation orientation,                                               boolean legend,                                               boolean tooltips,                                               boolean urls) {        if (orientation == null) {            throw new IllegalArgumentException("Null 'orientation' argument.");        }        NumberAxis xAxis = new NumberAxis(xAxisLabel);        xAxis.setAutoRangeIncludesZero(false);        NumberAxis yAxis = new NumberAxis(yAxisLabel);        yAxis.setAutoRangeIncludesZero(false);        XYPlot plot = new XYPlot(dataset, xAxis, yAxis, null);        XYToolTipGenerator toolTipGenerator = null;        if (tooltips) {            toolTipGenerator = new StandardXYToolTipGenerator();        }        XYURLGenerator urlGenerator = null;        if (urls) {            urlGenerator = new StandardXYURLGenerator();        }        XYItemRenderer renderer = new XYLineAndShapeRenderer(false, true);        renderer.setBaseToolTipGenerator(toolTipGenerator);        renderer.setURLGenerator(urlGenerator);        plot.setRenderer(renderer);        plot.setOrientation(orientation);        JFreeChart chart = new JFreeChart(            title, JFreeChart.DEFAULT_TITLE_FONT, plot, legend        );        return chart;    }    /**     * Creates and returns a default instance of an XY bar chart.     * <P>     * The chart object returned by this method uses an {@link XYPlot} instance     * as the plot, with a {@link DateAxis} for the domain axis, a      * {@link NumberAxis} as the range axis, and a {@link XYBarRenderer} as the      * renderer.     *     * @param title  the chart title (<code>null</code> permitted).     * @param xAxisLabel  a label for the X-axis (<code>null</code> permitted).     * @param dateAxis  make the domain axis display dates?     * @param yAxisLabel  a label for the Y-axis (<code>null</code> permitted).     * @param dataset  the dataset for the chart (<code>null</code> permitted).     * @param orientation  the orientation (horizontal or vertical)      *                     (<code>null</code> NOT permitted).     * @param legend  a flag specifying whether or not a legend is required.     * @param tooltips  configure chart to generate tool tips?     * @param urls  configure chart to generate URLs?     *     * @return An XY bar chart.     */    public static JFreeChart createXYBarChart(String title,                                              String xAxisLabel,                                              boolean dateAxis,                                              String yAxisLabel,                                              IntervalXYDataset dataset,                                              PlotOrientation orientation,                                              boolean legend,                                              boolean tooltips,                                              boolean urls) {        if (orientation == null) {            throw new IllegalArgumentException("Null 'orientation' argument.");        }        ValueAxis domainAxis = null;        if (dateAxis) {            domainAxis = new DateAxis(xAxisLabel);        }        else {            NumberAxis axis = new NumberAxis(xAxisLabel);            axis.setAutoRangeIncludesZero(false);            domainAxis = axis;        }        ValueAxis valueAxis = new NumberAxis(yAxisLabel);        XYBarRenderer renderer = new XYBarRenderer();        if (tooltips) {            renderer.setBaseToolTipGenerator(new StandardXYToolTipGenerator());        }        if (urls) {            renderer.setURLGenerator(new StandardXYURLGenerator());        }        XYPlot plot = new XYPlot(dataset, domainAxis, valueAxis, renderer);        plot.setOrientation(orientation);        JFreeChart chart = new JFreeChart(            title, JFreeChart.DEFAULT_TITLE_FONT, plot, legend        );        return chart;    }    /**     * Creates an area chart using an {@link XYDataset}.     * <P>     * The chart object returned by this method uses an {@link XYPlot} instance      * as the plot, with a {@link NumberAxis} for the domain axis, a      * {@link NumberAxis} as the range axis, and a {@link XYAreaRenderer} as      * the renderer.     *     * @param title  the chart title (<code>null</code> permitted).     * @param xAxisLabel  a label for the X-axis (<code>null</code> permitted).     * @param yAxisLabel  a label for the Y-axis (<code>null</code> permitted).     * @param dataset  the dataset for the chart (<code>null</code> permitted).     * @param orientation  the plot orientation (horizontal or vertical)      *                     (<code>null</code> NOT permitted).     * @param legend  a flag specifying whether or not a legend is required.     * @param tooltips  configure chart to generate tool tips?     * @param urls  configure chart to generate URLs?     *     * @return An XY area chart.     */    public static JFreeChart createXYAreaChart(String title,                                               String xAxisLabel,                                               String yAxisLabel,                                               XYDataset dataset,                                               PlotOrientation orientation,                                               boolean legend,                                               boolean tooltips,                                               boolean urls) {        if (orientation == null) {            throw new IllegalArgumentException("Null 'orientation' argument.");        }        NumberAxis xAxis = new NumberAxis(xAxisLabel);        xAxis.setAutoRangeIncludesZero(false);        NumberAxis yAxis = new NumberAxis(yAxisLabel);        XYPlot plot = new XYPlot(dataset, xAxis, yAxis, null);        plot.setOrientation(orientation);        plot.setForegroundAlpha(0.5f);        XYToolTipGenerator tipGenerator = null;        if (tooltips) {            tipGenerator = new StandardXYToolTipGenerator();        }        XYURLGenerator urlGenerator = null;        if (urls) {            urlGenerator = new StandardXYURLGenerator();        }        plot.setRenderer(            new XYAreaRenderer(XYAreaRenderer.AREA, tipGenerator, urlGenerator)        );        JFreeChart chart = new JFreeChart(            title, JFreeChart.DEFAULT_TITLE_FONT, plot, legend        );        return chart;    }    /**     * Creates a stacked XY area plot.  The chart object returned by this      * method uses an {@link XYPlot} instance as the plot, with a      * {@link NumberAxis} for the domain axis, a {@link NumberAxis} as the     * range axis, and a {@link StackedXYAreaRenderer} as the renderer.     *     * @param title  the chart title (<code>null</code> permitted).     * @param xAxisLabel  a label for the X-axis (<code>null</code> permitted).     * @param yAxisLabel  a label for the Y-axis (<code>null</code> permitted).     * @param dataset  the dataset for the chart (<code>null</code> permitted).     * @param orientation  the plot orientation (horizontal or vertical)      *                     (<code>null</code> NOT permitted).     * @param legend  a flag specifying whether or not a legend is required.     * @param tooltips  configure chart to generate tool tips?     * @param urls  configure chart to generate URLs?     *     * @return A stacked XY area chart.     */    public static JFreeChart createStackedXYAreaChart(String title,                                                    String xAxisLabel,                                                    String yAxisLabel,                                                    TableXYDataset dataset,                                                    PlotOrientation orientation,                                                    boolean legend,                                                    boolean tooltips,                                                    boolean urls) {        if (orientation == null) {            throw new IllegalArgumentException("Null 'orientation' argument.");        }        NumberAxis xAxis = new NumberAxis(xAxisLabel);        xAxis.setAutoRangeIncludesZero(false);        xAxis.setLowerMargin(0.0);        xAxis.setUpperMargin(0.0);        NumberAxis yAxis = new NumberAxis(yAxisLabel);        XYToolTipGenerator toolTipGenerator = null;        if (tooltips) {            toolTipGenerator = new StandardXYToolTipGenerator();        }        XYURLGenerator urlGenerator = null;        if (urls) {            urlGenerator = new StandardXYURLGenerator();        }        StackedXYAreaRenderer renderer = new StackedXYAreaRenderer(            XYAreaRenderer.AREA, toolTipGenerator, urlGenerator        );        renderer.setOutline(true);        XYPlot plot = new XYPlot(dataset, xAxis, yAxis, renderer);        plot.setOrientation(orientation);        plot.setRangeAxis(yAxis);  // forces recalculation of the axis range        JFreeChart chart = new JFreeChart(            title, JFreeChart.DEFAULT_TITLE_FONT, plot, legend        );        return chart;    }    /**     * Creates a line chart (based on an {@link XYDataset}) with default      * settings.     *     * @param title  the chart title (<code>null</code> permitted).     * @param xAxisLabel  a label for the X-axis (<code>null</code> permitted).     * @param yAxisLabel  a label for the Y-axis (<code>null</code> permitted).     * @param dataset  the dataset for the chart (<code>null</code> permitted).     * @param orientation  the plot orientation (horizontal or vertical)      *                     (<code>null</code> NOT permitted).     * @param legend  a flag specifying whether or not a legend is required.     * @param tooltips  configure chart to generate tool tips?     * @param urls  configure chart to generate URLs?     *     * @return The chart.     */    public static JFreeChart createXYLineChart(String title,                                               String xAxisLabel,                               

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?