给个java与jfreechart画柱形图的例子,要源代码的,我分不多,全给你了

 我来答
北顾羊00
2010-10-11
知道答主
回答量:24
采纳率:0%
帮助的人:0
展开全部
/*java文件*/
package com.cn;

import java.awt.Color;
import java.awt.Paint;
import java.awt.RenderingHints;
import java.io.*;

import javax.servlet.http.HttpSession;

import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;
import org.jfree.chart.*;
import org.jfree.chart.entity.StandardEntityCollection;
import org.jfree.chart.plot.*;
import org.jfree.chart.servlet.ServletUtilities;

public class BarChartDemo {

/**
* 饼状图
*/
public static String generatePieChart(HttpSession session, PrintWriter pw,int w, int h){
String filename = null;
PieDataset dataset = getDataSet();
JFreeChart chart = ChartFactory.createPieChart3D(
"水果产量图", // 图表标题
dataset, // 数据集
true, // 是否显示图例
false, // 是否生成工具
false // 是否生成URL链接
);
chart.setBackgroundPaint(Color.pink);
try {
/*------得到chart的保存路径----*/
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
filename = ServletUtilities.saveChartAsPNG(chart, w, h, info,session);
/*------使用printWriter将文件写出----*/
ChartUtilities.writeImageMap(pw, filename, info, true);
pw.flush();
} catch (IOException e) {
e.printStackTrace();
}
return filename;
}

/**
* 柱状图
*/
public static String generateBarChart(HttpSession session, PrintWriter pw,int w, int h){
String filename = null;
CategoryDataset dataset = getDataSet2();
JFreeChart chart = ChartFactory.createBarChart3D(
"水果产量图", // 图表标题
"水果", // 目录轴的显示标签
"产量", // 数值轴的显示标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
try {
/*------得到chart的保存路径----*/
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
filename = ServletUtilities.saveChartAsPNG(chart, w, h, info,session);
/*------使用printWriter将文件写出----*/
ChartUtilities.writeImageMap(pw, filename, info, true);
pw.flush();
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
return filename;
}

/**
* 折线图
*/
public static String generateLineChart(HttpSession session, PrintWriter pw,int w, int h){
String filename = null;
CategoryDataset dataset = getDataSet3();
JFreeChart chart = ChartFactory.createLineChart(
"水果产量图", // 图表标题
"水果", // 目录轴的显示标签
"产量", // 数值轴的显示标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);

/*----------设置消除字体的锯齿渲染(解决中文问题)--------------*/
chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);

/*------------配置图表属性--------------*/
// 1,设置整个图表背景颜色
chart.setBackgroundPaint(Color.pink);

/*------------设定Plot参数-------------*/
CategoryPlot plot = chart.getCategoryPlot();
// 2,设置详细图表的显示细节部分的背景颜色
//plot.setBackgroundPaint(Color.PINK);
// 3,设置垂直网格线颜色
plot.setDomainGridlinePaint(Color.black);
//4,设置是否显示垂直网格线
plot.setDomainGridlinesVisible(true);
//5,设置水平网格线颜色
plot.setRangeGridlinePaint(Color.blue);
//6,设置是否显示水平网格线
plot.setRangeGridlinesVisible(true);

try {
/*------得到chart的保存路径----*/
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
filename = ServletUtilities.saveChartAsPNG(chart, w, h, info,session);
/*------使用printWriter将文件写出----*/
ChartUtilities.writeImageMap(pw, filename, info, true);
pw.flush();
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
return filename;
}

/**
* 在本地生成图片文件
*/
public static void ganarateFruitChart(){
CategoryDataset dataset = getDataSet2();
JFreeChart chart = ChartFactory.createBarChart3D(
"水果产量图", // 图表标题
"月份", // 目录轴的显示标签
"产量(公斤)", // 数值轴的显示标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);

FileOutputStream fos_jpg = null;
try {
fos_jpg = new FileOutputStream("D:\\fruit.jpg");
ChartUtilities.writeChartAsJPEG(fos_jpg,1.0f,chart,400,300,null);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
fos_jpg.close();
} catch (Exception e) {}
}
}

/**
* 获取一个饼状图的简单数据集对象
* @return
*/
private static PieDataset getDataSet() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("苹果", 100);
dataset.setValue("梨子", 200);
dataset.setValue("葡萄", 300);
dataset.setValue("香蕉", 400);
dataset.setValue("荔枝", 500);
return dataset;
}

/**
* 获取一个柱状图数据集对象
* @return
*/
private static CategoryDataset getDataSet2() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(100, "北京", "苹果");
dataset.addValue(500, "北京", "荔枝");
dataset.addValue(400, "北京", "香蕉");
dataset.addValue(200, "北京", "梨子");
dataset.addValue(300, "北京", "葡萄");
dataset.addValue(500, "上海", "葡萄");
dataset.addValue(600, "上海", "梨子");
dataset.addValue(400, "上海", "香蕉");
dataset.addValue(700, "上海", "苹果");
dataset.addValue(300, "上海", "荔枝");
dataset.addValue(300, "广州", "苹果");
dataset.addValue(200, "广州", "梨子");
dataset.addValue(500, "广州", "香蕉");
dataset.addValue(400, "广州", "葡萄");
dataset.addValue(700, "广州", "荔枝");
return dataset;
}

/**
* 获取一个折线图数据集对象
* @return
*/
private static CategoryDataset getDataSet3() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(100, "北京", "一月");
dataset.addValue(200, "北京", "二月");
dataset.addValue(100, "北京", "三月");
dataset.addValue(400, "北京", "四月");
dataset.addValue(300, "北京", "五月");
dataset.addValue(500, "北京", "六月");
dataset.addValue(90, "北京", "七月");
dataset.addValue(700, "北京", "八月");
dataset.addValue(800, "北京", "九月");
dataset.addValue(1000, "北京", "十月");
dataset.addValue(300, "北京", "十一月");
dataset.addValue(700, "北京", "十二月");
dataset.addValue(1200, "上海", "一月");
dataset.addValue(1100, "上海", "二月");
dataset.addValue(1000, "上海", "三月");
dataset.addValue(900, "上海", "四月");
dataset.addValue(800, "上海", "五月");
dataset.addValue(700, "上海", "六月");
dataset.addValue(600, "上海", "七月");
dataset.addValue(500, "上海", "八月");
dataset.addValue(400, "上海", "九月");
dataset.addValue(300, "上海", "十月");
dataset.addValue(200, "上海", "十一月");
dataset.addValue(100, "上海", "十二月");
dataset.addValue(600, "武汉", "一月");
dataset.addValue(500, "武汉", "二月");
dataset.addValue(400, "武汉", "三月");
dataset.addValue(300, "武汉", "四月");
dataset.addValue(200, "武汉", "五月");
dataset.addValue(100, "武汉", "六月");
dataset.addValue(200, "武汉", "七月");
dataset.addValue(300, "武汉", "八月");
dataset.addValue(400, "武汉", "九月");
dataset.addValue(500, "武汉", "十月");
dataset.addValue(600, "武汉", "十一月");
dataset.addValue(700, "武汉", "十二月");
return dataset;
}

/**
* @param args
*/
public static void main(String[] args) {
ganarateFruitChart();
}
}

