不知道 JFreeChart 项目组出于什么目的,他们提供的 sample code 里面的例子给人感觉就是乱,同样的结果可以用不同方式、使用不的方法。再加上网上流传的 JFreeChart 旧的使用方法,使刚接触 JFreeChart 的朋友进到 JFreeChart 中不花一些时间很难理出一个头绪来。
前面已经介绍过 JFreeChart 生成饼状图,可能由于上面提到的原因,有些朋友来信和留言希望介绍 JFreeChart 如何生成柱状图。抄袭别人一句话:Help others as well as to help myself。这次我们介绍使用 JFreeChart 生成柱状图,首先从一个最简单的例子开始。
一 最简单的例子
为了降低门槛,让大家心理有个底,先介绍一个简单的不能再简单的例子,图片中的各类属性都采用默认值。
org.jfree.chart.JFreeChart,
org.jfree.chart.plot.PlotOrientation,
org.jfree.chart.servlet.ServletUtilities,
org.jfree.data.DefaultCategoryDataset"%>
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(300, "广州", "苹果");
dataset.addValue(200, "广州", "梨子");
dataset.addValue(500, "广州", "葡萄");
dataset.addValue(340, "广州", "芒果");
dataset.addValue(280, "广州", "荔枝");
JFreeChart chart = ChartFactory.createBarChart3D("水果销量统计图",
"水果",
"销量",
dataset,
PlotOrientation.VERTICAL,
false,
false,
false);
String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, null, session);
String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
%>
这个 JSP 程序运行的结果如下图
图 一
二 柱状图高级特性
上面的程序简单,但生成的柱状图也很简单。更多的时候,