`

JfreeChar堆积柱状图

 
阅读更多

package com.gamemag.web.player;

import java.awt.BasicStroke;

import java.awt.Color;

import java.awt.Font;

import java.io.IOException;

import java.io.PrintWriter;

import java.util.List;

import javax.servlet.http.HttpSession;

import org.jfree.chart.ChartFactory;

import org.jfree.chart.ChartRenderingInfo;

import org.jfree.chart.ChartUtilities;

import org.jfree.chart.JFreeChart;

import org.jfree.chart.axis.CategoryAxis;

import org.jfree.chart.axis.CategoryLabelPositions;

import org.jfree.chart.axis.ValueAxis;

import org.jfree.chart.entity.StandardEntityCollection;

import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;

import org.jfree.chart.plot.CategoryPlot;

import org.jfree.chart.plot.PlotOrientation;

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

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

import org.jfree.chart.servlet.ServletUtilities;

import org.jfree.chart.title.TextTitle;

import org.jfree.data.category.CategoryDataset;

import org.jfree.data.category.DefaultCategoryDataset;

import org.jfree.ui.RectangleEdge;

import org.springside.modules.orm.Page;

import com.gamemag.vo.IngotUseDirectionVo;

public class IngotUseBarChart {

/**

 * 

 * @param page

 * @param ingotList

 * @param ingotVo

 * @return

 */

private static CategoryDataset createDataset(Page<IngotUseDirectionVo> page,

List<IngotUseDirectionVo> ingotList, List<IngotUseDirectionVo> ingotVo) {

DefaultCategoryDataset defaultcategorydateaset = new DefaultCategoryDataset();

int index = 0;

if(page.getResult().size() > 14){

index = page.getResult().size() - 14;

}

for (int i = index ; i < page.getResult().size(); i++) {

String time = page.getResult().get(i).getDateTime().toString().substring(0, 10);

for (int j = 0; j < ingotVo.size(); j++) {

String ct_name = ingotVo.get(j).getCt_name();

for (int k = 0; k < ingotList.size(); k++) {

String time2 = ingotList.get(k).getDateTime().toString().substring(0, 10);

if(ingotVo.get(j).getCt_id().equals(ingotList.get(k).getCt_id()) && time.equals(time2)){

int sum = ingotList.get(k).getIngot();

defaultcategorydateaset.addValue(sum, ct_name, time);

}

}

}

}

return defaultcategorydateaset;

}

// 创建JFreeChar对象

private static JFreeChart createChart(CategoryDataset categoydataset) {

JFreeChart jfreechart = ChartFactory.createStackedBarChart("《武将杀》近14天元宝消耗方向"// 图表标题

null,// x轴的显示标签

null// y轴的显示标签

categoydataset,// 数据集

PlotOrientation.VERTICAL,// 图表方向:水平垂直

true// 是否生成图例

true,// 是否生成工具

false// 是否生成URL链接

);

// 解决标题乱码

CategoryPlot categoryplot = jfreechart.getCategoryPlot();

CategoryAxis domainAxis = categoryplot.getDomainAxis();// x轴

ValueAxis numberaxis = categoryplot.getRangeAxis(); // y轴

TextTitle t = jfreechart.getTitle();

t.setFont(new Font("宋体", Font.BOLD, 22));// 标题文字

domainAxis.setLabelFont(new Font("宋体", Font.BOLD, 20));// x轴标题文字

domainAxis.setTickLabelFont(new Font("黑体", Font.BOLD, 10));// x轴坐标上文字

domainAxis.setAxisLineStroke(new BasicStroke(1.6f)); // 设置轴线粗细

numberaxis.setLabelFont(new Font("宋体", Font.BOLD, 20));// y轴标题文字

numberaxis.setTickLabelFont(new Font("黑体", Font.BOLD, 10));// y轴坐标上文字

numberaxis.setAxisLineStroke(new BasicStroke(1.6f)); // 设置轴线粗细

numberaxis.setUpperMargin(0.1);// 设置最高的一个柱与图片顶端的距离(最高柱的10%)

jfreechart.getLegend().setItemFont(new Font("黑体", Font.BOLD, 12));// 图例文字

jfreechart.getLegend().setPosition(RectangleEdge.RIGHT); // 图例居右

jfreechart.getLegend().setBackgroundPaint(Color.gray);// 图例背景色

jfreechart.setBorderStroke(new BasicStroke(1));// 设置边框宽度

jfreechart.setBackgroundPaint(Color.white); // 设置背景颜色

//jfreechart.setBackgroundPaint(new Color(253 , 231, 243));

StackedBarRenderer renderer = new StackedBarRenderer();

// renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());

// renderer.setBaseItemLabelsVisible(true);//显示每个柱的数值

// 让柱子显示为一个平面图

renderer.setBarPainter(new StandardBarPainter());

renderer.setItemMargin(-0.01);

renderer.setShadowVisible(false);// 取消阴影

renderer.setMaximumBarWidth(0.05);// 设置柱子宽度

//renderer.setSeriesPaint(0, new Color(51, 102, 153));// 设置柱子颜色

categoryplot.setRenderer(renderer);

categoryplot.setBackgroundPaint(Color.white);

categoryplot.setDomainGridlinePaint(Color.white);//纵坐标虚线颜色

categoryplot.setDomainGridlinesVisible(true); 

categoryplot.setRangeGridlinePaint(Color.white); //横坐标虚线颜色

categoryplot.setNoDataMessage("No data available");

categoryplot.setBackgroundPaint(Color.lightGray); 

// categoryplot.setDomainGridlinePaint(Color.black); //设置纵坐标网格线(平分柱子)

// categoryplot.setRangeGridlinePaint(Color.blue);//设置纵坐标网格线

CategoryAxis categoryaxis = categoryplot.getDomainAxis(); // 横轴上的 Lable

categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);// 45度倾斜

return jfreechart;

}

public static String generateBarChart(HttpSession session, PrintWriter out,

Page<IngotUseDirectionVo> page,

List<IngotUseDirectionVo> ingotList,

List<IngotUseDirectionVo> ingotVo) throws IOException {

String filename = null;

CategoryDataset categoryDateset = createDataset(page, ingotList,

ingotVo);

JFreeChart chart = createChart(categoryDateset);

/**

 * File directory = new File(".");

 * System.out.println(directory.getCanonicalPath

 * ()+"=========="+img_path);

 * 

 * FileOutputStream fos_jpg = null; try { fos_jpg = new

 * FileOutputStream("fruit.jpg");

 * ChartUtilities.writeChartAsJPEG(fos_jpg, 1.0f, chart, 400,300,null);

 * } finally { try { fos_jpg.close(); } catch (Exception e) {} }

 **/

ChartRenderingInfo info = new ChartRenderingInfo(

new StandardEntityCollection());

try {

filename = ServletUtilities.saveChartAsPNG(chart, 1100, 450, info,

session);

ChartUtilities.writeImageMap(out, filename, info, false);

catch (IOException e) {

e.printStackTrace();

}

out.flush();

return filename;

}

}

  • 大小: 21.2 KB
分享到:
评论

相关推荐

    jfreechar 实现生成柱状图,饼图,曲线,

    JFreeChart 是一个开源的Java库,用于生成各种类型的图表,包括柱状图、饼图和曲线图等。它提供了一种灵活的方式来创建高质量的2D图表,可以在各种Java应用程序中使用,例如桌面应用、Web应用或者服务器端应用。下面...

    JFreeChar 动态横向柱状图

    JFreeChar 动态横向柱状图,带纵向滚动条,可根据数据自动计算滚动条长度,可自定义系统柱子颜色,定时刷新

    JFreeChar制作饼图和柱状图

    JFreeChart是一款强大的Java图形库,它允许开发者创建各种类型的统计图表,如饼图、柱状图、线图、散点图等。在Java应用程序中,JFreeChart为数据可视化提供了丰富的功能,使得数据的展示更为直观易懂。在本教程中,...

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

    JFreeChart 是一个开源的Java库,用于生成高质量的、多样的图表,包括折线图、柱形图、饼图、散点图等。在这个特定的案例中,我们关注的是如何利用JFreeChart来创建折线图和柱形图的混合图表,这种图表在数据可视化...

    JFreeChar柱状图实例

    **JFreeChart 柱状图实例详解** 在Java编程中,JFreeChart是一个强大的开源图表库,它提供了丰富的图表类型,包括柱状图、饼图、线图、散点图等,使得开发者能够轻松地在应用程序中创建高质量的可视化数据。本实例...

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

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

    JFreeChar实现曲线图:lib+Demo

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

    JfreeChar学习资料 JfreeChar学习资料

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

    JFreeChar 柱图实现

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

    jfreechar 动态统计图

    2. 柱状图(Bar Charts):用于比较不同类别的数量或频率。 3. 饼图(Pie Charts):展示各部分占整体的比例。 4. 散点图(Scatter Plots):展示两个变量之间的关系。 5. 直方图(Histograms):用于展示数据分布的...

    jfreechar各种图

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

    java实现柱状图

    Java 实现柱状图 Java 实现柱状图是指使用 Java 语言创建柱状图、饼状图、曲线图等图形的一种技术。通过使用 JFreeChart 库,可以轻松地创建各种类型的图形。下面将对 Java 实现柱状图的相关知识点进行详细介绍。 ...

    jfreechar 整合struts2.1.8版本生成线图,饼图,柱形图

    jfreechar 整合struts2.1.8版本生成线图,饼图,柱形图 直接导入eclipse 或myeclipse 即可运行,里面含有lib ,及运行详细说 如:&lt;!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts ...

    jfreechar画图源代码

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

    jfreechar最新jar包

    bar charts (regular and stacked, with an optional 3D effect):柱状图 line and area charts:曲线图 scatter plots and bubble charts time series, high/low/open/close charts and candle stick charts:...

    JFreechar使用文档

    JFreeChart chart = ChartFactory.createStackedBarChart("堆积柱状图标题", "类别", "值", dataset); // 创建堆积柱状图 ``` ### 四、生成折线图 折线图适用于展示数据随时间的变化趋势。使用 `LineChart` 类可...

    JFreechar简单报表例子

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

    jfreechar完整的例子

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

    JFreeChar生成饼图

    JFreeChart是一款强大的开源Java图表库,它允许开发者创建各种复杂的图表,如柱状图、折线图、饼图、散点图等,广泛应用于数据分析、报告生成以及可视化应用中。在这个小案例中,我们将深入探讨如何使用JFreeChart...

Global site tag (gtag.js) - Google Analytics