barchartdemo1.java

来自「JfreeChart 常用图表例子」· Java 代码 · 共 211 行

JAVA
211
字号
/* =========================================================== * JFreeChart : a free chart library for the Java(tm) platform * =========================================================== * * (C) Copyright 2000-2005, by Object Refinery Limited and Contributors. * * Project Info:  http://www.jfree.org/jfreechart/index.html * * This library is free software; you can redistribute it and/or modify it  * under the terms of the GNU Lesser General Public License as published by  * the Free Software Foundation; either version 2.1 of the License, or  * (at your option) any later version. * * This library is distributed in the hope that it will be useful, but  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY  * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public  * License for more details. * * You should have received a copy of the GNU Lesser General Public License  * along with this library; if not, write to the Free Software Foundation,  * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * [Java is a trademark or registered trademark of Sun Microsystems, Inc.  * in the United States and other countries.] * * ------------------ * BarChartDemo1.java * ------------------ * (C) Copyright 2003-2005, by Object Refinery Limited and Contributors. * * Original Author:  David Gilbert (for Object Refinery Limited); * Contributor(s):   ; * * $Id: BarChartDemo1.java,v 1.1 2005/03/09 11:44:28 mungady Exp $ * * Changes * ------- * 09-Mar-2005 : Version 1, copied from the demo collection that ships with *               the JFreeChart Developer Guide (DG); * */package org.jfree.chart.demo;import java.awt.Color;import java.awt.Dimension;import java.awt.GradientPaint;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartPanel;import org.jfree.chart.JFreeChart;import org.jfree.chart.axis.CategoryAxis;import org.jfree.chart.axis.CategoryLabelPositions;import org.jfree.chart.axis.NumberAxis;import org.jfree.chart.plot.CategoryPlot;import org.jfree.chart.plot.PlotOrientation;import org.jfree.chart.renderer.category.BarRenderer;import org.jfree.data.category.CategoryDataset;import org.jfree.data.category.DefaultCategoryDataset;import org.jfree.ui.ApplicationFrame;import org.jfree.ui.RefineryUtilities;/** * A simple demonstration application showing how to create a bar chart. */public class BarChartDemo1 extends ApplicationFrame {    /**     * Creates a new demo instance.     *     * @param title  the frame title.     */    public BarChartDemo1(String title) {        super(title);        CategoryDataset dataset = createDataset();        JFreeChart chart = createChart(dataset);        ChartPanel chartPanel = new ChartPanel(chart, false);        chartPanel.setPreferredSize(new Dimension(500, 270));        setContentPane(chartPanel);    }    /**     * Returns a sample dataset.     *      * @return The dataset.     */    private static CategoryDataset createDataset() {                // row keys...        String series1 = "First";        String series2 = "Second";        String series3 = "Third";        // column keys...        String category1 = "Category 1";        String category2 = "Category 2";        String category3 = "Category 3";        String category4 = "Category 4";        String category5 = "Category 5";        // create the dataset...        DefaultCategoryDataset dataset = new DefaultCategoryDataset();        dataset.addValue(1.0, series1, category1);        dataset.addValue(4.0, series1, category2);        dataset.addValue(3.0, series1, category3);        dataset.addValue(5.0, series1, category4);        dataset.addValue(5.0, series1, category5);        dataset.addValue(5.0, series2, category1);        dataset.addValue(7.0, series2, category2);        dataset.addValue(6.0, series2, category3);        dataset.addValue(8.0, series2, category4);        dataset.addValue(4.0, series2, category5);        dataset.addValue(4.0, series3, category1);        dataset.addValue(3.0, series3, category2);        dataset.addValue(2.0, series3, category3);        dataset.addValue(3.0, series3, category4);        dataset.addValue(6.0, series3, category5);                return dataset;            }        /**     * Creates a sample chart.     *      * @param dataset  the dataset.     *      * @return The chart.     */    private static JFreeChart createChart(CategoryDataset dataset) {                // create the chart...        JFreeChart chart = ChartFactory.createBarChart(            "Bar Chart Demo",         // chart title            "Category",               // domain axis label            "Value",                  // range axis label            dataset,                  // data            PlotOrientation.VERTICAL, // orientation            true,                     // include legend            true,                     // tooltips?            false                     // URLs?        );        // NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART...        // set the background color for the chart...        chart.setBackgroundPaint(Color.white);        // get a reference to the plot for further customisation...        CategoryPlot plot = chart.getCategoryPlot();        plot.setBackgroundPaint(Color.lightGray);        plot.setDomainGridlinePaint(Color.white);        plot.setDomainGridlinesVisible(true);        plot.setRangeGridlinePaint(Color.white);        // set the range axis to display integers only...        final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();        rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());        // disable bar outlines...        BarRenderer renderer = (BarRenderer) plot.getRenderer();        renderer.setDrawBarOutline(false);                // set up gradient paints for series...        GradientPaint gp0 = new GradientPaint(            0.0f, 0.0f, Color.blue,             0.0f, 0.0f, new Color(0, 0, 64)        );        GradientPaint gp1 = new GradientPaint(            0.0f, 0.0f, Color.green,             0.0f, 0.0f, new Color(0, 64, 0)        );        GradientPaint gp2 = new GradientPaint(            0.0f, 0.0f, Color.red,             0.0f, 0.0f, new Color(64, 0, 0)        );        renderer.setSeriesPaint(0, gp0);        renderer.setSeriesPaint(1, gp1);        renderer.setSeriesPaint(2, gp2);        CategoryAxis domainAxis = plot.getDomainAxis();        domainAxis.setCategoryLabelPositions(            CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 6.0)        );        // OPTIONAL CUSTOMISATION COMPLETED.                return chart;            }        /**     * Starting point for the demonstration application.     *     * @param args  ignored.     */    public static void main(String[] args) {        BarChartDemo1 demo = new BarChartDemo1("Bar Chart Demo");        demo.pack();        RefineryUtilities.centerFrameOnScreen(demo);        demo.setVisible(true);    }}

⌨️ 快捷键说明

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