由于用JFreeChart生成条形统计图比较简单,所以现在简单的总结一下,自己写的, 注释不是很多, 请见谅
下面是代码,首先需要导入两个架包
jcommon-1.0.20.jar
jfreechart-1.0.16.jar
第二步要写生成柱状图要用的数据了
直接在service层写接口和方法
这是在service里写的接口
list
第三部就是在serviceImpl里写方法了
/**
* //遍历所有客户的等级类型和缩量
* @Override
*/
public List
//
/**
* 生成柱状图
* @Override
*/
public Map
List
上面的步骤都写好后, 开始写action
写action方法
先写一个属性
private JFreeChart chart = null;
然后生成get,set方法
public JFreeChart getChart() {
return chart;
}
public void setChart(JFreeChart chart) {
this.chart = chart;
}
下面开始写方法
/**
* 柱状图。
*
* @return
*/
public String reportBarPic() {
String title = "客户贡献统计图";
Font bigFont = new Font("宋体", Font.BOLD, 22);
Font middleFont = new Font("黑体", Font.BOLD, 14);
Font smallFont = new Font("黑体", Font.BOLD, 12);
chart = ChartFactory.createBarChart(title, "", "",
getBarDataset(), PlotOrientation.VERTICAL, false, false, false);
CategoryPlot plot = (CategoryPlot) chart.getPlot();
plot.getDomainAxis().setCategoryLabelPositions(
CategoryLabelPositions.UP_45);
plot.getDomainAxis().setTickLabelFont(smallFont);
plot.getDomainAxis().setLabelFont(middleFont);
plot.getRangeAxis().setLabelFont(middleFont);
plot.setBackgroundAlpha(0.6f);
chart.setTitle(new TextTitle(title, bigFont));
return "success";
}
private CategoryDataset getBarDataset() {//生成一个柱状图要用的map集合
DefaultCategoryDataset ret = new DefaultCategoryDataset();
Map
for (String depart : data.keySet()) {
ret.addValue(data.get(depart), "", depart);
}
return ret;
}
写完后会报红,然后导包,导包时注意不能倒错包
import java.awt.Font;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
这些都做完后,先在action中写
400
300
就可以在 jsp页面导入了
最后附上生成的柱状图, 有点难看 , 不要笑话哦!