java中使用jfree饼图的实现
来源:互联网 发布:奢悦水光针网络传销 编辑:程序博客网 时间:2024/06/07 05:58
工作需要涉及到饼图的实现,这是一个实现饼图的类,通过传入HashMap中键存放的是需要显示的项目,值为对应项的数值,用来计算并显示比例,该类的代码如下:
package com.sjth.zdsygl.chart;
import java.awt.Font;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Iterator;
import javax.servlet.http.HttpSession;
import org.jfree.chart.ChartRenderingInfo;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.entity.StandardEntityCollection;
import org.jfree.chart.labels.StandardPieItemLabelGenerator;
import org.jfree.chart.plot.PiePlot3D;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.DefaultPieDataset;
public class PieChart
...{
//这个方法用来计算显示项数据所占比例
private double getRatio(HashMap map, Object value)
...{
double result = 0.00;
double total = 0.00;
String strTemp = "";
Iterator iter = map.keySet().iterator();
while (iter.hasNext())
...{
Object key = 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);
return result;
}
public String JCreate(HashMap map, String title, HttpSession session, int w,
int h)
...{
DefaultPieDataset piedata = new DefaultPieDataset();
/**//* piedata.setValue("Google", 130);//如果没有数据可以通过这一块来测试
piedata.setValue("Baidu", 40.3);
piedata.setValue("sohu", 19.6);
piedata.setValue("msn", 29.6);*/
Iterator iter = map.keySet().iterator();
while (iter.hasNext())
...{
Object key = iter.next();
piedata.setValue(key.toString(), getRatio(map, key));
}
// 3D饼图
PiePlot3D plot = new PiePlot3D(piedata);
// 饼图
// PiePlot plot = new PiePlot(piedata);
// 设定链接 ("link.jsp","section"));//section为参数,不填写则默认为category
// plot.setURLGenerator(new StandardPieURLGenerator("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(new StandardPieItemLabelGenerator("{0}:
// ({1}M, {2})"));
JFreeChart chart = new JFreeChart("", JFreeChart.DEFAULT_TITLE_FONT, plot,
true);
// 设置图片背景色
chart.setBackgroundPaint(java.awt.Color.white);
// 设置图片标题属性
Font font = new Font("黑体", Font.CENTER_BASELINE, 20);
TextTitle _title = new TextTitle(title);
_title.setFont(font);
chart.setTitle(_title);
plot.setToolTipGenerator(new StandardPieItemLabelGenerator());
// 把生成的图片放到临时目录
StandardEntityCollection sec = new StandardEntityCollection();
ChartRenderingInfo info = new ChartRenderingInfo(sec);
String filename = null;
try
...{
filename = ServletUtilities.saveChartAsPNG(chart, w, h, info, session);
}
catch (Exception e)
...{
System.out.println("Exception - " + e.toString());
filename = "public_error_500x300.png";
}
return filename;
}
}
import java.awt.Font;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Iterator;
import javax.servlet.http.HttpSession;
import org.jfree.chart.ChartRenderingInfo;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.entity.StandardEntityCollection;
import org.jfree.chart.labels.StandardPieItemLabelGenerator;
import org.jfree.chart.plot.PiePlot3D;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.DefaultPieDataset;
public class PieChart
...{
//这个方法用来计算显示项数据所占比例
private double getRatio(HashMap map, Object value)
...{
double result = 0.00;
double total = 0.00;
String strTemp = "";
Iterator iter = map.keySet().iterator();
while (iter.hasNext())
...{
Object key = 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);
return result;
}
public String JCreate(HashMap map, String title, HttpSession session, int w,
int h)
...{
DefaultPieDataset piedata = new DefaultPieDataset();
/**//* piedata.setValue("Google", 130);//如果没有数据可以通过这一块来测试
piedata.setValue("Baidu", 40.3);
piedata.setValue("sohu", 19.6);
piedata.setValue("msn", 29.6);*/
Iterator iter = map.keySet().iterator();
while (iter.hasNext())
...{
Object key = iter.next();
piedata.setValue(key.toString(), getRatio(map, key));
}
// 3D饼图
PiePlot3D plot = new PiePlot3D(piedata);
// 饼图
// PiePlot plot = new PiePlot(piedata);
// 设定链接 ("link.jsp","section"));//section为参数,不填写则默认为category
// plot.setURLGenerator(new StandardPieURLGenerator("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(new StandardPieItemLabelGenerator("{0}:
// ({1}M, {2})"));
JFreeChart chart = new JFreeChart("", JFreeChart.DEFAULT_TITLE_FONT, plot,
true);
// 设置图片背景色
chart.setBackgroundPaint(java.awt.Color.white);
// 设置图片标题属性
Font font = new Font("黑体", Font.CENTER_BASELINE, 20);
TextTitle _title = new TextTitle(title);
_title.setFont(font);
chart.setTitle(_title);
plot.setToolTipGenerator(new StandardPieItemLabelGenerator());
// 把生成的图片放到临时目录
StandardEntityCollection sec = new StandardEntityCollection();
ChartRenderingInfo info = new ChartRenderingInfo(sec);
String filename = null;
try
...{
filename = ServletUtilities.saveChartAsPNG(chart, w, h, info, session);
}
catch (Exception e)
...{
System.out.println("Exception - " + e.toString());
filename = "public_error_500x300.png";
}
return filename;
}
}
- java中使用jfree饼图的实现
- java Jfree,文件中代码检测: 完成每周记录,并实现折线图和饼状图
- 基于JFree框架编写的饼图,柱状图,折线图
- 用Jfree实现条形柱状图表,java代码实现
- Jfree 设置背景颜色,饼图透明
- Jfree实现柱状图1
- Jfree实现统计图
- JFREE折线图
- jfree chart-时序图
- JFREE
- 通过调节坐标进行jfree图的放大缩小
- itest和jfree使用心得
- 在ssh2框架中jfree图片路径
- JAVA中实现------LinkedList的使用
- 使用Java实现在SQLserver中实现图片的存储
- 使用Java实现在SQLserver中实现图片的存储
- 使用Java实现在SQLserver中实现图片的存储
- 使用Java实现在SQLserver中实现图片的存储
- java代码编写的30条建意!!!!!!(转)
- java图像处理
- java对图像文件的处理
- 求职最受欢迎的十大技能
- 面白話
- java中使用jfree饼图的实现
- 关于VC调用Matlab的问题
- JAVA四种基本排序的总结
- java面试笔试题大汇总
- 用C#实现在ListBox中拖动排序
- 优化过的asp翻页代码
- Windows 系统文件检查命令
- 新浪QQ等站天气预报代码调用大全
- 有关C#委托与事件