请教jfreechart的两个问题(饼,柱) 本帖最后由 cengjindewo 于 2009-09-11 11:01:16 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 csdn--> search jfreechart 这些日子有不少例子,出来就问,不如搜搜好. http://www.ibm.com/developerworks/cn/java/l-jfreechart/或许这里的资料能帮助到你。 csdn下载区有柱图带数字的,我下载过使用。 我只用jfreechart画过柱状图,给出如下代码:<%@page pageEncoding="gbk"%> <%@page import=" java.io.FileNotFoundException " %> <%@page import=" java.io.FileOutputStream " %> <%@page import=" org.apache.commons.logging.Log " %> <%@page import=" java.io.IOException,edu.jmi.dao.*,java.util.*" %> <%@page import=" org.jfree.chart.servlet.ServletUtilities" %> <%@page import=" org.apache.commons.logging.LogFactory " %> <%@page import=" org.jfree.chart.ChartFactory " %> <%@page import=" org.jfree.chart.ChartUtilities " %> <%@page import=" org.jfree.chart.JFreeChart " %> <%@page import=" org.jfree.chart.plot.PlotOrientation " %> <%@page import=" org.jfree.data.category.CategoryDataset " %> <%@page import=" org.jfree.data.category.DefaultCategoryDataset " %> <%@page import = " java.awt.Color " %> <%@page import = " org.jfree.chart.renderer.category.BarRenderer3D " %> <%@page import = " org.jfree.chart.labels.StandardCategoryItemLabelGenerator " %> <%@page import = " org.jfree.chart.axis.* " %> <%@page import = " org.jfree.chart.plot.CategoryPlot " %> <% ProjectDao pd=new ProjectDao();List list=pd.statyear();request.setAttribute("list",list);List list2=new ArrayList();int count=0;int count1=0; DefaultCategoryDataset dataset = new DefaultCategoryDataset(); for(int i=0;i<list.size();i++) { list2=pd.resultOfYear(Integer.parseInt(list.get(i).toString())); count=0;count1=0; for(int j=0;j<list2.size();j++) { if(j==0) { count=count+Integer.parseInt(list2.get(j).toString()); } if(j==1||j==3) { count1=count1+Integer.parseInt(list2.get(j).toString()); } if(j==0&&count!=0||(j==3&&count1!=0)) { dataset.addValue( count , "申请课题数" , list.get(i).toString() ); dataset.addValue( count1 , "通过" , list.get(i).toString() ); } } } dataset.addValue(0 , "申请课题数" , "其他"); dataset.addValue(0, "通过" ,"其他"); JFreeChart chart=ChartFactory.createBarChart3D( " 年度课题统计" , " " , " 数量 " ,dataset,PlotOrientation.VERTICAL, true , false , false ); chart.setBackgroundPaint(Color.LIGHT_GRAY); CategoryPlot plot = chart.getCategoryPlot(); CategoryAxis domainAxis = plot.getDomainAxis(); // domainAxis.setVerticalCategoryLabels( false ); plot.setDomainAxis(domainAxis); //获取纵坐标 CategoryPlot categoryPlot=chart.getCategoryPlot(); NumberAxis numberaxis = (NumberAxis)categoryPlot.getRangeAxis(); //将纵坐标间距设置为50 numberaxis.setTickUnit(new NumberTickUnit(5));//设置纵坐标增长的幅度 numberaxis.setAutoRange(false);//设置是否自动限制最大范围 numberaxis.setRange(0,50);//设置纵坐标最小,最大显示数据 BarRenderer3D renderer=new BarRenderer3D(); renderer.setBaseOutlinePaint(Color.BLACK); // 设置每个地区所包含的平行柱的之间距离 renderer.setItemMargin(0.1); // 显示每个柱的数值,并修改该数值的字体属性 renderer.setItemLabelGenerator( new StandardCategoryItemLabelGenerator()); renderer.setItemLabelsVisible( true ); renderer.setMaximumBarWidth(0.06D); plot.setRenderer(renderer); // 设置柱的透明度 plot.setForegroundAlpha(0.8f); //ChartUtilities.writeChartAsJPEG(response.getOutputStream(),chart, 640 , 400 ); String filename = ServletUtilities.saveChartAsJPEG(chart, 650, 350, null, session); //设置生成图片的宽高,这里的宽高一定要最好与下面的图片的宽高一致,这样才能保证图片清晰 String graphURL =request.getContextPath()+"/servlet/DisplayChart?filename="+filename; %> <body bgcolor="#E4E8Ef"><center><img src="<%=graphURL %>" width=650 height=350 border=0 usemap="#<%=filename%>"><br> <br> <br> <br> <input type="button" value="点击查看详情" onclick="window.open('allYear.jsp','_self')"></center></body> 大家看看这个投票网站的“防同一ip多次投票”的技术原理是什么? jdbc操作中,找不到配置文件??????? Eclipse使用link加载Aptana出现异常!!! HttpURLConnection无法验证码校验 mysql模糊查找问题 第3次问,页面刷新问题! 关于把cookie显示出来的问题 Strut 中的mapping return 后用不了样式表? 双层SQL查询如何显示? 哪里有tomcat4.01下载。 如何通过数据库生成一个js树 Struts Commons FileUpload文件上传
这些日子有不少例子,出来就问,不如搜搜好.
或许这里的资料能帮助到你。
给出如下代码:
<%@page pageEncoding="gbk"%> <%@page import=" java.io.FileNotFoundException " %>
<%@page import=" java.io.FileOutputStream " %>
<%@page import=" org.apache.commons.logging.Log " %>
<%@page import=" java.io.IOException,edu.jmi.dao.*,java.util.*" %>
<%@page import=" org.jfree.chart.servlet.ServletUtilities" %> <%@page import=" org.apache.commons.logging.LogFactory " %>
<%@page import=" org.jfree.chart.ChartFactory " %>
<%@page import=" org.jfree.chart.ChartUtilities " %>
<%@page import=" org.jfree.chart.JFreeChart " %>
<%@page import=" org.jfree.chart.plot.PlotOrientation " %>
<%@page import=" org.jfree.data.category.CategoryDataset " %>
<%@page import=" org.jfree.data.category.DefaultCategoryDataset " %> <%@page import = " java.awt.Color " %>
<%@page import = " org.jfree.chart.renderer.category.BarRenderer3D " %>
<%@page import = " org.jfree.chart.labels.StandardCategoryItemLabelGenerator " %>
<%@page import = " org.jfree.chart.axis.* " %>
<%@page import = " org.jfree.chart.plot.CategoryPlot " %> <%
ProjectDao pd=new ProjectDao();
List list=pd.statyear();
request.setAttribute("list",list);
List list2=new ArrayList();
int count=0;int count1=0;
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
for(int i=0;i<list.size();i++)
{
list2=pd.resultOfYear(Integer.parseInt(list.get(i).toString()));
count=0;count1=0;
for(int j=0;j<list2.size();j++)
{
if(j==0)
{
count=count+Integer.parseInt(list2.get(j).toString());
}
if(j==1||j==3)
{
count1=count1+Integer.parseInt(list2.get(j).toString());
}
if(j==0&&count!=0||(j==3&&count1!=0))
{
dataset.addValue( count , "申请课题数" , list.get(i).toString() );
dataset.addValue( count1 , "通过" , list.get(i).toString() );
}
}
}
dataset.addValue(0 , "申请课题数" , "其他");
dataset.addValue(0, "通过" ,"其他");
JFreeChart chart=ChartFactory.createBarChart3D( " 年度课题统计" , " " , " 数量 " ,dataset,PlotOrientation.VERTICAL, true , false , false );
chart.setBackgroundPaint(Color.LIGHT_GRAY);
CategoryPlot plot = chart.getCategoryPlot(); CategoryAxis domainAxis = plot.getDomainAxis();
// domainAxis.setVerticalCategoryLabels( false );
plot.setDomainAxis(domainAxis);
//获取纵坐标
CategoryPlot categoryPlot=chart.getCategoryPlot();
NumberAxis numberaxis = (NumberAxis)categoryPlot.getRangeAxis();
//将纵坐标间距设置为50
numberaxis.setTickUnit(new NumberTickUnit(5));//设置纵坐标增长的幅度
numberaxis.setAutoRange(false);//设置是否自动限制最大范围
numberaxis.setRange(0,50);//设置纵坐标最小,最大显示数据
BarRenderer3D renderer=new BarRenderer3D();
renderer.setBaseOutlinePaint(Color.BLACK);
// 设置每个地区所包含的平行柱的之间距离
renderer.setItemMargin(0.1);
// 显示每个柱的数值,并修改该数值的字体属性
renderer.setItemLabelGenerator( new StandardCategoryItemLabelGenerator());
renderer.setItemLabelsVisible( true );
renderer.setMaximumBarWidth(0.06D);
plot.setRenderer(renderer); // 设置柱的透明度
plot.setForegroundAlpha(0.8f); //ChartUtilities.writeChartAsJPEG(response.getOutputStream(),chart, 640 , 400 );
String filename = ServletUtilities.saveChartAsJPEG(chart, 650, 350, null, session); //设置生成图片的宽高,这里的宽高一定要最好与下面的图片的宽高一致,这样才能保证图片清晰
String graphURL =request.getContextPath()+"/servlet/DisplayChart?filename="+filename;
%>
<body bgcolor="#E4E8Ef">
<center><img src="<%=graphURL %>" width=650 height=350 border=0 usemap="#<%=filename%>"><br> <br> <br> <br>
<input type="button" value="点击查看详情" onclick="window.open('allYear.jsp','_self')">
</center>
</body>