jfreechart是jfree公司提供的一个java项目,它主要用来实现各种图表,包括:饼图,柱状图(普通柱状图和堆栈柱状图),折线图,区域图,分布图,混合图,甘特图,以及一些仪表盘等。
官方网站:http://jfree.org/。
pie 饼图,line折线图,bar柱状图,gantt甘特图,xy plots and scatter plots,timer series, high/low/open/close charts and candle stick chart, combination charts, pareto charts, bubble charts, wind plots, meter charts and symbol charts
在使用jfreechart时,一般先通过ChartFactory中的静态方法生成一个JFreeChart对象,然后调用ChartUtilities类中的方法将JFreeChart导出成图片。
JFreeChart的问题估计就在结构的复杂性,每种类型的图表都需要使用对应的DataSet和Plot才能生成出来,开发者必须掌握这些模型和结构之间的关系才能生成出计划中的图表来。
factory模式让JFreeChart不是很容易扩展,多种数据模型和设计模型散乱着放在几个包中,实话说真是太难找了。
JFreeChart还自带一系列的中文乱码问题,必须重新指定所有标签部分的字体才能解决乱码问题。
cewolf是一套可以使用taglib生成JFreeChart的标签库。
JFreeChart还支持servlet生成图表,更多时候可以在swing里直接显示图片。JFreeChart还提供了其他工具类,用来生成可以辅助图表的一些功能,比如ImageMap。
图表JFreeChart
2.1. 简单柱状图
首先为柱状图准备数据,柱状图必须使用CategoryDataset,这里我们使用DefaultCategoryDataset。