`
eagletony
  • 浏览: 42029 次
  • 来自: ...
社区版块
存档分类
最新评论

jfreechart 饼图

阅读更多

package realtimeMonitor;

import java.awt.Color;
import java.awt.Font;
import java.awt.RenderingHints;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URISyntaxException;

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;
import org.json.JSONException;

public class SwapSpacePie {
	 public static void createPieChart() throws NumberFormatException, JSONException, IOException {   
	        //用工厂类创建饼图   
	        JFreeChart pieChart = ChartFactory.createPieChart("SwapSpacePie:",   
	                createDataset(), true, true, false);   
	        // RenderingHints做文字渲染参数的修改   
	        // VALUE_TEXT_ANTIALIAS_OFF表示将文字的抗锯齿关闭.   
	        pieChart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING,   
	                RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);   
	        //得到饼图的Plot对象   
	        PiePlot piePlot = (PiePlot) pieChart.getPlot();   
	        setSection(piePlot);   
	        setLabel(piePlot);   
	        setNoDataMessage(piePlot);   
	        setNullAndZeroValue(piePlot);   
	                                //将饼图显示在图像界面上   
	        FileOutputStream ous = null;
	        String filePath="";//绝对路径
	        String webPath="WarnImages/swap_space_pie.png";//"+request.getSession().getId()+"
	        try {
				filePath = Thread.currentThread().getContextClassLoader().getResource("").toURI().getPath();
				filePath =filePath.replace("WEB-INF/classes/", "");
				filePath += webPath;
			//	System.out.println(filePath);
			} catch (URISyntaxException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
			try {
			        if (null != pieChart) {   
			        	ous = new FileOutputStream(filePath);
			            ChartUtilities.writeChartAsPNG(ous, pieChart, 400, 200);
			            //ous.flush();   
			        }  
		        } catch (IOException e) {
					e.printStackTrace();
				} // 生成图片
				finally {
					try {
						ous.close();// 最后关闭文件流
					} catch (IOException e) {
						e.printStackTrace();
					}
				} 
	    }   
	  
	    public static DefaultPieDataset createDataset() throws NumberFormatException, JSONException, IOException {   
	        //设置数据   
	        DefaultPieDataset pieDataset = new DefaultPieDataset();   
	        pieDataset.setValue("已使用", Integer.parseInt(ResolveJSONForShell.resolveJSONForSwapSpace()[0]));   
	        pieDataset.setValue("未使用", Integer.parseInt(ResolveJSONForShell.resolveJSONForSwapSpace()[1])); 
	        return pieDataset;   
	    }   
	  
	    public static void setSection(PiePlot pieplot) {   
	        //设置扇区颜色   
	        pieplot.setSectionPaint("已使用", new Color(160, 160, 255));   
	        pieplot.setSectionPaint("未使用", new Color(128, 128, 223));   
	        //设置扇区分离显示   
	        pieplot.setExplodePercent("已使用", 0.2D);   
	        //设置扇区边框不可见   
	        pieplot.setSectionOutlinesVisible(false);   
	    }   
	  
	    public static void setLabel(PiePlot pieplot) {   
	        //设置扇区标签显示格式:关键字:值(百分比)   
	        pieplot.setLabelGenerator(new StandardPieSectionLabelGenerator(   
	                "{0}:{1}({2} percent)"));   
	        //设置扇区标签颜色   
	        pieplot.setLabelBackgroundPaint(new Color(220, 220, 220));   
	        pieplot.setLabelFont((new Font("宋体", Font.PLAIN, 12)));   
	  
	    }   
	  
	    public static void setNoDataMessage(PiePlot pieplot) {   
	        //设置没有数据时显示的信息   
	        pieplot.setNoDataMessage("无数据");   
	        //设置没有数据时显示的信息的字体   
	        pieplot.setNoDataMessageFont(new Font("宋体", Font.BOLD, 14));   
	        //设置没有数据时显示的信息的颜色   
	        pieplot.setNoDataMessagePaint(Color.red);   
	    }   
	  
	    public static void setNullAndZeroValue(PiePlot piePlot) {   
	        //设置是否忽略0和null值   
	         piePlot.setIgnoreNullValues(true);   
	         piePlot.setIgnoreZeroValues(true);   
	    }   
	    
	    private static int randomNum()   
	    {      
	        System.out.println((Math.random()*10+5));         
	        return (int)(Math.random()*10+5);   
	    }
}


分享到:
评论

相关推荐

    JFreeChart 饼图、柱状图 例 (含数据库)

    JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的图表,包括饼图、柱状图等,并且能够与数据库进行交互,为数据分析和可视化提供便利。在这个MyEclipse项目中,你将找到如何利用JFreeChart来实现这些...

    jfreechart饼图例子

    JavaSE学习时候都可以看这个例子了,注意几个标题区别,别的没什么可说的。 我在做得时候发现不支持汉字,这个我想可以解决的。 我会抽空仔细看看代码~\(≧▽≦)/~啦啦啦 ...jfreechart饼图例子

    JFreeChart饼图

    给出饼图标题,饼图每块的名字和值存入map中,在讲每个map存入List中,调用类中的方法即可生成饼图

    JFreeChart饼图、折线图等资料学习

    JFreeChart是一款强大的Java图形库,它允许开发者创建多种类型的图表,包括饼图、折线图、柱状图、散点图以及更多其他类型的图表。这个资料包包含了JFreeChart的核心库(jfreechart-1.0.16.jar)和其依赖库JCommon...

    jfreechart 饼图 折线图 实例

    jfreechart ,fusionchart 饼图 折线图 等实例

    JFreeChart 饼图,柱图,折线图

    JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的图表,包括饼图、柱状图和折线图。在Java应用中,JFreeChart是一个不可或缺的工具,尤其在数据分析、报表生成或可视化数据的场景下。下面我们将深入...

    JFreeChart生成饼图最简单demo.

    在IT领域,特别是数据可视化方面,JFreeChart是一款非常受欢迎且功能强大的开源Java图表库,它支持多种类型的图表,如折线图、柱状图、饼图等,为开发者提供了丰富的API来创建高质量的统计图表。本文将详细介绍如何...

    JFreeChart饼图、柱状图等

    JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的高质量图表,如饼图、柱状图、线形图、散点图等。这个库在IT行业中被广泛应用于数据分析、报表生成以及各种可视化应用中。在给定的压缩包文件中,...

    JFreeChart饼图,折线图等学习资料

    1.JFreeChart中的org下的demo属于官方的,可以在jfreechart-1.0.11.zip中找到。cn下的demo自己编写的,在win32+jdk1.6+jfreechart-1.0.11下调试通过。 2.JFreeChartDemo下的demo部署在apache-tomcat-6.0.32下调试...

    投票系统struts2.0+hibernate3.2+spring2.5+sqlserver2005数据库,+JFReeChart饼图,柱状图显示。

    JFreeChart是一个开源的Java图表库,它可以生成多种类型的图表,如饼图、柱状图、线图等。在投票系统中,JFreeChart用于根据投票数据生成统计图表,帮助用户直观地了解投票结果。开发者可以通过设置各种参数来自定义...

    饼形图、柱形图实例 jfreechart (Java)

    JFreeChart是一个开源项目,提供了一系列接口和类来生成高质量的2D图表,支持多种图表类型,如饼图、柱状图、线图、散点图等。它的API设计灵活,能够方便地集成到Web应用、桌面应用或其他Java项目中。 创建饼形图的...

    JFreeChart生成饼图

    ### JFreeChart生成饼图知识点详解 #### 一、引言 在Web开发中,图表是一种非常有效的数据可视化工具,能够帮助用户更直观地理解数据。`JFreeChart`是Java平台上的一个开源图表库,提供了丰富的图表类型,包括柱状...

    jfreechart 饼形图

    jfreechart百分比在饼上, 有分离的饼。 private static JFreeChart createChart(PieDataset piedataset) { JFreeChart jfreechart = ChartFactory.createPieChart("Pie Chart Demo 2", piedataset, true, true, ...

    JFreeChart图形控件

    **JFreeChart图形控件详解** JFreeChart是一款强大的开源Java库,用于生成高质量的图表。这个库提供了丰富的图表类型,包括饼状图、柱形图、折线图、区域图、时序图、甘特图和仪表盘,以及组合图,能够满足各种数据...

    jfreechart做饼图需要的jcommon-1.0.0-rc1.jar和jfreechart-1.0.0-rc1.jar两个jar包.rar

    对于Java开发者来说,JFreeChart库是一个强大的工具,能够帮助我们轻松地生成包括饼图在内的多种图表。在这个场景中,我们需要的两个关键的JAR包——`jcommon-1.0.0-rc1.jar`和`jfreechart-1.0.0-rc1.jar`,它们是...

    JFreeChar制作饼图和柱状图

    JFreeChart是一款强大的Java图形库,它允许开发者创建各种类型的统计图表,如饼图、柱状图、线图、散点图等。在Java应用程序中,JFreeChart为数据可视化提供了丰富的功能,使得数据的展示更为直观易懂。在本教程中,...

    jfreechart-1.0.8 饼图等图型

    jfreechart-1.0.8a-swt.jar jfreechart-1.0.8a.jar jfreechart-1.0.8a-experimental.jar jcommon-1.0.12.jar gnujaxp.jar 及网上找到的简单的饼图和柱状图的用例(jfreechart.exe帮助文件)

    jfreechar饼图简单示例

    ### jfreechart饼图简单示例 #### 一、引言 `jfreechart`是一款功能强大且开源的Java图表库,它支持多种类型的图表绘制,包括饼图、柱状图、折线图等。本篇文章将通过一个简单的示例来介绍如何使用`jfreechart`来...

    20201012JFreeChart生成饼图和环图技术.zip

    JFreeChart是一款强大的Java图形库,它允许开发者在Java应用程序或网页中生成高质量的图表,包括饼图和环图。本教程将详细讲解如何利用JFreeChart库在2020年10月12日的技术实践中生成这两种图表。 首先,我们需要...

Global site tag (gtag.js) - Google Analytics