|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2005-11-03
<%@ page contentType="text/html;CHARSET=utf8"%>
<%@ 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.category.CategoryDataset, org.jfree.data.general.DatasetUtilities, org.jfree.chart.plot.CategoryPlot, org.jfree.chart.axis.CategoryAxis, org.jfree.chart.axis.ValueAxis, org.jfree.chart.renderer.category.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.setItemLabelFont(new Font("黑体",Font.PLAIN,20)); 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 %>"> ###################################### 红色的部分是为了显示每个柱状图对应的double[][] data变量中的数字,可为什么显示不出来?谢谢 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2005-11-03
这是我用的包:jfreechart-1.0.0-rc1.jar
|
|
| 返回顶楼 | |
|
最后更新时间:2005-11-03
强烈昏倒,你把其中一句注释掉了,当然显示不了。
Look: 引用 /显示每个柱的数值,并修改该数值的字体属性renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator()); |
|
| 返回顶楼 | |
|
最后更新时间:2005-11-04
kurastdocks 写道 强烈昏倒,你把其中一句注释掉了,当然显示不了。
不好意思,是贴的时候换行错误,那行程序本来是没给注释掉的。请大家给小弟看看
Look: 引用 /显示每个柱的数值,并修改该数值的字体属性renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator()); |
|
| 返回顶楼 | |
|
最后更新时间:2005-11-04
你仅仅是数字显示不出来吗?我试了一下,怎么觉得没问题啊?
为了简单我是直接show的。应该没有什么区别。 我的代码: [code:1] public void test () { 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.setItemLabelFont(new Font("黑体", Font.PLAIN, 20)); renderer.setItemLabelsVisible(true); plot.setRenderer(renderer); //设置柱的透明度 plot.setForegroundAlpha(0.6f); //设置地区、销量的显示位置 plot.setDomainAxisLocation(AxisLocation.TOP_OR_RIGHT); plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT); ChartPanel panel = new ChartPanel(chart); panel.setSize(400,600); panel.setVisible(true); JFrame frame = new JFrame(); frame.getContentPane().add(panel); frame.show(); // String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, null, // session); // String graphURL = request.getContextPath() + // "/servlet/DisplayChart?filename=" + filename; } [/code:1] |
|
| 返回顶楼 | |
|
最后更新时间:2005-11-04
[img][/img]
|
|
| 返回顶楼 | |
|
最后更新时间:2005-11-04
kurastdocks我又试了你的代码也是不行啊,我上面发的图片的红圈部分还是没有数字,你的显示有?
|
|
| 返回顶楼 | |
|
最后更新时间:2005-11-04
我的有啊。
|
|
| 返回顶楼 | |
|
最后更新时间:2005-11-04
太奇怪,我这里就没有,为什么呢
|
|
| 返回顶楼 | |
|
最后更新时间:2005-11-04
使用的jar包不一样吗
|
|
| 返回顶楼 | |




