JFreeChart 条形图
精华
小牛编辑
197浏览
2023-03-14
什么是JFreeChart 条形图
条形图是用矩形表示分组数据的图表。条形的高度或长度是代表条形的值的命题。
下图显示了 JFreeChart 库中包含的一些条形图的演示版本:
JFreeChart 条形图的示例
让我们以人口数量作为样本数据。
年份 | 美国(百万) | 中国(百万) | 印度(百万) |
---|---|---|---|
2005年 | 10 | 15 | 20 |
2010年 | 15 | 20 | 25 |
2015年 | 20 | 25 | 30 |
以下代码根据上述示例数据创建饼图:
package cn.xnip;
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;
import javax.swing.*;
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);
});
}
}
输出结果为: