多语言展示
当前在线:1016今日阅读:27今日分享:41

JFreeChart的使用 整理

JFreeChart的使用 demo小例子
方法/步骤
1

前提:导入需要的2个jar文件,jcommon-版本号.jar,jfreechart-版本号.jar。可以去官网下载实例一:比较简单的application版本的饼图package com.test.jfreechart;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartFrame;import org.jfree.chart.JFreeChart;import org.jfree.data.general.DefaultPieDataset;public class JFreeChartTest{    public static void main(String[] args)    {        DefaultPieDataset dpd=new DefaultPieDataset(); //建立一个默认的饼图        dpd.setValue('管理人员', 25);  //输入数据        dpd.setValue('市场人员', 25);        dpd.setValue('开发人员', 45);        dpd.setValue('其他人员', 10);                JFreeChart chart=ChartFactory.createPieChart('某公司人员组织数据图',dpd,true,true,false);         //可以查具体的API文档,第一个参数是标题,第二个参数是一个数据集,第三个参数表示是否显示Legend,第四个参数表示是否显示提示,第五个参数表示图中是否存在URL                ChartFrame chartFrame=new ChartFrame('某公司人员组织数据图',chart);         //chart要放在Java容器组件中,ChartFrame继承自java的Jframe类。该第一个参数的数据是放在窗口左上角的,不是正中间的标题。        chartFrame.pack(); //以合适的大小展现图形        chartFrame.setVisible(true);//图形是否可见            }}

3

一个结构更加明晰的application版本的柱状图,将逻辑分装到各个函数中去。package com.test.jfreechart;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.axis.CategoryAxis;import org.jfree.chart.plot.CategoryPlot;import org.jfree.chart.plot.PlotOrientation;import org.jfree.chart.title.TextTitle;import org.jfree.data.category.CategoryDataset;import org.jfree.data.category.DefaultCategoryDataset;import org.jfree.ui.ApplicationFrame;public class JFreeChartTest2 extends ApplicationFrame{    public JFreeChartTest2(String title)    {        super(title);        this.setContentPane(createPanel()); //构造函数中自动创建Java的panel面板    }        public static CategoryDataset createDataset() //创建柱状图数据集    {        DefaultCategoryDataset dataset=new DefaultCategoryDataset();        dataset.setValue(10,'a','管理人员');        dataset.setValue(20,'b','市场人员');        dataset.setValue(40,'c','开发人员');        dataset.setValue(15,'d','其他人员');        return dataset;    }        public static JFreeChart createChart(CategoryDataset dataset) //用数据集创建一个图表    {        JFreeChart chart=ChartFactory.createBarChart('hi', '人员分布',                 '人员数量', dataset, PlotOrientation.VERTICAL, true, true, false); //创建一个JFreeChart        chart.setTitle(new TextTitle('某公司组织结构图',new Font('宋体',Font.BOLD+Font.ITALIC,20)));//可以重新设置标题,替换“hi”标题        CategoryPlot plot=(CategoryPlot)chart.getPlot();//获得图标中间部分,即plot        CategoryAxis categoryAxis=plot.getDomainAxis();//获得横坐标        categoryAxis.setLabelFont(new Font('微软雅黑',Font.BOLD,12));//设置横坐标字体        return chart;    }        public static JPanel createPanel()    {        JFreeChart chart =createChart(createDataset());        return new ChartPanel(chart); //将chart对象放入Panel面板中去,ChartPanel类已继承Jpanel    }        public static void main(String[] args)    {        JFreeChartTest2 chart=new JFreeChartTest2('某公司组织结构图');        chart.pack();//以合适的大小显示        chart.setVisible(true);            }} package com.test.jfreechart;import java.awt.Font;import java.io.FileOutputStream;import java.io.OutputStream;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartUtilities;import org.jfree.chart.JFreeChart;import org.jfree.chart.plot.PiePlot;import org.jfree.chart.title.LegendTitle;import org.jfree.chart.title.TextTitle;import org.jfree.data.general.DefaultPieDataset;public class JFreeChartTest3{    public static void main(String[] args) throws Exception    {        JFreeChart chart=ChartFactory.createPieChart('某公司人员组织数据图',getDataset(),true,true,false);        chart.setTitle(new TextTitle('某公司组织结构图',new Font('宋体',Font.BOLD+Font.ITALIC,20)));                 LegendTitle legend=chart.getLegend(0);//设置Legend         legend.setItemFont(new Font('宋体',Font.BOLD,14));         PiePlot plot=(PiePlot) chart.getPlot();//设置Plot         plot.setLabelFont(new Font('隶书',Font.BOLD,16));                 OutputStream os = new FileOutputStream('company.jpeg');//图片是文件格式的,故要用到FileOutputStream用来输出。        ChartUtilities.writeChartAsJPEG(os, chart, 1000, 800);        //使用一个面向application的工具类,将chart转换成JPEG格式的图片。第3个参数是宽度,第4个参数是高度。                os.close();//关闭输出流    }    private static DefaultPieDataset getDataset()    {        DefaultPieDataset dpd=new DefaultPieDataset(); //建立一个默认的饼图        dpd.setValue('管理人员', 25);  //输入数据        dpd.setValue('市场人员', 25);        dpd.setValue('开发人员', 45);        dpd.setValue('其他人员', 10);        return dpd;    }}END

推荐信息