chartfactory.java

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

JAVA
1,514
字号
     * @param categoryAxisLabel  the label for the category axis      *                           (<code>null</code> permitted).     * @param valueAxisLabel  the label for the value 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 area chart.     */    public static JFreeChart createStackedAreaChart(String title,                                                    String categoryAxisLabel,                                                    String valueAxisLabel,                                                    CategoryDataset dataset,                                                    PlotOrientation orientation,                                                    boolean legend,                                                    boolean tooltips,                                                    boolean urls) {        if (orientation == null) {            throw new IllegalArgumentException("Null 'orientation' argument.");        }        CategoryAxis categoryAxis = new CategoryAxis(categoryAxisLabel);        ValueAxis valueAxis = new NumberAxis(valueAxisLabel);        StackedAreaRenderer renderer = new StackedAreaRenderer();        if (tooltips) {            renderer.setBaseToolTipGenerator(                new StandardCategoryToolTipGenerator()            );        }        if (urls) {            renderer.setBaseItemURLGenerator(                new StandardCategoryURLGenerator()            );        }        CategoryPlot plot = new CategoryPlot(            dataset, categoryAxis, valueAxis, renderer        );        plot.setOrientation(orientation);        JFreeChart chart = new JFreeChart(            title, JFreeChart.DEFAULT_TITLE_FONT, plot, legend        );        return chart;    }    /**     * Creates a line chart with default settings.  The chart object returned      * by this method uses a {@link CategoryPlot} instance as the plot, with a      * {@link CategoryAxis} for the domain axis, a {@link NumberAxis} as the      * range axis, and a {@link LineAndShapeRenderer} as the renderer.     *     * @param title  the chart title (<code>null</code> permitted).     * @param categoryAxisLabel  the label for the category axis      *                           (<code>null</code> permitted).     * @param valueAxisLabel  the label for the value axis (<code>null</code>      *                        permitted).     * @param dataset  the dataset for the chart (<code>null</code> permitted).     * @param orientation  the chart 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 line chart.     */    public static JFreeChart createLineChart(String title,                                             String categoryAxisLabel,                                             String valueAxisLabel,                                             CategoryDataset dataset,                                             PlotOrientation orientation,                                             boolean legend,                                             boolean tooltips,                                             boolean urls) {        if (orientation == null) {            throw new IllegalArgumentException("Null 'orientation' argument.");        }        CategoryAxis categoryAxis = new CategoryAxis(categoryAxisLabel);        ValueAxis valueAxis = new NumberAxis(valueAxisLabel);        LineAndShapeRenderer renderer = new LineAndShapeRenderer(true, false);        if (tooltips) {            renderer.setBaseToolTipGenerator(                new StandardCategoryToolTipGenerator()            );        }        if (urls) {            renderer.setBaseItemURLGenerator(                new StandardCategoryURLGenerator()            );        }        CategoryPlot plot = new CategoryPlot(            dataset, categoryAxis, valueAxis, renderer        );        plot.setOrientation(orientation);        JFreeChart chart = new JFreeChart(            title, JFreeChart.DEFAULT_TITLE_FONT, plot, legend        );        return chart;    }    /**     * Creates a line chart with default settings. The chart object returned by      * this method uses a {@link CategoryPlot} instance as the plot, with a      * {@link CategoryAxis3D} for the domain axis, a {@link NumberAxis3D} as      * the range axis, and a {@link LineRenderer3D} as the renderer.     *     * @param title  the chart title (<code>null</code> permitted).     * @param categoryAxisLabel  the label for the category axis      *                           (<code>null</code> permitted).     * @param valueAxisLabel  the label for the value axis (<code>null</code>      *                        permitted).     * @param dataset  the dataset for the chart (<code>null</code> permitted).     * @param orientation  the chart 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 line chart.     */    public static JFreeChart createLineChart3D(String title,                                               String categoryAxisLabel,                                               String valueAxisLabel,                                               CategoryDataset dataset,                                               PlotOrientation orientation,                                               boolean legend,                                               boolean tooltips,                                               boolean urls) {        if (orientation == null) {            throw new IllegalArgumentException("Null 'orientation' argument.");        }        CategoryAxis categoryAxis = new CategoryAxis3D(categoryAxisLabel);        ValueAxis valueAxis = new NumberAxis3D(valueAxisLabel);        LineRenderer3D renderer = new LineRenderer3D();        if (tooltips) {            renderer.setBaseToolTipGenerator(                new StandardCategoryToolTipGenerator()            );        }        if (urls) {            renderer.setBaseItemURLGenerator(                new StandardCategoryURLGenerator()            );        }        CategoryPlot plot = new CategoryPlot(            dataset, categoryAxis, valueAxis, renderer        );        plot.setOrientation(orientation);        JFreeChart chart = new JFreeChart(            title, JFreeChart.DEFAULT_TITLE_FONT, plot, legend        );        return chart;    }    /**     * Creates a Gantt chart using the supplied attributes plus default values      * where required.  The chart object returned by this method uses a      * {@link CategoryPlot} instance as the plot, with a {@link CategoryAxis}      * for the domain axis, a {@link DateAxis} as the range axis, and a      * {@link GanttRenderer} as the renderer.     *     * @param title  the chart title (<code>null</code> permitted).     * @param categoryAxisLabel  the label for the category axis      *                           (<code>null</code> permitted).     * @param dateAxisLabel  the label for the date axis      *                       (<code>null</code> permitted).     * @param dataset  the dataset for the chart (<code>null</code> 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 Gantt chart.     */    public static JFreeChart createGanttChart(String title,                                              String categoryAxisLabel,                                              String dateAxisLabel,                                              IntervalCategoryDataset dataset,                                              boolean legend,                                              boolean tooltips,                                              boolean urls) {        CategoryAxis categoryAxis = new CategoryAxis(categoryAxisLabel);        DateAxis dateAxis = new DateAxis(dateAxisLabel);        CategoryItemRenderer renderer = new GanttRenderer();        if (tooltips) {            renderer.setBaseToolTipGenerator(                new IntervalCategoryToolTipGenerator(                    "{3} - {4}", DateFormat.getDateInstance()                )            );        }        if (urls) {            renderer.setBaseItemURLGenerator(                new StandardCategoryURLGenerator()            );        }        CategoryPlot plot = new CategoryPlot(            dataset, categoryAxis, dateAxis, renderer        );        plot.setOrientation(PlotOrientation.HORIZONTAL);        JFreeChart chart = new JFreeChart(            title, JFreeChart.DEFAULT_TITLE_FONT, plot, legend        );        return chart;    }    /**     * Creates a waterfall chart.  The chart object returned by this method      * uses a {@link CategoryPlot} instance as the plot, with a      * {@link CategoryAxis} for the domain axis, a {@link NumberAxis} as the     * range axis, and a {@link WaterfallBarRenderer} as the renderer.     *     * @param title  the chart title (<code>null</code> permitted).     * @param categoryAxisLabel  the label for the category axis      *                           (<code>null</code> permitted).     * @param valueAxisLabel  the label for the value 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 waterfall chart.     */    public static JFreeChart createWaterfallChart(String title,                                                  String categoryAxisLabel,                                                  String valueAxisLabel,                                                  CategoryDataset dataset,                                                  PlotOrientation orientation,                                                  boolean legend,                                                  boolean tooltips,                                                  boolean urls) {        if (orientation == null) {            throw new IllegalArgumentException("Null 'orientation' argument.");        }        CategoryAxis categoryAxis = new CategoryAxis(categoryAxisLabel);        categoryAxis.setCategoryMargin(0.0);        ValueAxis valueAxis = new NumberAxis(valueAxisLabel);        WaterfallBarRenderer renderer = new WaterfallBarRenderer();        if (orientation == PlotOrientation.HORIZONTAL) {            ItemLabelPosition position = new ItemLabelPosition(                ItemLabelAnchor.CENTER, TextAnchor.CENTER,                 TextAnchor.CENTER, Math.PI / 2.0            );            renderer.setPositiveItemLabelPosition(position);            renderer.setNegativeItemLabelPosition(position);         }        else if (orientation == PlotOrientation.VERTICAL) {            ItemLabelPosition position = new ItemLabelPosition(                ItemLabelAnchor.CENTER, TextAnchor.CENTER,                 TextAnchor.CENTER, 0.0            );            renderer.setPositiveItemLabelPosition(position);            renderer.setNegativeItemLabelPosition(position);        }        if (tooltips) {            StandardCategoryToolTipGenerator generator                 = new StandardCategoryToolTipGenerator();            renderer.setBaseToolTipGenerator(generator);        }        if (urls) {            renderer.setBaseItemURLGenerator(                new StandardCategoryURLGenerator()            );        }        CategoryPlot plot = new CategoryPlot(            dataset, categoryAxis, valueAxis, renderer        );        plot.clearRangeMarkers();        Marker baseline = new ValueMarker(0.0);        baseline.setPaint(Color.black);        plot.addRangeMarker(baseline, Layer.FOREGROUND);        plot.setOrientation(orientation);        JFreeChart chart = new JFreeChart(            title, JFreeChart.DEFAULT_TITLE_FONT, plot, legend        );        return chart;

⌨️ 快捷键说明

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