快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

188bet金宝搏亚洲体育博彩官网_酒文化网进入



package com.wasu.itv.common.util;

import java.awt.BasicStroke;

import java.awt.Color;

import java.awt.Font;

import java.io.FileOutputStream;

import java.io.IOException;

import java.text.DecimalFormat;

import java.text.NumberFormat;

import java.util.Iterator;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.jfree.chart.ChartFactory;

import org.jfree.chart.ChartUtilities;

import org.jfree.chart.JFreeChart;

import org.jfree.chart.axis.CategoryAxis;

import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;

import org.jfree.chart.labels.StandardPieSectionLabelGenerator;

import org.jfree.chart.labels.StandardPieToolTipGenerator;

import org.jfree.chart.plot.CategoryPlot;

import org.jfree.chart.plot.PiePlot;

import org.jfree.chart.plot.PlotOrientation;

import org.jfree.chart.renderer.category.BarRenderer;

import org.jfree.chart.title.LegendTitle;

import org.jfree.chart.title.TextTitle;

import org.jfree.data.category.CategoryDataset;

import org.jfree.data.category.DefaultCategoryDataset;

import org.jfree.data.general.DefaultPieDataset;

import org.jfree.util.Rotation;

public class JFreeChartUtils {

public static boolean generatePieChart(List data, String title,

int width, int heigth, HttpServletRequest request,boolean is3D) {

boolean returnValue = false;

DefaultPieDataset dataset = new DefaultPieDataset();

for (Iterator iterator = data.iterator(); iterator.hasNext();) {

Object[] o = (Object[]) iterator.next();

dataset.setValue(o[0].toString(), ((Long) o[1]).doubleValue());

}

JFreeChart chart = createPieChart(dataset, title,is3D);

returnValue = drawToOutputStream(request.getSession()

.getServletContext().getRealPath("/")

+ "/images/itv/statistical.jpg", chart, width, heigth);

return returnValue;

}

/**

* step2:创建PieChart图表

*

* @param dataset

* @return

*/

private static JFreeChart createPieChart(DefaultPieDataset dataset,

String title,boolean is3D) {

JFreeChart chart=null;

if(is3D){

chart=ChartFactory.createPieChart3D(

title, // 图表标题

dataset, // 数据集

true, // 是否显示图例

true, // 是否显示对象提示

true // 是否天生URL

);

}

else{ chart = ChartFactory.createPieC188bet金宝搏亚洲体育博彩官网hart(

title, // 图表标题

dataset, // 数据集

true, // 是否显示图例

true, // 是否显示对象提示

true // 是否天生URL

);

}

// 设置标题字体==为了防止中文乱码:必须设置字体

chart.setTitle(new TextTitle(title, new Font("黑体", Font.ITALIC, 22)));

// 设置图例的字体==为了防止中文乱码:必须设置字体

chart.getLegend().setItemFont(new Font("黑体", Font.BOLD, 12));

// 获取饼图的Plot工具(实际图表)

PiePlot plot = (PiePlot) chart.getPlot();

// 图形边框颜色

plot.setBaseSectionOutlinePaint(Color.GRAY);

// 图形边框粗细

plot.setBaseSectionOutlineStroke(new BasicStroke(0.0f));

// 设置饼状图的绘制偏向,可以按顺时针偏向绘制,也可以按逆时针偏向绘制

plot.setDirection(Rotation.ANTICLOCKWISE);

// 设置绘制角度(图形扭转角度)

plot.setStartAngle(70);

// 设置凸起显示的数据块

// plot.setExplodePercent("One", 0.1D);

// 设置背景致透明度

plot.setBackgroundAlpha(0.7F);

// 设置前景致透明度

plot.setForegroundAlpha(0.65F);

// 设置区块标签的字体==为了防止中文乱码:必须设置字体

plot.setLabelFont(new Font("宋体", Font.PLAIN, 12));

// 扇区分离显示,对3D图不起效

if(is3D)

plot.setExplodePercent(dataset.getKey(3), 0.1D);

// 图例显示百分比:自定义要领,{0} 表示选项, {1} 表示数值, {2} 表示所占比例 ,小数点后两位

plot.setLabelGenerator(new StandardPieSectionLabelGenerator(

"{0}:{1}\r\n({2})", NumberFormat.getNumberInstance(),

new DecimalFormat("0.00%")));

// 图例显示百分比

// plot.setLegendLabelGenerator(new

// StandardPieSectionLabelGenerator("{0}={1}({2})"));

// 指定显示的饼图为:圆形(true) 照样卵形(false)

plot.setCircular(true);

// 没稀有据的时刻显示的内容

plot.setNoDataMessage("找不到可用数据...");

// 设置鼠标悬停提示

plot.setToolTipGenerator(new StandardPieToolTipGenerator());

// 设置热点链接

// plot.setURLGenerator(new StandardPieURLGenerator("detail.jsp"));188bet金宝搏亚洲体育博彩官网

return chart;

}

private static JFreeChart createBarChart(CategoryDataset dataset,

String title, String x, String y,boolean is3D) {

JFreeChart chart =null;

if(is3D){

chart = ChartFactory.createBarChart3D( // 3D柱状图

// JFreeChart chart = ChartFactory.createLineChart3D( //3D折线图

title, // 图表的标题

x, // 目录轴的显示标签

y, // 数值轴的显示标签

dataset, // 数据集

PlotOrientation.VERTICAL, // 图表要领:V垂直;H水平

true, // 是否显示图例

false, // 是否显示对象提示

false // 是否天生URL

);

}else{

chart = ChartFactory.crea188bet金宝搏亚洲体育博彩官网teBarChart( // 柱状图

// JFreeChart chart = ChartFactory.createLineChart3D( //3D折线图

title, // 图表的标题

x, // 目录轴的显示标签

y, // 数值轴的显示标签

dataset, // 数据集

PlotOrientation.VERTICAL, // 图表要领:V垂直;H水平

true, // 是否显示图例

false, // 是否显示对象提示

false // 是否天生URL

);

}

// ===============为了防止中文乱码:必须设置字体

chart.setTitle(new TextTitle(title, new Font("黑体", Font.ITALIC, 22)));

LegendTitle legend = chart.getLegend(); // 获取图例

legend.setItemFont(new Font("宋体", Font.BOLD, 12)); // 设置图例的字体,防止中文乱码

CategoryPlot plot = (CategoryPlot) chart.getPlot(); // 获取柱图的Plot工具(实际图表)

// 设置柱图背景致(留意,系统取色的时刻要应用16位的模式来查看颜色编码,这样对照准确)

plot.setBackgroundPaint(new Color(255, 255, 204));

plot.setForegroundAlpha(0.65F); // 设置前景致透明度

// 设置横虚线可见

plot.setRangeGridlinesVisible(true);

// 虚线色彩

plot.setRangeGridlinePaint(Color.gray);

CategoryAxis h = plot.getDomainAxis(); // 获取x轴

h.setMaximumCategoryLabelWidthRatio(1.0f);// 横轴上的 Lable 是否完备显示

h.setLabelFont(new Font("宋体", Font.BOLD, 12));// 设置字体,防止中文乱码

h.setTickLabelFont(new Font("宋体", Font.BOLD, 12));// 轴数值

// h.setCategoryLabelPositions(Categor188bet金宝搏亚洲体育博彩官网yLabelPositions.UP_45);//45度倾斜

plot.getRangeAxis().setLabelFont(new Font("宋体", Font.BOLD, 12)); // Y轴设置字体,防止中文乱码

// 柱图的出现器

BarRenderer renderer = new BarRenderer();

// 设置柱子宽度

// renderer.setMaximumBarWidth(0.05);

// 设置柱子高度

// renderer.setMinimumBarLength(0.2);

// 设置柱子边框颜色

renderer.setBaseOutlinePaint(Color.BLACK);

// 设置柱子边框可见

renderer.setDrawBarOutline(true);

// 设置每个柱的颜色

renderer.setSeriesPaint(0, Color.BLUE);

renderer.setSeriesPaint(1, Color.GREEN);

renderer.setSeriesPaint(2, Color.RED);

// 设置每个地区所包孕的平行柱的之间间隔

renderer.setItemMargin(0.05);

// 显示每个柱的数值,并改动该数值的字体属性

renderer.setIncludeBaseInRange(true);

renderer

.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());

renderer.setBaseItemLabelsVisible(true);

// 设置柱的透明度

plot.setForegroundAlpha(1.0f);

// 给柱图添加出现器

plot.setRenderer(renderer);

// 没稀有据的时刻显示的内容

plot.setNoDataMessage("找不到可用数据...");

return chart;

}

