jfreechart-立体统计图

来源:互联网 发布:万维软件多少钱 编辑:程序博客网 时间:2024/04/29 05:37


        最近信用办项目要将有关统计的平面柱状图改为立体柱状图,用了jfreechart。简单例子,分享一下。


1,首先,引入IText-2.1.5.jar jcommon-1.0.17.jar jfreechart-1.0.14.jar

2,代码

柱状图:

<span style="font-family:KaiTi_GB2312;font-size:18px;">import java.awt.Font;import java.io.File;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartUtilities;import org.jfree.chart.JFreeChart;import org.jfree.chart.plot.CategoryPlot;import org.jfree.chart.plot.PlotOrientation;import org.jfree.data.category.DefaultCategoryDataset;public class AppBar {public static void main(String[] args) throws Exception {DefaultCategoryDataset ds = new DefaultCategoryDataset();ds.addValue(2000, "IBM", "一季度");ds.addValue(2300, "ORACLE", "一季度");ds.addValue(2800, "JBOSS", "一季度");ds.addValue(3300, "用友", "一季度");ds.addValue(4800, "IBM", "二季度");ds.addValue(4300, "ORACLE", "二季度");ds.addValue(3200, "JBOSS", "二季度");ds.addValue(1800, "用友", "二季度");ds.addValue(1500, "IBM", "三季度");ds.addValue(2600, "ORACLE", "三季度");ds.addValue(3900, "JBOSS", "三季度");ds.addValue(2100, "用友", "三季度");String title = "前三季度各大公司JEE AS销量统计" ;JFreeChart chart = ChartFactory.createBarChart3D(title, "季度", "销量(单位:万台)", ds, PlotOrientation.VERTICAL, true, false, false);//中文chart.getTitle().setFont(new Font("宋体", Font.BOLD, 25));//大标题//提示条chart.getLegend().setItemFont(new Font("宋体", Font.BOLD, 15));CategoryPlot plot = (CategoryPlot) chart.getPlot();//域轴字体plot.getDomainAxis().setLabelFont(new Font("宋体", Font.BOLD, 18));plot.getDomainAxis().setTickLabelFont(new Font("宋体", Font.PLAIN, 15));//小标签字体//rangeplot.getRangeAxis().setLabelFont(new Font("宋体", Font.BOLD, 15));plot.setForegroundAlpha(0.6f);ChartUtilities.saveChartAsJPEG(new File("f:\\bar.jpg"), chart, 800, 500);}}</span>

运行结果:



饼图:

<span style="font-family:KaiTi_GB2312;font-size:18px;">import java.awt.Font;import java.io.File;import javax.imageio.ImageIO;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartUtilities;import org.jfree.chart.JFreeChart;import org.jfree.chart.labels.StandardPieSectionLabelGenerator;import org.jfree.chart.plot.PiePlot;import org.jfree.data.general.DefaultPieDataset;public class App {public static void main(String[] args) throws Exception {//String title = "各大公司JEE AS市场占有率统计" ;DefaultPieDataset ds = new DefaultPieDataset();ds.setValue("IBM", 2000);ds.setValue("ORACLE", 3500);ds.setValue("JBOSS", 1570);ds.setValue("用友", 4400);JFreeChart chart = ChartFactory.createPieChart3D(title, ds, true, false, false);//中文chart.getTitle().setFont(new Font("宋体", Font.BOLD, 25));//标题字体chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 18));//绘图区PiePlot plot = (PiePlot) chart.getPlot();plot.setLabelFont(new Font("宋体", Font.PLAIN, 15));//背景//chart.setBackgroundImage(ImageIO.read(new File("f:/sunset.jpg")));//图表区背景//plot.setBackgroundImage(ImageIO.read(new File("f:/water.jpg")));//设置分裂效果  二维支持 ,三维无此效果plot.setExplodePercent("IBM", 0.1f);plot.setExplodePercent("JBOSS", 0.2f);//设置前景色透明度plot.setForegroundAlpha(0.7f);//设置标签生成器//{0}:公司名称//{1}:销量//{2}:百分比//{3}:总量//{4}:plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}({1}/{3}-{2})"));ChartUtilities.saveChartAsJPEG(new File("f:\\pie.jpg"), chart, 800, 500);}}</span>


折线图:

<span style="font-family:KaiTi_GB2312;font-size:18px;">import java.awt.Font;import java.io.File;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartUtilities;import org.jfree.chart.JFreeChart;import org.jfree.chart.plot.CategoryPlot;import org.jfree.chart.plot.PlotOrientation;import org.jfree.data.category.DefaultCategoryDataset;public class AppLine {public static void main(String[] args) throws Exception {DefaultCategoryDataset ds = new DefaultCategoryDataset();ds.addValue(2000, "IBM", "一季度");ds.addValue(2300, "ORACLE", "一季度");ds.addValue(2800, "JBOSS", "一季度");ds.addValue(3300, "用友", "一季度");ds.addValue(4800, "IBM", "二季度");ds.addValue(4300, "ORACLE", "二季度");ds.addValue(3200, "JBOSS", "二季度");ds.addValue(1800, "用友", "二季度");ds.addValue(1500, "IBM", "三季度");ds.addValue(2600, "ORACLE", "三季度");ds.addValue(3900, "JBOSS", "三季度");ds.addValue(2100, "用友", "三季度");String title = "前三季度各大公司JEE AS销量统计" ;JFreeChart chart = ChartFactory.createLineChart(title, "季度", "销量(单位:万台)", ds, PlotOrientation.VERTICAL, true, false, false);//中文chart.getTitle().setFont(new Font("宋体", Font.BOLD, 25));//大标题//提示条chart.getLegend().setItemFont(new Font("宋体", Font.BOLD, 15));CategoryPlot plot = (CategoryPlot) chart.getPlot();//域轴字体plot.getDomainAxis().setLabelFont(new Font("宋体", Font.BOLD, 18));plot.getDomainAxis().setTickLabelFont(new Font("宋体", Font.PLAIN, 15));//小标签字体//rangeplot.getRangeAxis().setLabelFont(new Font("宋体", Font.BOLD, 15));plot.setForegroundAlpha(0.6f);ChartUtilities.saveChartAsJPEG(new File("f:\\line.jpg"), chart, 800, 500);}}</span>


0 0
原创粉丝点击