/*jsp文件*/
<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="java.io.PrintWriter"%>
<jsp:directive.page import="com.cn.BarChartDemo"/>
<html>
<head>
<title>
</title>
<%
//饼状图
String fileNamePie=BarChartDemo.generatePieChart(session,new PrintWriter(out),580,250);
String graphURLPie = request.getContextPath() + "/servlet/DisplayChart?filename=" + fileNamePie;
//饼状图
String fileNameBar=BarChartDemo.generateBarChart(session,new PrintWriter(out),580,250);
String graphURLBar = request.getContextPath() + "/servlet/DisplayChart?filename=" + fileNameBar;
//折线图
String fileNameLine=BarChartDemo.generateLineChart(session,new PrintWriter(out),580,250);
String graphURLLine = request.getContextPath() + "/servlet/DisplayChart?filename=" + fileNameLine;
%>
</head>
<body bgcolor="#ffffff">
<table align="center" width="580" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<img src=" <%= graphURLPie %>"width=580 height=250 border=0 >
</td>
</tr>
<tr>
<td>
<img src=" <%= graphURLBar %>"width=580 height=250 border=0 >
</td>
</tr>
<tr>
<td>
<img src=" <%= graphURLLine %>"width=580 height=250 border=0 >
</td>
</tr>
</table>
</body>
</html>