/**

*

* @param data

* @param title

* @param x

* @param y

* @param width

* @param heigth

* @param request

* @return

*/

public static boolean generateBarChart(List data, String title,

String x, String y, int width, int heigth,boolean is3D,

HttpServletRequest request) {

boolean returnValue = false;

DefaultCategoryDataset dataset = new DefaultCategoryDataset();

for (Iterator iterator = data.iterator(); iterator.hasNext();) {

Object[] o = (Object[]) iterator.next();

dataset.setValue(((Integer) o[1]).intValue(), o[0] + ":" + o[1],

o[2].toString());

}

JFreeChart chart = createBarChart(dataset, title, x, y,is3D);

returnValue = drawToOutputStream(request.getSession()

.getServletContext().getRealPath("/")

+ "/images/itv/statistical.jpg", chart, width, heigth);

return returnValue;

}

/**

* step3: 输出图表到指定的磁盘

*

* @param destPath

* @param chart

*/

private static boolean drawToOutputStream(String destPath,

JFreeChart chart, int width, int heigth) {

FileOutputStream fos = null;188bet金宝搏亚洲体育博彩官网

boolean returnValue = true;

try {

fos = new FileOutputStream(destPath);

ChartUtilities.writeChartAsPNG(fos, // 指定目标输出流

chart, // 图表工具

width, // 宽

heigth, // 高

null); // ChartRenderingInfo信息

} catch (IOException e) {

e.printStackTrace();

returnValue = false;

} finally {

try {

fos.close();

} catch (IOException e) {

e.printStackTrace();

}

}

return returnValue;

}

