个性化阅读
专注于IT技术分析

JFreeChart条形图

本文概述

条形图是用矩形表示分组数据的图表。条形的高度或长度与代表条形的值成正比。

下图显示了JFreeChart库中合并的条形图的一些演示版本:

条形图演示1:

JFreeChart条形图演示1

条形图演示2:

JFreeChart条形图演示2

条形图演示3:

JFreeChart条形图演示3

条形图演示4:

JFreeChart条形图演示4

条形图示例

让我们考虑条形图示例的样本输入数据。

百万人口
USA INDIA CHINA
2005 10 15 20
2010 15 20 25
2015 20 25 30

以下代码根据上述示例数据创建条形图:

BarChartExample.java

import javax.swing.JFrame;
import javax.swing.SwingUtilities;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;

public class BarChartExample extends JFrame {

  private static final long serialVersionUID = 1L;

  public BarChartExample(String appTitle) {
    super(appTitle);

    // Create Dataset
    CategoryDataset dataset = createDataset();
    
    //Create chart
    JFreeChart chart=ChartFactory.createBarChart(
        "Bar Chart Example", //Chart Title
        "Year", // Category axis
        "Population in Million", // Value axis
        dataset, PlotOrientation.VERTICAL, true, true, false
       );

    ChartPanel panel=new ChartPanel(chart);
    setContentPane(panel);
  }

  private CategoryDataset createDataset() {
    DefaultCategoryDataset dataset = new DefaultCategoryDataset();

    // Population in 2005
    dataset.addValue(10, "USA", "2005");
    dataset.addValue(15, "India", "2005");
    dataset.addValue(20, "China", "2005");

    // Population in 2010
    dataset.addValue(15, "USA", "2010");
    dataset.addValue(20, "India", "2010");
    dataset.addValue(25, "China", "2010");

    // Population in 2015
    dataset.addValue(20, "USA", "2015");
    dataset.addValue(25, "India", "2015");
    dataset.addValue(30, "China", "2015");

    return dataset;
  }

  public static void main(String[] args) throws Exception {
    SwingUtilities.invokeAndWait(()->{
      BarChartExample example=new BarChartExample("Bar Chart Window");
      example.setSize(800, 400);
      example.setLocationRelativeTo(null);
      example.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
      example.setVisible(true);
    });
  }
}

输出:

JFreeChart条形图示例
赞(0)
未经允许不得转载:srcmini » JFreeChart条形图

评论 抢沙发

评论前必须登录!