`

JfreeChar 柱形图

 
阅读更多

 

 

package com.gamemag.web.statistics;

 

 

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.plot.CategoryPlot;

import org.jfree.chart.plot.PlotOrientation;

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

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 com.gamemag.entity.player.Tasks;

 

publicclass TaskBarChart {

 

    privatestatic CategoryDataset createDataset(List taskNum,

           List<Tasks> tasksList) {

       String s = "合计";

       DefaultCategoryDataset defaultcategorydateaset = new DefaultCategoryDataset();

       for (int i = 0; i < tasksList.size(); i++) {

           String t_name = tasksList.get(i).getT_name();

           String num = taskNum.get(i).toString();

           defaultcategorydateaset.addValue(Integer.parseInt(num), s, t_name);

       }

       return defaultcategorydateaset;

    }

 

    // 创建JFreeChar对象

    privatestatic JFreeChart createChart(CategoryDataset categoydataset) {

      

       JFreeChart jfreechart = ChartFactory.createBarChart("合计", // 图表标题

              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, 16));// 标题文字

 

       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, 10));// 图例文字

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

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

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

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

       BarRenderer renderer = new BarRenderer();

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

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

       renderer.setShadowVisible(false);//显示阴影

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

       renderer.setSeriesPaint(0, Color.blue);// 设置柱子颜色

       categoryplot.setRenderer(renderer);

       categoryplot.setBackgroundPaint(Color.white);

       categoryplot.setDomainGridlinePaint(Color.white);

       categoryplot.setDomainGridlinesVisible(true);

       categoryplot.setRangeGridlinePaint(Color.black);

       categoryplot.setNoDataMessage("No data available");

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

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

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

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

 

       return jfreechart;

    }

 

    publicstatic String generateBarChart(HttpSession session, PrintWriter out,

           List taskNum, List<Tasks> tasksList) throws IOException {

       String filename = null;

       CategoryDataset categoryDateset = createDataset(taskNum, tasksList);

       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, 600, 320, info,

                  session);

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

       } catch (IOException e) {

           e.printStackTrace();

       }

       out.flush();

       return filename;

    }

 

}

 

 

 

 

 

<!-- jfreechar 配置web.xml -->

    <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>/DisplayChart</url-pattern>

    </servlet-mapping>

 

 

 

 

 

 

 

// 调用方法

 

TaskBarChart bar = new TaskBarChart();

HttpSession  session = ServletActionContext.getRequest().getSession();

HttpServletResponse response =  ServletActionContext.getResponse();

PrintWriter out = response.getWriter();

filename = bar.generateBarChart(session, out , taskNum , tasksList);

filename = "/DisplayChart?filename=" + filename;

分享到:
评论

相关推荐

    JFreeChar柱状图实例

    jfreeChar 柱状图应用的一个实例,

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

    因为最近要用混合图,网上找了一些资料,研究jfreechar 混合图 折线图+柱形图(在一个图中展示,双Y轴,共用X轴,能适用于大部分功能) 别加上 jfreechar的文档

    JFreeChar制作饼图和柱状图

    JFreeChar制作饼图和柱状图 需要jcommon-1.0.0-rc1.jar包和jfreechart-1.0.0-rc1.jar包

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

    jfreechar 实现生成柱状图,饼图,曲线,没有调用正在的数据库数据,用的到的可以看看。

    JFreeChar 动态横向柱状图

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

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

    JFreeChar图表生成柱状图和饼状图实例源代码。

    jfreechar统计图操作技巧

    运用jfreechar插件在项目开发中针对数据库数据进行统计,将数据信息一统计图的方式显示出来,主要有:柱状图,饼图,线形图...

    使用JFreeChar简单实现图表

    使用JFreeChar,实现柱状图,饼形图,线性图

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

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

    jfreechar画图源代码

    包含所有的jfreechar画的饼状图、柱状图、曲线图所有代码都是本人自己编写并且能运行出结果的。

    java实现柱状图

    java实现柱状图、饼状图、曲线图等。一个简单的java类就搞定。再加一个jar

    JFreeChar 图形拖拉

    发现有关JFreeChar 拖拉的东西网上资源忒少,所以就花了点时间去研究了一下。这里面有柱状图,甘特图,折线图等拖拉的例子,相信对那些正在研究JFreeChar 和正在为JFreeChar 图形拖拉问题困扰的人有所帮助。

    jfreecharAPI

    JFreeChart它主要是用来制作各种各样的图表,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、区域图、分布图、混合图、甘特图以及一些仪表盘等等。

    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使用文档

    生成饼状图 生成单组柱状图 生成单组柱状图 生成堆积柱状图 生成折线图 柱状图

    jfreechar的使用

    JFreeChart是开放源代码站点SourceForge.net上的一个JAVA项目,它主要用来各种各样的图表,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、区域图、分布图、混合图、甘特图以及一些仪表盘等等。...

    jfreechart各类曲线图JSP代码

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

    JfreeChar示例

    直接导入myEclipse即可,采用jsp+servlet+dao框架

    java+jfreechar+svg

    我用java和jfreechar写的柱状图之后采用SVG显示出来。以用来业务展示希望对大家有帮助

    JfreeChar实例

    本JfreeChar实例介绍了三种常见的图例,即柱状图、线性图、饼状图,下载后导入eclipse工程中即可使用

Global site tag (gtag.js) - Google Analytics