/**

* @param args

*/

public static void main(String[] args) {

CategoryDatasetdataset = createBarDataSet2();

JFreeChart chart=createBarChart(dataset, "111111111111111", "2222222", "2222222",true);

drawToOutputStream("D:\\mybook-pie.png", chart, 640, 480);

}

private static DefaultPieDataset createPieDataSet1() {

DefaultPieDataset dataset = new DefaultPieDataset();

dataset.setValue("java法度榜样设计说话", 10000);

dataset.setValue("JSP根基与案例开拓详解", 20000);

dataset.setValue("struts根基与案例开拓详解", 30000);

dataset.setValue("精晓JSF", 40000);

return dataset;

}

private static DefaultPieDataset createPieDataSet2() {

DefaultPieDataset dataset = new DefaultPieDataset();

dataset.setValue(" 市场前期", new Double(10));

dataset.setValue(" 立项", new Double(15));

dataset.setValue(" 计划", new Double(10));

dataset.setValue(" 需求与设计", new Double(10));

dataset.setValue(" 履行节制", new Double(35));

dataset.setValue(" 扫尾", new Double(10));

dataset.setValue(" 运维", new Double(10));

return dataset;

}

/**

* step1:创建 简单数据集工具

*

* @return

*/

private static CategoryDataset createBarDataSet1() {

DefaultCategoryDataset dataset = new DefaultCategoryDataset();

dataset.setValue(10000, "", "Corejava");

dataset.setValue(20000, "", "JavaWeb");

dataset.setValue(30000, "", "易用struts");

dataset.setValue(40000, "", "精晓JSF");

return dataset;

}

/**

* 组合数据集工具

*

* @return

*/

private static CategoryDataset createBarDataSet2() {

DefaultCategoryDataset dataset = new DefaultCategoryDataset();

dataset.setValue(5000, "北京", "Corejava");

dataset.setValue(3000, "上海", "Corejava");

dataset.setValue(2000, "广州", "Corejava");

dataset.setValue(10000, "北京", "JavaWeb");

dataset.setValue(6000, "上海", "JavaWeb");

dataset.setValue(4000, "广州", "JavaWeb");

dataset.setValue(15000, "北京", "易用struts");

dataset.setValue(5000, "上海", "易用struts");

dataset.setValue(10000, "广州", "易用struts");

dataset.setValue(20000, "北京", "精晓JSF");

dataset.setValue(10000, "上海", "精晓JSF");

dataset.setValue(10000, "广州", "精晓JSF");

return dataset;

}

}

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: