小弟刚接触jfreechart,在网上找了个柱状图的列子,我用的是jfreechart1.05的。网上的列子太旧,小弟做了点修改,图出来了,就是每跟柱子上无法显示数值,不知道何缘故。代码如下:<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="java.awt.Color"%>
<%@ page import="org.jfree.chart.ChartFactory"%>
<%@ page import="org.jfree.chart.JFreeChart"%>
<%@ page import="org.jfree.chart.plot.PlotOrientation"%>
<%@ page import="org.jfree.chart.servlet.ServletUtilities"%>
<%@ page import="org.jfree.data.category.CategoryDataset"%>
<%@ page import="org.jfree.data.general.DatasetUtilities"%>
<%@ page import="org.jfree.chart.plot.CategoryPlot"%>
<%@ page import="org.jfree.chart.axis.CategoryAxis"%>
<%@ page import="org.jfree.chart.axis.ValueAxis"%>
<%@ page import="org.jfree.chart.renderer.category.BarRenderer3D"%>
<%@ page import="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);
renderer.setWallPaint(Color.gray);//设置 Wall 的颜色
//设置每种水果代表的柱的颜色
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.setItemLabelsVisible(true);//显示每个柱的数值
plot.setRenderer(renderer);//让上面对柱子的设置生效plot.setForegroundAlpha(0.6f);//设置柱的透明度
//设置地区、销量的显示位置
plot.setDomainAxisLocation(AxisLocation.BOTTOM_OR_LEFT);
plot.setRangeAxisLocation(AxisLocation.TOP_OR_LEFT);String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, null, session);
String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
%>
<img src="<%= graphURL %>" width=800 height=400 border=0 usemap="#<%= filename %>">
<%@ page import="java.awt.Color"%>
<%@ page import="org.jfree.chart.ChartFactory"%>
<%@ page import="org.jfree.chart.JFreeChart"%>
<%@ page import="org.jfree.chart.plot.PlotOrientation"%>
<%@ page import="org.jfree.chart.servlet.ServletUtilities"%>
<%@ page import="org.jfree.data.category.CategoryDataset"%>
<%@ page import="org.jfree.data.general.DatasetUtilities"%>
<%@ page import="org.jfree.chart.plot.CategoryPlot"%>
<%@ page import="org.jfree.chart.axis.CategoryAxis"%>
<%@ page import="org.jfree.chart.axis.ValueAxis"%>
<%@ page import="org.jfree.chart.renderer.category.BarRenderer3D"%>
<%@ page import="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);
renderer.setWallPaint(Color.gray);//设置 Wall 的颜色
//设置每种水果代表的柱的颜色
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.setItemLabelsVisible(true);//显示每个柱的数值
plot.setRenderer(renderer);//让上面对柱子的设置生效plot.setForegroundAlpha(0.6f);//设置柱的透明度
//设置地区、销量的显示位置
plot.setDomainAxisLocation(AxisLocation.BOTTOM_OR_LEFT);
plot.setRangeAxisLocation(AxisLocation.TOP_OR_LEFT);String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, null, session);
String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
%>
<img src="<%= graphURL %>" width=800 height=400 border=0 usemap="#<%= filename %>">
解决方案 »
- jsp留言板如何实何回复
- 请教:关于IE与Firefox中输入框对齐的问题。
- javaBean问题永远都无法解决???
- 有没有人有jforum2.16 + websphere 6的安装经验!
- servlet如何调用javabean ?急~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- 请问:我这样配置怎么还是不行,这是为什么?
- 请教最简单的下载方法,我只需下载一个word文档给客户,是不是可以把这个文挡放到服务器的某目录下,然后用一个什么语句指定给文件路径,
- 在JSP页面中实现检索数据的分页显示
- 请教!如何获得被更新的记录条数!!
- 大家说说,这个东西能值多少钱?
- 请问在web中如何创建和页面相关的帮助即一个URL对应一个帮助页面?
- jsp中如何删掉指定的文件,比如E:\\Tomcat 5.0\\webapps\\sms\\1.xls
你把官方的demo反编译一下 大部分需要的效果都有
我做的时候就是参考的demo
现在身边没有代码 也没法找给你看
或者msn: [email protected]