用jfreechart画柱状图的时候怎么把数字标到柱子上面去呢? 用jfreechart画柱状图的时候怎么把数字标到柱子上面去呢?这个问题我都整好久了。没搞定。各位高手帮帮我吧 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个是我在jfreechart-0.9.16.jar 下好用的代码 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><%@ page language="java" contentType="text/html;charset=gb2312" import="java.sql.*" import="java.io.*" import="java.util.*" import="javax.sql.*" import="javax.naming.*" import="java.text.*" import="java.lang.*" import="org.jfree.chart.ChartFactory" import="org.jfree.chart.JFreeChart" import="org.jfree.chart.plot.PlotOrientation" import="org.jfree.data.DefaultCategoryDataset" import="org.jfree.chart.servlet.ServletUtilities" import="org.jfree.chart.ChartRenderingInfo" import="org.jfree.chart.entity.StandardEntityCollection" import = "org.jfree.chart.ChartPanel" import = "org.jfree.chart.StandardLegend" import = "org.jfree.chart.axis.NumberAxis" import = "org.jfree.chart.plot.CategoryPlot" import = "org.jfree.chart.renderer.LineAndShapeRenderer" import = "org.jfree.data.CategoryDataset" %> <% String stringSqlString,sumSqlString; int rowCount; // sql="SELECT ALARM_TIME,SITE_ID,INFECTANT_ID,STANDARD_VALUE,ACTUAL_VALUE, MEMO FROM ALARM"; //stringSqlString="SELECT a.ALARM_TIME, b.SITE_NAME, a.INFECTANT_ID, a.STANDARD_VALUE,a.ACTUAL_VALUE"; // stringSqlString=stringSqlString+"a.MEMO FROM ALARM a LEFT OUTER JOIN T_DIC_SUBSITE b ON a.SITE_ID = b.SITE_ID WHERE (CONVERT(char(10), a.ALARM_TIME, 120) >= '2006-08-10') AND (CONVERT(char(10), a.ALARM_TIME, 120) <= '2006-08-16')"; //stringSqlString=stringSqlString+" FROM ALARM a LEFT OUTER JOIN T_DIC_SUBSITE b ON a.SITE_ID = b.SITE_ID WHERE (CONVERT(char(10), a.ALARM_TIME, 120) >= '2006-08-10') AND (CONVERT(char(10), a.ALARM_TIME, 120) <= '2006-08-16')"; stringSqlString="select id,gzs,cbs,cbzd,yxxs from lxhtest"; ResultSet rs=query.getResult(stringSqlString); /////////////// //////////////////// // 创建一个 500X375 的图像 int width=500, height=375; int intArray[ ]; intArray = new int[12]; int intArray1[ ]; intArray1 = new int[12]; String chartTitle = "JFreeChart实例1: 编程类图书周销售量垂直直方图"; //row keys... String bookTitle[] = {"故障数", "超标数", "超标最大值", "有效小时数"}; //String bookTitle[] = {"故障数"}; String category[] = {"第1月", "第2月", "第3月", "第4月" ,"第5月", "第6月", "第7月", "第8月","第9月", "第10月", "第11月", "第12月"}; // column keys... //String category[] = {"第1年"}; %><html><head><LINK href="Scripts/Global.css" type="text/css" rel="stylesheet"><LINK href="Scripts/Web_Catalog.css" type="text/css" rel="stylesheet"><title><%=chartTitle%></title></head><body><table align="center" id="tabList" borderColorDark="#EBEFFC" borderColor=#ffffff borderColorLight="#CCD7F7" class="itemList" border="4" cellpadding="3" cellspacing="2" width="75%"> <tr align="center" valign="middle"> <td>季度</td> <td>故障数</td> <td>超标数</td> <td>超标最大值</td> <td>有效小时数</td> </tr> <% int k =0; while(rs.next()) { String jd=rs.getString("id"); String gzs=rs.getString("gzs"); String cbs=rs.getString("cbs"); String cbzd=rs.getString("cbzd"); String yxxs=rs.getString("yxxs"); ////// // bookTitle[k]=INFECTANT_ID; // category[k] =curdate; // a[k]=(int)ACTUAL_VALUE; intArray[k]=Integer.parseInt(yxxs); intArray1[k]=Integer.parseInt(cbs); %> <tr class='tr1' align="center" valign="middle"> <td><%=jd %></td> <td><%=gzs%></td> <td><%= cbs%></td> <td><%=cbzd %></td> <td><%=yxxs %></td> </tr> <% k++; } ///////////////////// %> <tr align="center" valign="middle"> <td>合计</td> <td> </td> <td> </td> <td> </td> <td> </td> </tr></table><% // 创建数据集 DefaultCategoryDataset dataset = new DefaultCategoryDataset(); // 往数据集中添加绘制图表所需的数据 int bookSales; int bookSales1; //for (int h=0; h< intArray.length; h++) //{ // bookSales =intArray[h]; for (int i=0; i < bookTitle.length; i++) { // out.println(" %%%% "+bookSales+" %%%% "); for (int j=0; j < category.length; j++ ) { //bookSales = 1 + (int)(Math.random() * 100); // bookSales =intArray[k]; bookSales =intArray[j]; // bookSales =intArray1[j]; // out.print(" *** "+bookSales+" "+bookTitle[i]+" "+ category[j]+" *** "); dataset.addValue(bookSales, bookTitle[i], category[j]); bookSales =intArray1[j]; dataset.addValue(bookSales, bookTitle[i], category[j]); //dataset.addValue(bookSales, category[j],bookTitle[i] ); //dataset.addValue(bookSales1, bookTitle[i], category[j]); } } // } // 创建图表 JFreeChart chart = ChartFactory.createBarChart ( chartTitle, // 图表标题 "销售时间:2005年2月", // 坐标标题 "数据值", // 坐标标题 dataset, // 定义绘制数据 PlotOrientation.VERTICAL, // 直方图的方向 true, // 定义图表是否包含图例 true, // 定义图表是否包含提示 false // 定义图表是否包含URL ); ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection()); /////////图表上方写数字 CategoryPlot plot = chart.getCategoryPlot(); CategoryItemRenderer cir=plot.getRenderer(); cir.setItemLabelsVisible(true); /////////图表上方写数字 // 设置图表的格式及文件名 String fileName = ServletUtilities.saveChartAsPNG(chart, width, height, info, session); // 设置图表浏览路径 String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + fileName; %><P ALIGN="CENTER"> <img src="<%=graphURL %>" border="1" > </P> </body></html> <%@ page contentType="text/html;charset=GBK"%> <%@ page import="java.awt.Color, java.awt.Font, org.jfree.chart.ChartFactory, org.jfree.chart.JFreeChart, org.jfree.chart.plot.PlotOrientation, org.jfree.chart.servlet.ServletUtilities, org.jfree.data.CategoryDataset, org.jfree.data.DatasetUtilities, org.jfree.chart.plot.CategoryPlot, org.jfree.chart.axis.CategoryAxis, org.jfree.chart.axis.ValueAxis, org.jfree.chart.renderer.BarRenderer3D, org.jfree.chart.labels.StandardCategoryItemLabelGenerator, org.jfree.chart.axis.AxisLocation"%> <% ?? double[][] data = new double[][] {{672, 766, 223, 540, 126},{325, 521, 210, 340, 106},{332, 256, 523, 240, 526}}; String[] rowKeys = {"苹果","梨子","葡萄"}; String[] columnKeys = {"北京","上海","广州","成都","深圳"}; CategoryDataset dataset = DatasetUtilities.createCategoryDataset(rowKeys, columnKeys, data); JFreeChart chart = ChartFactory.createBarChart3D("水果销量图统计", null, null, dataset, PlotOrientation.VERTICAL, true,false,false); chart.setBackgroundPaint(Color.WHITE); CategoryPlot plot = chart.getCategoryPlot(); CategoryAxis domainAxis = plot.getDomainAxis(); domainAxis.setVerticalCategoryLabels(false); plot.setDomainAxis(domainAxis); ValueAxis rangeAxis = plot.getRangeAxis(); //设置最高的一个 Item 与图片顶端的距离 rangeAxis.setUpperMargin(0.15); //设置最低的一个 Item 与图片底端的距离 rangeAxis.setLowerMargin(0.15); plot.setRangeAxis(rangeAxis); BarRenderer3D renderer = new BarRenderer3D(); renderer.setBaseOutlinePaint(Color.BLACK); //设置 Wall 的颜色 renderer.setWallPaint(Color.gray); //设置每种水果代表的柱的颜色 renderer.setSeriesPaint(0, new Color(0, 0, 255)); renderer.setSeriesPaint(1, new Color(0, 100, 255)); renderer.setSeriesPaint(2, Color.GREEN); //设置每个地区所包含的平行柱的之间距离 renderer.setItemMargin(0.1); //显示每个柱的数值,并修改该数值的字体属性 renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator()); renderer.setItemLabelsVisible(true); plot.setRenderer(renderer); //设置柱的透明度 plot.setForegroundAlpha(0.6f); //设置地区、销量的显示位置 plot.setDomainAxisLocation(AxisLocation.TOP_OR_RIGHT); plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT); String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, null, session); String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename; %> <img src="<%= graphURL %>" width=500 height=300 border=0 usemap="#<%= filename %>"> 看看这个 ,没有问题 楼主切记:JFreeChart版本不一样,代码会编译不过去了 将简单的小程序代码嵌入Html文件里的问题 java采集网页与源文件不同 求正则表达式 请教 sql server中delete语句的问题。 求com.jspsmart包 JBuilder里面jsp代码中汉字显示和javabean里面属性的问题 难题,请大家帮忙,有关javascript的 关于tomcat连接池的问题,在线急等 用JSP写入MySQL数据库中,英文和数字完全正常,但中文字为“????”,我该怎么办? javaBean的问题,请帮一下忙 为什么出现死锁啊? 请问hibernate级联删除问题(两个字段关联)
import="java.sql.*"
import="java.io.*"
import="java.util.*"
import="javax.sql.*"
import="javax.naming.*"
import="java.text.*"
import="java.lang.*"
import="org.jfree.chart.ChartFactory"
import="org.jfree.chart.JFreeChart"
import="org.jfree.chart.plot.PlotOrientation"
import="org.jfree.data.DefaultCategoryDataset"
import="org.jfree.chart.servlet.ServletUtilities"
import="org.jfree.chart.ChartRenderingInfo"
import="org.jfree.chart.entity.StandardEntityCollection"
import = "org.jfree.chart.ChartPanel"
import = "org.jfree.chart.StandardLegend"
import = "org.jfree.chart.axis.NumberAxis"
import = "org.jfree.chart.plot.CategoryPlot"
import = "org.jfree.chart.renderer.LineAndShapeRenderer"
import = "org.jfree.data.CategoryDataset"
%>
<%
String stringSqlString,sumSqlString;
int rowCount;
// sql="SELECT ALARM_TIME,SITE_ID,INFECTANT_ID,STANDARD_VALUE,ACTUAL_VALUE, MEMO FROM ALARM";
//stringSqlString="SELECT a.ALARM_TIME, b.SITE_NAME, a.INFECTANT_ID, a.STANDARD_VALUE,a.ACTUAL_VALUE";
// stringSqlString=stringSqlString+"a.MEMO FROM ALARM a LEFT OUTER JOIN T_DIC_SUBSITE b ON a.SITE_ID = b.SITE_ID WHERE (CONVERT(char(10), a.ALARM_TIME, 120) >= '2006-08-10') AND (CONVERT(char(10), a.ALARM_TIME, 120) <= '2006-08-16')";
//stringSqlString=stringSqlString+" FROM ALARM a LEFT OUTER JOIN T_DIC_SUBSITE b ON a.SITE_ID = b.SITE_ID WHERE (CONVERT(char(10), a.ALARM_TIME, 120) >= '2006-08-10') AND (CONVERT(char(10), a.ALARM_TIME, 120) <= '2006-08-16')";
stringSqlString="select id,gzs,cbs,cbzd,yxxs from lxhtest";
ResultSet rs=query.getResult(stringSqlString);
///////////////
////////////////////
// 创建一个 500X375 的图像
int width=500, height=375;
int intArray[ ];
intArray = new int[12];
int intArray1[ ];
intArray1 = new int[12];
String chartTitle = "JFreeChart实例1: 编程类图书周销售量垂直直方图";
//row keys...
String bookTitle[] = {"故障数", "超标数", "超标最大值", "有效小时数"};
//String bookTitle[] = {"故障数"};
String category[] = {"第1月", "第2月", "第3月", "第4月" ,"第5月", "第6月", "第7月", "第8月","第9月", "第10月", "第11月", "第12月"};
// column keys...
//String category[] = {"第1年"};
%>
<html>
<head>
<LINK href="Scripts/Global.css" type="text/css" rel="stylesheet">
<LINK href="Scripts/Web_Catalog.css" type="text/css" rel="stylesheet">
<title><%=chartTitle%></title>
</head><body>
<table align="center" id="tabList" borderColorDark="#EBEFFC" borderColor=#ffffff borderColorLight="#CCD7F7" class="itemList" border="4" cellpadding="3" cellspacing="2" width="75%">
<tr align="center" valign="middle">
<td>季度</td>
<td>故障数</td>
<td>超标数</td>
<td>超标最大值</td>
<td>有效小时数</td>
</tr>
<%
int k =0;
while(rs.next()) {
String jd=rs.getString("id");
String gzs=rs.getString("gzs");
String cbs=rs.getString("cbs");
String cbzd=rs.getString("cbzd");
String yxxs=rs.getString("yxxs");
//////
// bookTitle[k]=INFECTANT_ID;
// category[k] =curdate;
// a[k]=(int)ACTUAL_VALUE;
intArray[k]=Integer.parseInt(yxxs);
intArray1[k]=Integer.parseInt(cbs);
%>
<tr class='tr1' align="center" valign="middle">
<td><%=jd %></td>
<td><%=gzs%></td>
<td><%= cbs%></td>
<td><%=cbzd %></td>
<td><%=yxxs %></td>
</tr>
<% k++; } /////////////////////
%>
<tr align="center" valign="middle">
<td>合计</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
<%
// 创建数据集
DefaultCategoryDataset dataset = new DefaultCategoryDataset(); // 往数据集中添加绘制图表所需的数据
int bookSales;
int bookSales1;
//for (int h=0; h< intArray.length; h++)
//{
// bookSales =intArray[h];
for (int i=0; i < bookTitle.length; i++)
{
// out.println(" %%%% "+bookSales+" %%%% ");
for (int j=0; j < category.length; j++ )
{
//bookSales = 1 + (int)(Math.random() * 100);
// bookSales =intArray[k];
bookSales =intArray[j];
// bookSales =intArray1[j];
// out.print(" *** "+bookSales+" "+bookTitle[i]+" "+ category[j]+" *** ");
dataset.addValue(bookSales, bookTitle[i], category[j]);
bookSales =intArray1[j];
dataset.addValue(bookSales, bookTitle[i], category[j]);
//dataset.addValue(bookSales, category[j],bookTitle[i] );
//dataset.addValue(bookSales1, bookTitle[i], category[j]);
}
}
// }
// 创建图表
JFreeChart chart = ChartFactory.createBarChart
(
chartTitle, // 图表标题
"销售时间:2005年2月", // 坐标标题
"数据值", // 坐标标题
dataset, // 定义绘制数据
PlotOrientation.VERTICAL, // 直方图的方向
true, // 定义图表是否包含图例
true, // 定义图表是否包含提示
false // 定义图表是否包含URL
); ChartRenderingInfo info =
new ChartRenderingInfo(new StandardEntityCollection());
/////////图表上方写数字
CategoryPlot plot = chart.getCategoryPlot();
CategoryItemRenderer cir=plot.getRenderer();
cir.setItemLabelsVisible(true);
/////////图表上方写数字
// 设置图表的格式及文件名
String fileName =
ServletUtilities.saveChartAsPNG(chart, width, height, info, session);
// 设置图表浏览路径
String graphURL =
request.getContextPath() + "/servlet/DisplayChart?filename=" + fileName;
%>
<P ALIGN="CENTER">
<img src="<%=graphURL %>" border="1" >
</P>
</body>
</html>
<%@ page import="java.awt.Color,
java.awt.Font,
org.jfree.chart.ChartFactory,
org.jfree.chart.JFreeChart,
org.jfree.chart.plot.PlotOrientation,
org.jfree.chart.servlet.ServletUtilities,
org.jfree.data.CategoryDataset,
org.jfree.data.DatasetUtilities,
org.jfree.chart.plot.CategoryPlot,
org.jfree.chart.axis.CategoryAxis,
org.jfree.chart.axis.ValueAxis,
org.jfree.chart.renderer.BarRenderer3D,
org.jfree.chart.labels.StandardCategoryItemLabelGenerator,
org.jfree.chart.axis.AxisLocation"%>
<%
??
double[][] data = new double[][] {{672, 766, 223, 540, 126},{325, 521, 210, 340, 106},{332, 256, 523, 240, 526}};
String[] rowKeys = {"苹果","梨子","葡萄"};
String[] columnKeys = {"北京","上海","广州","成都","深圳"};
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(rowKeys, columnKeys, data); JFreeChart chart = ChartFactory.createBarChart3D("水果销量图统计",
null,
null,
dataset,
PlotOrientation.VERTICAL,
true,false,false);
chart.setBackgroundPaint(Color.WHITE);
CategoryPlot plot = chart.getCategoryPlot(); CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setVerticalCategoryLabels(false);
plot.setDomainAxis(domainAxis); ValueAxis rangeAxis = plot.getRangeAxis();
//设置最高的一个 Item 与图片顶端的距离
rangeAxis.setUpperMargin(0.15);
//设置最低的一个 Item 与图片底端的距离
rangeAxis.setLowerMargin(0.15);
plot.setRangeAxis(rangeAxis); BarRenderer3D renderer = new BarRenderer3D();
renderer.setBaseOutlinePaint(Color.BLACK);
//设置 Wall 的颜色
renderer.setWallPaint(Color.gray);
//设置每种水果代表的柱的颜色
renderer.setSeriesPaint(0, new Color(0, 0, 255));
renderer.setSeriesPaint(1, new Color(0, 100, 255));
renderer.setSeriesPaint(2, Color.GREEN);
//设置每个地区所包含的平行柱的之间距离
renderer.setItemMargin(0.1);
//显示每个柱的数值,并修改该数值的字体属性
renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
renderer.setItemLabelsVisible(true);
plot.setRenderer(renderer); //设置柱的透明度
plot.setForegroundAlpha(0.6f);
//设置地区、销量的显示位置
plot.setDomainAxisLocation(AxisLocation.TOP_OR_RIGHT);
plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT); String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, null, session);
String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
%>
<img src="<%= graphURL %>" width=500 height=300 border=0 usemap="#<%= filename %>">
看看这个 ,没有问题