`
忧里修斯
  • 浏览: 436411 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

JFreeChar柱状图实例

阅读更多
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="org.jfree.data.category.DefaultCategoryDataset"%>
<%@page import="org.jfree.data.category.CategoryDataset"%>
<%@page import="org.jfree.chart.JFreeChart"%>
<%@page import="org.jfree.chart.ChartFactory"%>
<%@page import="org.jfree.chart.plot.PlotOrientation"%>
<%@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="java.awt.Color"%>
<%@page import="org.jfree.chart.labels.StandardCategoryItemLabelGenerator"%>
<%@page import="java.awt.Font"%>
<%@page import="org.jfree.chart.axis.AxisLocation"%>
<%@page import="org.jfree.chart.servlet.ServletUtilities"%>
<%@page import="org.jfree.chart.labels.ItemLabelPosition"%>
<%@page import="org.jfree.chart.labels.ItemLabelAnchor"%>
<%@page import="org.jfree.ui.TextAnchor"%>
<%@page import="java.awt.Paint"%>
<%
	DefaultCategoryDataset dataSet = new DefaultCategoryDataset();
	//设置数据
	dataSet.addValue(10000,"产量","苹果");
	dataSet.addValue(9000,"销量","苹果");
	dataSet.addValue(9999,"产量","梨子");
	dataSet.addValue(6500,"销量","梨子");
	dataSet.addValue(20000,"产量","香蕉");
	dataSet.addValue(12000,"销量","香蕉");
	dataSet.addValue(10000,"产量","芒果");
	dataSet.addValue(9000,"销量","芒果");
	dataSet.addValue(5000,"产量","西瓜");
	dataSet.addValue(5000,"销量","西瓜");
	
	//创建图表
	//参数依次为:标题、横轴名称,纵轴名称、数据集、方向、是否显示图例(对于简单的柱状图必须是false)、是否生成工具、是否生成URL
	JFreeChart chart = ChartFactory.createBarChart3D("水果产销统计图","水果","产销量",dataSet,PlotOrientation.VERTICAL,true,true,true);
	//chart.setBackgroundPaint(new Color(255,255,128));
	
	//获取图表域对象
	CategoryPlot plot = chart.getCategoryPlot();
	
	//设置图表的横轴和纵轴
	CategoryAxis domainAxis = plot.getDomainAxis();
	domainAxis.setLowerMargin(0.01);//设置距离图片左端的距离为1%
	domainAxis.setUpperMargin(0.01);// 设置距离图片右端的距离为1%
	domainAxis.setCategoryLabelPositionOffset(10);//图表横轴与标签的距离为10像
	domainAxis.setCategoryMargin(0.1);//横轴标签之间的距离为10%
	
	//设置柱子的属性
	ValueAxis rangeAxis  = plot.getRangeAxis(); 
	rangeAxis.setUpperMargin(0.1);//设置最高柱子与图片顶端的距离为10%
	
	//设置图表的颜色
	BarRenderer3D render = new BarRenderer3D();
	render.setBaseOutlinePaint(Color.red);
	//注意第一个参数0、1
	render.setSeriesPaint(0,new Color(0,255,0));//设置柱子的颜色(产量)
	render.setSeriesOutlinePaint(0,Color.black);//设置柱子边框的颜色(产量)
	render.setSeriesPaint(1,new Color(0,0,255));//设置柱子的颜色(销量)
	render.setSeriesOutlinePaint(1,Color.red);//设置柱子边框的颜色(销量)
	
	//显示每个柱的数值,并修改该数值的字体属性
	render.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
	render.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_CENTER));
	render.setItemLabelAnchorOffset(10D);// 设置柱形图上的文字离柱子顶端的距离 
	render.setItemLabelFont(new Font("黑体",Font.BOLD,12));//12号黑体加粗
	render.setItemLabelPaint(new Color(255,0,0));
	 
	render.setItemLabelsVisible(true);
	
	/*------设置X轴坐标上的文字-----------*/  
	domainAxis.setTickLabelFont(new Font("sans-serif", Font.BOLD, 11));   
	  
	/*------设置X轴的标题文字------------*/  
	domainAxis.setLabelFont(new Font("宋体", Font.BOLD, 12));   
	  
	/*------设置Y轴坐标上的文字-----------*/  
	rangeAxis.setTickLabelFont(new Font("sans-serif", Font.BOLD, 12));   
	  
	/*------设置Y轴的标题文字------------*/  
	rangeAxis.setLabelFont(new Font("黑体", Font.BOLD, 12)); 
	
	/*------这句代码解决了底部汉字乱码的问题-----------*/  
    chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12)); 
	chart.getTitle().setFont(new Font("宋体", Font.BOLD,12));	
	plot.setRenderer(render);
	
	//设置横纵坐标的显示位置
	plot.setDomainAxisLocation(AxisLocation.BOTTOM_OR_LEFT);
	plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_LEFT);
	//plot.setBackgroundPaint(new Color(255,255,128));
	
	//生成的图表图片
	String filename = ServletUtilities.saveChartAsPNG(chart,600,400,session);
	//图表图片的URL
	String graphUrl = request.getContextPath()+"/servlet/DisplayChart?filename="+filename;
	
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  	<title>住状图实例——水果销售统计</title>
  </head>
  <body>
  	<p align="center">
  		<img alt="水果销售统计" src="<%=graphUrl %>" width="600" height="400">
  	</p>
  </body>
</html>


效果图:
  • 大小: 16.7 KB
分享到:
评论

相关推荐

    JfreeChar教程与实例

    JFreeChart是一款强大的Java库,用于创建各种图表,如饼图、柱状图、线图、散点图、甘特图等。它在IT行业中广泛应用于数据可视化,尤其是在报表生成和数据分析领域。本教程将带你深入理解JFreeChart的使用,并通过...

    JFreeChar图表生成柱状图和饼状图源码

    在"JFreeChar图表生成柱状图和饼状图源码"的压缩包中,我们很可能找到了创建这两种图表的示例源代码。 柱状图是一种常用的数据可视化工具,它将数据的每个类别表示为一个垂直或水平的矩形条,长度表示数值大小。...

    jfreeChar 折线图+柱形图(混合图) +最新Jar包及例子

    要创建一个图表,你需要创建一个`ChartFactory`实例,并选择适合的图表类型,如`JFreeChart.createXYLineChart()`用于创建折线图,`JFreeChart.createBarChart()`用于创建柱形图。 混合图的创建稍微复杂一些,因为...

    jfreechar完整的例子

    JFreeChart是一款强大的Java图表库,它为开发者提供了丰富的图表类型,如柱状图、饼图、线形图、散点图、甘特图等,适用于各种数据分析和展示的需求。这个压缩包“JfreeChar完整的例子”包含了使用JFreeChart创建...

    JFreeChar 柱图实现

    在数据分析与展示领域,柱状图(Bar Chart)是一种非常常见的数据可视化工具,它能够直观地比较不同类别的数值大小,尤其适用于显示离散数据集。JFreeChart作为Java平台上的一个开源图表库,提供了丰富的API来创建...

    jfreechar各种图

    JFreeChart是一款强大的Java库,用于创建各种类型的图表,如折线图、柱状图、饼图、散点图、甘特图等。这个库在IT行业中被广泛使用,特别是在需要进行数据可视化的应用程序中。它允许开发人员通过简单的API调用来...

    JfreeChar实例

    这个实例将帮助我们深入理解如何使用JFreeChart来创建柱状图、线性图和饼状图,这些是数据可视化中最常用的图表类型。通过在Eclipse中导入提供的工程,我们可以直观地看到代码如何转化为可视化的图表。 首先,让...

    jfreechar 实例代码教程

    JFreeChart 是一个用于Java平台的开源图表库,它提供了丰富的图表类型,包括柱状图、饼图、线图、散点图、甘特图等,适用于各种数据可视化需求。这个实例代码教程将帮助你深入理解如何使用JFreeChart创建复杂的图表...

    JfreeChar学习资料 JfreeChar学习资料

    JFreeChart 是一个用于Java平台的开源图表库,它提供了丰富的图表类型,包括柱状图、饼图、线形图、散点图、甘特图等,使得开发者能够方便地在应用程序中生成高质量的可视化数据。本学习资料将深入探讨JFreeChart的...

    jfreechar 雷达图 带刻度

    JFreeChart是一款强大的Java图表库,它为开发者提供了丰富的图表类型,包括柱状图、饼图、线图、散点图以及我们关注的雷达图。雷达图,也称为蜘蛛图或星形图,是一种多变量数据可视化工具,常用于比较多个类别的数据...

    JFreeChar实现曲线图:lib+Demo

    JFreeChart是一款强大的开源Java图表库,它提供了丰富的图表类型,包括柱状图、饼图、折线图、曲线图、散点图等,使得开发者能够轻松地在Java应用中插入美观且功能齐全的图表。在本篇内容中,我们将深入探讨如何利用...

    jfreechar画图源代码

    JFreeChart是一款强大的Java图形库,它允许开发者创建多种类型的图表,如饼状图、柱状图、曲线图等,广泛应用于数据可视化和报告生成。本资料提供的"jfreechar画图源代码"包含了作者自己编写的能运行并显示结果的...

    jfreechart各类曲线图JSP代码

    JFreeChart是一组功能强大、灵活易用的Java绘图API,使用它可以生成多种通用性的报表,包括柱状图、饼图、曲线图、甘特图等。它能够用在Swing和Web等中制作自定义的图表或报表,并且得到广泛的应用。本文将通过引领...

    jFreechar网页实例

    JFreeChart是一个强大的开源Java库,它支持生成各种类型的图表,如柱状图、饼图、线图、散点图、甘特图等,广泛应用于数据分析和可视化。在Web应用中,JFreeChart可以生成静态图表图片,也可以结合JavaServer Pages ...

    JFreechar简单报表例子

    它提供了丰富的图表类型,包括柱状图、饼图、线图、散点图、面积图、甘特图等,广泛应用于数据分析、报表制作以及各种Java应用程序中。JFreeChart通过其强大的API,使得开发者能够轻松地在程序中集成图表功能,动态...

    jfreechar饼图简单示例

    `jfreechart`是一款功能强大且开源的Java图表库,它支持多种类型的图表绘制,包括饼图、柱状图、折线图等。本篇文章将通过一个简单的示例来介绍如何使用`jfreechart`来绘制饼图。 #### 二、环境准备 在开始之前,...

    jfreechar 例子下载

    这个库支持生成静态和动态图表,包括饼图、柱状图、线图、面积图、散点图、甘特图、雷达图等多种类型,而且支持各种自定义选项,如颜色、字体、图例、数据标签等。 饼图是JFreeChart中最常见的图表之一,它常用于...

    jFreeChar-1.0.17含中文api

    JFreeChart 提供了多种图表类型,包括但不限于柱状图、饼图、线图、散点图、面积图、甘特图、时间序列图等。这些图表可以根据具体需求进行自定义,如颜色、字体、图例、数据标签等,以满足不同视觉效果的需求。 **...

    jfreechar包

    JFreeChart是一款强大的Java图表库,它为开发者提供了创建各种类型图表的能力,包括折线图、柱状图、饼图、散点图等。在Java应用程序、Web应用或报告系统中,JFreeChart是一个非常实用的工具,因为它可以帮助生成高...

Global site tag (gtag.js) - Google Analytics