JFreeChart 生成柱状图
来源:互联网 发布:数据可视化原理 编辑:程序博客网 时间:2024/04/29 20:22
《转载》 【摘 要】本文介绍我们介绍使用 JFreeChart 生成柱状图,首先从一个最简单的例子开始,我只介绍了少量的方法,更多的请参考 JFreeChart 的 Java Doc API 文档和 Sample Code 我们介绍使用 JFreeChart 生成柱状图,首先从一个最简单的例子开始。 一 最简单的例子 为了降低门槛,让大家心理有个底,先介绍一个简单的不能再简单的例子,图片中的各类属性都采用默认值。 我在前人的基础上修改了一下;使用了jfreechart-1.0.9.jar进行编写的;
sample1页面: <%@ page contentType="text/html;charset=GBK"%>
<%@ page import="org.jfree.chart.ChartFactory, org.jfree.chart.JFreeChart, org.jfree.chart.plot.PlotOrientation, org.jfree.chart.servlet.ServletUtilities, org.jfree.data.category.DefaultCategoryDataset, java.io.PrintWriter,org.jfree.chart.ChartRenderingInfo,
org.jfree.chart.entity.StandardEntityCollection,
org.jfree.chart.urls.StandardPieURLGenerator,
org.jfree.chart.labels.StandardPieToolTipGenerator,
org.jfree.chart.ChartUtilities,java.io.File"%>
<%DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(300, "广州", "苹果");
dataset.addValue(200, "广州", "梨子");
dataset.addValue(500, "广州", "葡萄");
dataset.addValue(340, "广州", "芒果");
dataset.addValue(280, "广州", "荔枝");
JFreeChart chart = ChartFactory.createBarChart3D("水果销量统计图", "水果", "销量", dataset, PlotOrientation.VERTICAL, false, false, false);
StandardEntityCollection entityCollection = new StandardEntityCollection(); //生成RenderingInfo实例
ChartRenderingInfo info=new ChartRenderingInfo(entityCollection); //将页面输出流out包装成一个PrintWriter的实例 PrintWriter pw=new PrintWriter(out); String filenam=ServletUtilities.saveChartAsPNG(chart,800,800,info,null);
//将图片的热点信息在 html页面中输出,pw代表页面的输出流,map0是定义热点的MAP标签ID //info参数的热点信息
ChartUtilities.writeImageMap(pw,"map0",info,false);%>
<img src="DisplayChart?filename=<%=filenam %>" width=800 height=800 border=0 usemap="#map0">
运行效果看:http://blog.tom.com/xfy168/article/255.html
sample2.jsp
<%@ 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.category.*, 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, org.jfree.data.general.DatasetUtilities"%>
<% 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, 600, 400, null, session);
String graphURL = request.getContextPath() + "/DisplayChart?filename=" + filename; %>
<img src="<%= graphURL %>" width=600 height=400 border=0 usemap="#<%= filename %>">
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<!-- 配置JFreeChart项目的 DisplayChart-->
<servlet>
<servlet-name>DisplayChart</servlet-name>
<servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
</servlet>
<!-- 配置DisplayChart servlet映射的URL-->
<servlet-mapping>
<servlet-name>DisplayChart</servlet-name>
<url-pattern>/DisplayChart</url-pattern>
</servlet-mapping>
</web-app>
- JFreeChart 生成柱状图
- JFreeChart生成柱状图
- JFreeChart生成柱状图
- jfreechart柱状图生成
- JFreeChart生成柱状图实例
- JFreeChart生成柱状图
- jfreechart生成柱状图
- JFreeChart生成柱状图 jfreechart-0.9.16.jar
- JFreeChart 生成 柱状图(Struts2 + Maven3 + JFreeChart)
- JFreeChart 生成 柱状图(Struts2 + Maven3 + JFreeChart)
- JFreeChart生成柱状图的类
- JFreeChart生成3D柱状图
- 多列柱状图生成JfreeChart
- JFreeChart生成柱状图、饼状图、折线图详解
- 利用JFreeChart生成简单柱状图(Java)
- 利用JFreeChart生成简单柱状图(Servlet)
- jfreechart生成柱状图与饼状图(入门)
- 使用JFreeChart生成柱状图和饼图
- 创建一个表 id 要求为日期+流水号(0001-9999) primary key
- 向学生表中加入1000条数据
- [VBA] 按任意一列做降序排序
- 思考才是进步本质——近期文章回顾
- 解决Asp.net 2.0 连接Sqlserver2000时报“provider: Named Pipes Provider, error: 40 ”的错误。
- JFreeChart 生成柱状图
- 从Ubuntu返回了window XP
- 让查询数据由行变成列
- DWR实现级联
- 冒泡排序
- 读希特勒
- 读希特勒
- java小程序 计算器
- 正则表达式替换多行字符串