工作需要涉及到饼图的实现,这是一个实现饼图的类,通过传入HashMap中键存放的是需要显示的项目,值为对应项的数值,用来计算并显示比例,该类的代码如下:
packagecom.sjth.zdsygl.chart;
importjava.awt.Font;
importjava.io.PrintWriter;
importjava.util.HashMap;
importjava.util.Iterator;
importjavax.servlet.http.HttpSession;
importorg.jfree.chart.ChartRenderingInfo;
importorg.jfree.chart.ChartUtilities;
importorg.jfree.chart.JFreeChart;
importorg.jfree.chart.entity.StandardEntityCollection;
importorg.jfree.chart.labels.StandardPieItemLabelGenerator;
importorg.jfree.chart.plot.PiePlot3D;
importorg.jfree.chart.servlet.ServletUtilities;
importorg.jfree.chart.title.TextTitle;
importorg.jfree.data.DefaultPieDataset;
publicclassPieChart
...{
//这个方法用来计算显示项数据所占比例
privatedoublegetRatio(HashMapmap,Objectvalue)
...{
doubleresult=0.00;
doubletotal=0.00;
StringstrTemp="";
Iteratoriter=map.keySet().iterator();
while(iter.hasNext())
...{
Objectkey=iter.next();
strTemp=(String)map.get(key);
total+=(Double.parseDouble(strTemp));
}
strTemp=(String)map.get(value);
result=Double.parseDouble(strTemp)/total;
//result=(double)Math.round(result);
returnresult;
}
publicStringJCreate(HashMapmap,Stringtitle,HttpSessionsession,intw,
inth)
...{
DefaultPieDatasetpiedata=newDefaultPieDataset();
/**//*piedata.setValue("Google",130);//如果没有数据可以通过这一块来测试
piedata.setValue("Baidu",40.3);
piedata.setValue("sohu",19.6);
piedata.setValue("msn",29.6);*/
Iteratoriter=map.keySet().iterator();
while(iter.hasNext())
...{
Objectkey=iter.next();
piedata.setValue(key.toString(),getRatio(map,key));
}
//3D饼图
PiePlot3Dplot=newPiePlot3D(piedata);
//饼图
//PiePlotplot=newPiePlot(piedata);
//设定链接("link.jsp","section"));//section为参数,不填写则默认为category
//plot.setURLGenerator(newStandardPieURLGenerator("link.jsp","section"));
//指定图片的透明度
plot.setForegroundAlpha(1.0f);
plot.setDepthFactor(0.08);
//指定显示的饼图上圆形(false)还椭圆形(true)
plot.setCircular(false);
//显示百分比
//plot.setLabelGenerator(new
//StandardPieItemLabelGenerator(StandardPieItemLabelGenerator.DEFAULT_TOOLTIP_FORMAT));
//plot.setLegendLabelGenerator(newStandardPieItemLabelGenerator("{0}:
//({1}M,{2})"));
JFreeChartchart=newJFreeChart("",JFreeChart.DEFAULT_TITLE_FONT,plot,
true);
//设置图片背景色
chart.setBackgroundPaint(java.awt.Color.white);
//设置图片标题属性
Fontfont=newFont("黑体",Font.CENTER_BASELINE,20);
TextTitle_title=newTextTitle(title);
_title.setFont(font);
chart.setTitle(_title);
plot.setToolTipGenerator(newStandardPieItemLabelGenerator());
//把生成的图片放到临时目录
StandardEntityCollectionsec=newStandardEntityCollection();
ChartRenderingInfoinfo=newChartRenderingInfo(sec);
Stringfilename=null;
try
...{
filename=ServletUtilities.saveChartAsPNG(chart,w,h,info,session);
}
catch(Exceptione)
...{
System.out.println("Exception-"+e.toString());
filename="public_error_500x300.png";
}
returnfilename;
}
}
分享到:
相关推荐
在本文中,我们将探讨如何使用 Java 生成 SVG 饼图,并使用 JFreeChart 生成 SVG 图表。我们还将讨论 JFreeChart 的一些缺陷和解决方案。 一、Java 生成 SVG 饼图 首先,让我们看看如何使用 Java 生成 SVG 饼图。...
JFreeChar生成饼图图片详细JAVA代码,直接导入eclipse即可使用。
在这个项目中,"java itext+jfree"的组合可能涉及到使用Java来创建带有图表的Word文档,并将这些文档导出。下面我们将详细探讨这两个库以及如何结合使用它们来实现这个功能。 iText是一个开源的Java库,主要用于...
在Java编程中,生成数据统计图是一种常见的需求,特别是在数据分析、报表展示以及数据挖掘等领域。JFreeChart是一个强大的Java库,它可以用来创建多种类型的图表,包括柱形图、饼图和折线图。本篇文章将详细介绍如何...
这里,“类别1”和“类别2”是饼图中的两个分段,数值表示每个分段所占的比例。 #### 1.3 创建饼图 接下来,使用`ChartFactory.createPieChart3D()`方法创建一个3D饼图。该方法接受多个参数,包括图表标题、数据集...
本实例将详细介绍如何在Java中创建饼状图,包括必要的库、代码实现以及可能遇到的问题。 首先,我们需要一个合适的库来帮助我们生成饼状图。Apache POI和JFreeChart是两个常用的Java库,它们提供了丰富的图表绘制...
总结来说,使用Java在MyEclipse中生成饼图,主要涉及以下几个步骤:引入JFreeChart库、创建数据集、生成饼图、显示饼图以及可能的自定义设置。通过熟练掌握这些步骤,你可以在Java程序中轻松地实现各种复杂的图表...
通过熟练掌握JFreeChart,开发者可以轻松地在Java应用中实现专业级别的数据可视化效果。在实际项目中,可以结合数据库或其他数据源动态加载数据,从而生成动态图表,使数据的分析和展示更加灵活和生动。
总的来说,"jfree jar包"是一个功能强大的图表生成工具,对于任何需要在Java应用中实现数据可视化的开发者来说,都是一个不可或缺的资源。通过理解和熟练运用JFreeChart,你可以创建出专业且具有吸引力的数据图表,...
它完全用Java语言编写,支持各种图表类型,如线形图、柱状图、饼图等,并且可以很容易地集成到基于Java的应用程序、Web应用程序和报告系统中。 #### 三、环境搭建与依赖引入 在使用`JFreeChart`之前,需要确保项目...
Java 中可以使用 JFreeChart 库来实现各种数据统计图,如柱形图、饼图、折线图等。下面将详细介绍如何使用 JFreeChart 库实现数据统计图。 首先,需要添加三个第三方包到 Java 项目中,分别是 jfreechart-1.0.13....
在Java开发中,JFreeChart是一个非常流行的开源库,它为开发者提供了丰富的图表绘制功能,可用于创建各种类型的静态图表,如折线图、柱状图、饼图、散点图等,非常适合用于数据可视化和统计分析。在这个"JAVA 插件 ...
JFreeChart是Java领域内广泛使用的图表库,它提供了丰富的图表类型,如柱状图、饼图、线图、散点图等。通过easypoi-jfree,开发者可以利用JFreeChart的强大功能,结合自身数据生成各种复杂的图表,并将其无缝地嵌入...
要在Java项目中使用JFreeChart和JCommon,首先需要将`jcommon-1.0.12.jar`和`jfreechart-1.0.13.jar`添加到类路径。如果使用Maven或Gradle,可以通过添加依赖项来实现: 对于Maven,在`pom.xml`中添加: ```xml ...
jfreechart是一款基于Java的开源图表绘制库,它能够帮助开发者轻松地在应用程序中生成各种图表,包括折线图、饼图、柱状图等。它的主要优势在于功能强大、配置灵活,并且支持导出多种格式的图表图像。 #### 二、...
在压缩包中的"jfree源代码",你可以找到许多示例代码,这些代码展示了如何使用JFreeChart创建不同类型的图表并进行各种定制。通过阅读和运行这些示例,你可以更深入地了解JFreeChart的使用方法,从而在实际项目中...
JFreeChart 是一个开源的Java库,用于生成高质量的、多样的图表,包括折线图、柱形图、饼图、散点图等。在这个特定的案例中,我们关注的是如何利用JFreeChart来创建折线图和柱形图的混合图表,这种图表在数据可视化...
在Java编程中,将图片写入Excel文件是一项常见的任务,特别是在数据分析、报表生成或数据可视化的情景下。这里,我们将详细探讨如何实现这个功能,主要依赖于`Apache POI`库来操作Excel,并结合`JFreeChart`库来创建...
10. **与其他库的集成**:可以与Swing、JavaFX、Servlets等库结合使用,实现丰富的用户界面和动态更新的图表。 总的来说,"jfreejar包.rar" 提供的JFreeChart库是一个强大的工具,能够帮助开发者快速创建专业且可...