/*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">
<servlet>
<servlet-name>DisplayChart </servlet-name>
<servlet-class>
org.jfree.chart.servlet.DisplayChart
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DisplayChart </servlet-name>
<url-pattern>/servlet/DisplayChart </url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file>index.jsp </welcome-file>
</welcome-file-list>
</web-app>
时间片轮转算法
2010-10-11 · TA获得超过1660个赞
知道小有建树答主
回答量:809
采纳率:0%
帮助的人:604万
展开全部

public JFreeChart getGoodStatistic(GoodStatistic gstic)

 {

  CategoryDataset dataset = this.getDataForGood(gstic);

  

  chart = ChartFactory.createBarChart(gstic.getHead_title(), 

           gstic.getX_title(), 

           gstic.getY_title(), 

           dataset,

           PlotOrientation.VERTICAL, 

           false, 

           false, 

           false

           );

  

  CategoryPlot pieplot = (CategoryPlot)chart.getPlot();

  

  pieplot.setBackgroundAlpha(1f);

  pieplot.setForegroundAlpha(0.7f);

 

  BarRenderer3D renderer = new BarRenderer3D(); 

  // 显示每个柱的数值

  renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator()); 

  renderer.setBaseItemLabelsVisible(true); 

  renderer.setMaximumBarWidth(0.20);//显示每个柱的最大宽度 

  renderer.setMinimumBarLength(1.0);//最短的柱的长度,避免数值太小而显示不出 

   

  pieplot.setRenderer(renderer); 

  CategoryAxis ca = pieplot.getDomainAxis();

  ca.setLabelFont(new Font("楷体",Font.BOLD,14));

  NumberAxis na = (NumberAxis)pieplot.getRangeAxis();

  na.setLabelFont(new Font("楷体",Font.BOLD,14));

  TextTitle txtTitle = null;

  txtTitle = chart.getTitle();

  

  txtTitle.setFont(new Font("黑体",Font.BOLD,16));

  //chart.getLegend().setItemFont(new Font("楷体",Font.BOLD,10));

  return chart;

 }

 

 public CategoryDataset getDataForGood(GoodStatistic gstic)

 {

  DefaultCategoryDataset set = new DefaultCategoryDataset();

  set.addValue(gstic.getOne(), "", "1月");

  set.addValue(gstic.getTwo(), "", "2月");

  set.addValue(gstic.getThree(), "", "3月");

  set.addValue(gstic.getFour(), "", "4月");

  set.addValue(gstic.getFive(), "", "5月");

  set.addValue(gstic.getSex(), "", "6月");

  set.addValue(gstic.getSeven(), "", "7月");

  set.addValue(gstic.getEight(), "", "8月");

  set.addValue(gstic.getNine(), "", "9月");

  set.addValue(gstic.getTen(), "", "10月");

  set.addValue(gstic.getEleven(), "", "11月");

  set.addValue(gstic.getTwelve(), "", "12月");

  return set;

 }

这是一部分代码,可以运行的

你也没留下邮箱,我好发给你,完整代码的话请加qq:587457841

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式