JFreeChart入门教程
来源:互联网 发布:mac照片导入lightroom 编辑:程序博客网 时间:2024/06/06 18:01
1.下载JFreeChart所需压缩包,其中source是源码
下载地址:http://download.csdn.net/detail/m0_37983376/9864574
2.jar包
我们需要关注的文件有如下三个:jfreechart-1.0.19.jar、lib\jcommon-1.0.23.jar、 lib\gnujaxp.jar
将他们导入到web项目的lib目录下
3.功能介绍
基本图形:
pie charts (2D and 3D):饼图(平面和立体)
bar charts (regular andstacked, with an optional 3D effect):柱状图
line and area charts:曲线图
scatter plots and bubblecharts
time series,high/low/open/close charts and candle stick charts:时序图
combination charts:复合图
Pareto charts
Gantt charts:甘特图
wind plots, meter charts andsymbol charts
wafer map charts
4.JFreeChart的核心
org.jfree.chart:主要与图形有关
org.jfree.data:主要与图形上的数据有关
核心类主要有:
org.jfree.chart.JFreeChart:图表对象,任何类型的图表的最终表现形式都是在该对象进行一些属性的定制。JFreeChart引擎本身提供了一个工厂类用于创建不同类型的图表对象
org.jfree.data.category.XXXDataSet:数据集对象,用于提供显示图表所用的数据。根据不同类型的图表对应着很多类型的数据集对象类
org.jfree.chart.plot.XXXPlot:图表区域对象,基本上这个对象决定着什么样式的图表,创建该对象的时候需要Axis、Renderer以及数据集对象的支持
org.jfree.chart.axis.XXXAxis:用于处理图表的两个轴:纵轴和横轴
org.jfree.chart.render.XXXRender:负责如何显示一个图表对象
org.jfree.chart.urls.XXXURLGenerator:用于生成Web图表中每个项目的鼠标点击链接
XXXXXToolTipGenerator:用于生成图象的帮助提示,不同类型图表对应不同类型的工具提示类
5.实例(饼图)
package Demo;/** *@author sq * */import java.awt.Font;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartFrame;import org.jfree.chart.JFreeChart;import org.jfree.chart.StandardChartTheme;import org.jfree.data.general.DefaultPieDataset;public class FirstJFreeChart {public FirstJFreeChart() {}public static void main(String[] args) {DefaultPieDataset dpd = new DefaultPieDataset();dpd.setValue("管理人员", 25);dpd.setValue("市场人员", 25);dpd.setValue("开发人员", 45);dpd.setValue("其他人员", 5);// 创建主题样式StandardChartTheme standardChartTheme = new StandardChartTheme("CN");// 设置标题字体standardChartTheme.setExtraLargeFont(new Font("隶书", Font.BOLD, 20));// 设置图例的字体standardChartTheme.setRegularFont(new Font("宋书", Font.PLAIN, 15));// 设置轴向的字体standardChartTheme.setLargeFont(new Font("宋书", Font.PLAIN, 15));// 应用主题样式ChartFactory.setChartTheme(standardChartTheme);// Create JFreeChart object// 参数可以查看源码JFreeChart pieChart = ChartFactory.createPieChart("CityInfoPort公司组织架构图", dpd, true, true, false);ChartFrame pieFrame = new ChartFrame("CityInfoPort公司组织架构图", pieChart);pieFrame.pack();pieFrame.setVisible(true);}}
注意:如果此处没有对饼图的文字字体进行定义,可能会无法正常显示
改进代码
package Demo;/** *@author sq * */import java.awt.Font;import javax.swing.JPanel;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartPanel;import org.jfree.chart.JFreeChart;import org.jfree.chart.StandardChartTheme;import org.jfree.chart.plot.PiePlot;import org.jfree.data.general.DefaultPieDataset;import org.jfree.data.general.PieDataset;import org.jfree.ui.ApplicationFrame;import org.jfree.ui.RefineryUtilities;public class FirstJFreeChart extends ApplicationFrame {// 构造函数public FirstJFreeChart(String s) {super(s);setContentPane(createDemoPanel());}public static void main(String[] args) {FirstJFreeChart fjc = new FirstJFreeChart("CityInfoPort公司组织架构图");fjc.pack();RefineryUtilities.centerFrameOnScreen(fjc);fjc.setVisible(true);}// 生成饼图数据集对象public static PieDataset createDataset() {DefaultPieDataset defaultpiedataset = new DefaultPieDataset();defaultpiedataset.setValue("管理人员", 10.02D);defaultpiedataset.setValue("市场人员", 20.23D);defaultpiedataset.setValue("开发人员", 60.02D);defaultpiedataset.setValue("OEM人员", 10.02D);defaultpiedataset.setValue("其他人员", 5.11D);return defaultpiedataset;}// 生成图表主对象JFreeChartpublic static JFreeChart createChart(PieDataset piedataset) {// 创建主题样式StandardChartTheme standardChartTheme = new StandardChartTheme("CN");// 设置标题字体standardChartTheme.setExtraLargeFont(new Font("隶书", Font.BOLD, 20));// 设置图例的字体standardChartTheme.setRegularFont(new Font("宋书", Font.PLAIN, 15));// 设置轴向的字体standardChartTheme.setLargeFont(new Font("宋书", Font.PLAIN, 15));// 应用主题样式ChartFactory.setChartTheme(standardChartTheme);// 定义图表对象JFreeChart jfreechart = ChartFactory.createPieChart("CityInfoPort公司组织架构图", piedataset, true, true, false);// 获得图表显示对象PiePlot pieplot = (PiePlot) jfreechart.getPlot();// 设置图表标签字体pieplot.setLabelFont(new Font("SansSerif", Font.BOLD, 12));pieplot.setNoDataMessage("No data available");pieplot.setCircular(true);pieplot.setLabelGap(0.01D);// 间距return jfreechart;}// 生成显示图表的面板public static JPanel createDemoPanel() {JFreeChart jfreechart = createChart(createDataset());return new ChartPanel(jfreechart);}}
详细见:http://www.yiibai.com/jfreechart/jfreechart_bar_chart.html
- JFreeChart入门教程
- JFreeChart
- JFreeChart
- JFreeChart
- JFreeChart
- JFreeChart
- JFreeChart
- JFreeChart
- jfreechart
- JFreeChart
- JFreeChart
- jfreechart
- jfreeChart
- jfreechart
- JFreeChart
- jfreechart
- JFreeChart
- JFreeChart
- JS控制HTML元素的显示和隐藏的2种方法
- 创建java程序线程的三种方式
- 他写出了史上最牛高考满分作文_如今在天猫卖小龙虾
- XGBoost学习
- 通过Driver与DriverManager连接数据库
- JFreeChart入门教程
- Css3阴影
- 通过Flume拉取Kafka数据保存到ES
- Spring Security(11)——匿名认证
- BUG修复---帐号更换绑定修复bug心得
- VS2013 资源文件打不开的问题
- 程序员健身总动员:写代码后你胖了几斤?
- C#程序初了解
- 页面隔30秒刷新功能